Всем привет! У меня очень простая настройка хотспота — открытая Wi-Fi сеть. Я создал VLANы, чтобы изолировать точки доступа друг от друга, плюс на каждой точке включена опция изоляции клиентов, чтобы подключённые устройства не «видели» друг друга. Точки доступа в моей сети — NSM2 в режиме моста. AP напрямую подключены к обычному неуправляемому коммутатору, а от коммутатора — к LAN-порту Ethernet на x86 RouterOS. Пока нет бюджета на управляемый коммутатор, но всё прекрасно работает и защищает сеть от сканирующих инструментов. Каждому VLAN назначены свои настройки DHCP, HOTSPOT и NAT. Вот код: /interface ethernet set 0 arp=enabled auto-negotiation=yes cable-settings=default disable-running-check=yes disabled=no full-duplex=yes l2mtu=16383 mac-address=xxx mtu=1500 name=LAN speed=1Gbps set 1 arp=enabled auto-negotiation=yes cable-settings=default disable-running-check=yes disabled=no full-duplex=yes l2mtu=16383 mac-address=xxx mtu=1500 name=WAN speed=1Gbps /interface vlan add arp=enabled disabled=no interface=LAN l2mtu=16379 mtu=1500 name=VLAN_A use-service-tag=no vlan-id=11 add arp=enabled disabled=no interface=LAN l2mtu=16379 mtu=1500 name=VLAN_B use-service-tag=no vlan-id=12 add arp=enabled disabled=no interface=LAN l2mtu=16379 mtu=1500 name=VLAN_C use-service-tag=no vlan-id=13 /ip address add address=192.168.2.1/24 disabled=no interface=LAN network=192.168.2.0 add address=192.168.11.1/24 disabled=no interface=VLAN_A network=192.168.11.0 add address=192.168.12.1/24 disabled=no interface=VLAN_B network=192.168.12.0 add address=192.168.13.1/24 disabled=no interface=VLAN_C network=192.168.13.0 add address=10.0.0.1/24 disabled=no interface=WAN network=10.0.0.0 /ip dhcp-server add address-pool=VLAN_A authoritative=after-2sec-delay bootp-support=static disabled=no interface=VLAN_A lease-time=4w2d name=VLAN_A add address-pool=VLAN_B authoritative=after-2sec-delay bootp-support=static disabled=no interface=VLAN_B lease-time=4w2d name=VLAN_B add address-pool=VLAN_C authoritative=after-2sec-delay bootp-support=static disabled=no interface=VLAN_C lease-time=4w2d name=VLAN_C /ip dhcp-server network add address=192.168.11.0/24 dhcp-option="" dns-server="" gateway=192.168.11.1 ntp-server="" wins-server="" add address=192.168.12.0/24 dhcp-option="" dns-server="" gateway=192.168.12.1 ntp-server="" wins-server="" add address=192.168.13.0/24 dhcp-option="" dns-server="" gateway=192.168.13.1 ntp-server="" wins-server="" /ip pool add name=VLAN_A ranges=192.168.11.2-192.168.11.254 add name=VLAN_B ranges=192.168.12.2-192.168.12.254 add name=VLAN_C ranges=192.168.13.2-192.168.13.254 /ip hotspot profile set [ find default=yes ] dns-name= www.bytezone.net hotspot-address=192.168.2.1 html-directory=hotspot http-cookie-lifetime=3d http-proxy=0.0.0.0:0 login-by=cookie,http-chap,https,http-pap name=default nas-port-type=wireless-802.11 radius-accounting=yes radius-default-domain="" radius-interim-update=received radius-location-id="" radius-location-name="" radius-mac-format=XX:XX:XX:XX:XX:XX rate-limit="" smtp-server=0.0.0.0 split-user-domain=no ssl-certificate=none use-radius=yes /ip hotspot add disabled=no idle-timeout=5m interface=LAN keepalive-timeout=none name=LAN profile=default add disabled=no idle-timeout=5m interface=VLAN_A keepalive-timeout=none name=VLAN_A profile=default address-pool=none add disabled=no idle-timeout=5m interface=VLAN_B keepalive-timeout=none name=VLAN_B profile=default address-pool=none add disabled=no idle-timeout=5m interface=VLAN_C keepalive-timeout=none name=VLAN_C profile=default address-pool=none /ip hotspot user profile set [ find default=yes ] idle-timeout=none keepalive-timeout=2m name=default on-login="" on-logout="" rate-limit=180k/450k shared-users=1 status-autorefresh=1m transparent-proxy=no /ip firewall nat add action=masquerade chain=srcnat disabled=no out-interface=WAN src-address=192.168.2.0/24 add action=masquerade chain=srcnat disabled=no out-interface=WAN src-address=192.168.11.0/24 add action=masquerade chain=srcnat disabled=no out-interface=WAN src-address=192.168.12.0/24 add action=masquerade chain=srcnat disabled=no out-interface=WAN src-address=192.168.13.0/24
=====================================
Ребята, я понимаю, что конфигурация очень простая, но вот у меня странная проблема. Скорость интернет-соединения ужасная — всего около половины от реальной скорости моего провайдера, иногда чуть больше. Я понизил версию RouterOS с 6.x до 5.21, но ничего не поменялось. В чем может быть проблема? Если нужно, могу выложить настройки моих точек доступа, чтобы было понятнее. Спасибо заранее за советы и помощь!
Большое спасибо, ZeroByte, я большой твой поклонник и с удовольствием читаю и учусь по твоим гайдам каждый раз, когда захожу на этот форум. И да, я точно следовал твоим инструкциям: создал бридж, добавил VLANы и поставил split horizon равным 1 для каждого, настроил на этом бридже хотспот с DHCP. В итоге порты изолированы успешно, но всё равно наблюдаю ту же проблему — пропускная способность упала почти на 50% и даже больше! В чём именно может быть проблема? Процессор загружен всего на 2%, использую x86 с двухъядерным процессором, 2 ГБ оперативки, всего 2 правила mangle с очередями для QoS по Facebook и WhatsApp, а firewall-фильтры — не больше базовой защиты клиентов, как описано в вики.
И ещё вопрос: нужно ли назначать VLANы на физический интерфейс eth или на сам бридж? Может, я что-то делаю не так.
Это зависит от того, что именно вы хотите сделать. Если вы добавляете VLAN-интерфейсы в бридж, а затем подключаете интерфейсы etherX в качестве портов этого бриджа, то у вас будет несколько портов, которые работают как интерфейсы типа «транк». Они будут передавать как трафик с тегами, так и без них. Тегированный трафик будет достигать VLAN-интерфейсов, а нетегированный — самого бридж-интерфейса.
Если же вы создаёте VLAN-интерфейсы на физическом интерфейсе, обычно не стоит назначать этот физический интерфейс портом какого-либо бриджа. Вместо этого для каждого VLAN создаётся отдельный бридж. Например, если у вас есть VLAN-интерфейсы 10, 20 и 30 на интерфейсе ether1, можно сделать bridge10, bridge20 и bridge30 — каждый бридж соединён с одним из этих VLAN-интерфейсов, а также с другими физическими интерфейсами. Например, bridge10 имеет порты vlan10 и ether2. Это значит, что устройство, подключённое к ether2, не использует VLAN-теги, но при этом общается с другими устройствами через ether1, который отправляет и принимает трафик для этого бриджа с тегом VLAN 10.
Странным будет случай, когда на одном физическом интерфейсе находится несколько VLAN-интерфейсов, и все они добавлены как порты одного и того же бриджа. Такая схема имеет смысл для изоляции хостов, но при этом есть серьёзный недостаток — она резко увеличивает количество широковещательного трафика на транке. Допустим, широковещательный кадр поступает на бридж через vlan10 — бридж будет пересылать его на все остальные порты, например, vlan20, vlan30 и так далее. То есть сколько интерфейсов VLAN в бридже, столько копий широковещательного кадра и будет передано, а поскольку все они находятся на одном физическом интерфейсе, то эта же физика будет носителем множества копий.
Вот схема этого поведения:
Обратите внимание, что VLAN-интерфейсы принимают трафик с физической стороны (в данном случае ether1) с соответствующим VLAN ID, снимают тег и пересылают дальше, куда «смотрит» обратная сторона интерфейса. По умолчанию обратной стороной VLAN-интерфейса является процессор, но в примере с изоляцией хостов обратные стороны VLAN-интерфейсов соединены с одним общим бриджем, так что широковещательный кадр попадает в бридж без VLAN-заголовка.
Бридж воспринимает все порты просто как интерфейсы, на которые нужно пересылать широковещательный кадр, и отправляет копию каждому подключённому порту. Остальные VLAN-интерфейсы добавляют свои 802.1q VLAN-заголовки и отсылают полученный тегированный кадр на свою физическую линию — в данном случае всё это происходит по ether1.
Vlan50, например, мог бы быть на ether2 вместо ether1, и тогда «фиолетовая» копия широковещательного кадра пошла бы не через ether1, а через ether2.
Иллюстрация явно показывает один из минусов изоляции хостов через отдельные VLAN. (Хотя у такого решения есть и плюсы, так что я не утверждаю, что его не стоит использовать вовсе — просто обычно я не сторонник такого подхода.)
Что касается ваших проблем со скоростью, я не уверен, в чём именно причина, но VLAN-тегирование или split horizon не должны замедлять соединение. Возможно, дело в типе очередей на ваших интерфейсах.
Хорошо, если я правильно тебя понял, то принципиально этот способ изоляции хоста может повлиять на трафик, если использовать RB с ограниченными возможностями или если в сети много VLANов. Но в моём случае это не должно сказываться на производительности, хотя, честно говоря, это не самый профессиональный метод изоляции хоста (если честно, именно так мне и пришло в голову после долгих мучений с инструментами для сетевого сканирования и подмены MAC-адресов, которые используют клиенты).
Что касается проблем со скоростью, я не уверен, в чём тут может быть дело, но vlan tagging и split horizon не должны тебя тормозить. Возможно, причина в типе очередей на твоих интерфейсах.
Точно, как ты и сказал, я начал серьёзно думать, что проблема может быть не в этом. Dynamic simple queues я использую только для формирования трафика вместе с двумя очередями для Facebook и WhatsApp вверх/вниз. Честно говоря, я даже подумываю заменить RJ45 для Cat5e на тот, который используется для кабелей Cat6, потому что только сейчас осознал, какую глупую ошибку сделал, когда два года назад запускал свою wifi-сеть!
К тому же я сейчас собираюсь взять CCR1009-8G-1S-1S+, чтобы заменить ~300-ваттный x86, и посмотрю, как это изменит ситуацию — у меня есть подозрение, что мой Optiplex 780 не очень хорошо справляется с QoS и балансировкой нагрузки.
Спасибо за подробную и полезную информацию, ZeroByte!
Я сильно сомневаюсь, что переход на Cat6 даст тебе какое-то улучшение. Если бы у тебя были 10Gig-соединения и много потенциальных источников помех, тогда да, Cat6 подойдет. Но для 10/100/1000-линков... если только у тебя не идут кабели вдоль люминесцентных ламп или что-то в этом роде — тогда, по моему мнению, это не поможет.
Конечно, я не единственный Wisp в своём районе. Здесь полно точек доступа Ubiquiti на 2,4 ГГц, из-за чего постоянно помехи, а у меня есть точки доступа в 60 метрах от коммутатора.
Главное, как сказал ZeroByte, возможно, это не связано ни с VLAN, ни с настройками моста. Если взглянуть на конфигурацию, она очень базовая, ничего странного. Другой момент — к сожалению, я не могу проводить дальнейшие тесты на сервере, это продакшн, который работает круглосуточно, поэтому к субботе получу CCR1009, чтобы сделать полностью свежую настройку и посмотреть, как это повлияет на производительность. Сообщу вам о результатах. Спасибо за поддержку, @haik01.