Коммутатор (Switch)
: Эта страница предполагает что вы знаете “что это ? ” и “зачем это надо?”.
Если ваше устройство имеет более чем 1 LAN порт, это значит что существует специальное подключение между различными портами, называемое коммутатором. Скорее всего, схема внутренних портов будет такая (на примере ASUS WL-500g):
Если вы хотите изменить настройки подключения портов, нужно настроить коммутатор вашего роутера(читаем network.interfaces)
Настройка UCI, swconfig
Предположим
- устройство работает на ядре 2.6 или 3
- устройство использует
swconfig
для настройки коммутатора - Коммутатор на порту
eth1
(Большинство наeth0
),и так же на чипе типаrtl8366s
- 5-ти портовый коммутатор с подключенными внешними портами 0-3, 4 не подключен, и 5 подключен к ЦПУ в eth1 интерфейс (в итоге 6-ть портов, где 4-ый не считается )
vlan0
все внешние порты кроме последнегоvlan1
только последний внешний портvlan0
стандартный vlan, т.е. если пакет не имеет тэгов, то он относиться к vlan0
Настройка
Коммутатор
В файле /etc/config/network
config 'switch' 'eth1' option 'enable' '1' option 'enable_vlan' '1' option 'reset' '1'
VLAN: настройка коммутатора
В файле /etc/config/network
Заметки
Здесь eth1 — название интерфейса куда подключен коммутатор. В первой секции включаем коммутатор и включаем поддержку теггированного(трафика с вланом) трафика. Каждая секция switch_vlan отвечает за определенный VLAN указанный в опции vlan. Этот тег будет использоваться для добавления метки для портов указанных в секции ports. Буква t у порта обозначает что трафик в этот порт должен быть передан теггированным(с меткой), в остальные перечисленные порты он попадет без метки. Запись '0 1 2 5t' нужно читать так: передай нетегированный трафик с портов 0, 1, 2 в порт 5 с меткой 0. Так как VLAN с меткой 0 это тоже самое что трафик без метки, то на нашем порту eth0 мы получим трафик с портов 0, 1, 2 без всяких вланов. В следующей секции написано: ports='3 5t', vlan=1. Это значит что нетегированный трафик с порта 3 придет на eth0 с vlan-id=1(не рекомендую использовать vlan-id=1).
В документе, который описывает стандарт 801.2q, говорится, что значения VID 0 и 4095 не могут использоваться для теггированного трафика, так как эти значения зарезервированы: VID 0 'родной' vlan по умолчанию - оставляя диапазон из 4094 доступных значений, хотя VID 1 обычно зарезервирован для управления сетью (например, как у Dell 2708). Это означает, что vlan0 можно использовать как VLAN внутри или между устройствами, но им нельзя тегировать пакеты.
The config sections
config 'switch_vlan' option 'vlan' '0' option 'device' 'eth1' option 'ports' '0 1 2 5t' config 'switch_vlan' option 'vlan' '1' option 'device' 'eth1' option 'ports' '3 5t' config 'switch_port' option 'port' '3' option 'pvid' '1'
VLAN: interface/network config
Разделы интерфейса VLAN выглядят как обычные разделы интерфейсов, кроме того что вместо eth1
(или eth0
, или как угодно ещё), указано eth1.0
, eth1.1
, и так далее, где цифра после .
является номером VLAN. (это верно для ядра версии 2.6; в ядре 2.4 сделано по-другому).
Следующий пример описывает двух-интерфейсный роутер, где eth0 отведён под WAN и eth1 работает как пяти портовый свитч, сконфигурированный, как указано выше. Это находится в /etc/config/network
например
config 'interface' 'lan' option 'ifname' 'eth1.0' option 'proto' 'static' option 'ipaddr' '192.168.1.1' option 'netmask' '255.255.255.0' option 'defaultroute' '0' option 'peerdns' '0' option 'nat' '1' config 'interface' 'extranet' option 'ifname' 'eth1.1' option 'proto' 'dhcp' config 'interface' 'wan' option 'ifname' 'eth0.2' option 'proto' 'pppoe' option 'username' 'szabozsolt-em' option 'password' 'M3IuWBt4'
Конечно же, если у вас на eth0 лишь свитч на пять портов (и никаких других интерфейсов), вы можете сделать интерфейс wan
в eth0.1
и lan eth0.0
соответственно совпадающей с switch
, switch_vlan
и switch_port
разделами.
Также смотрите backplane.