Коммутатор (Switch)

FIXME: Эта страница предполагает что вы знаете "что это ? " и "зачем это надо?".

Если ваше устройство имеет более чем 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).

The relevant standards document is 801.2q which says that VID values 0 and 4095 may not be used for tagging packets as they denote reserved values - VID 0 is the default 'native' vlan - leaving 4094 valid values in between, although VID 1 is often reserved for network management (see Dell 2708 for example). This means vlan0 can be used as a VLAN within or between devices, but you cannot tag packets with it.

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 interface sections look just like regular interface sections, except that instead of eth1 (or eth0, or whatever), you have eth1.0, eth1.1, etc. where a digit after a . is a VLAN number. (that is, for kernel 2.6; 2.4 kernels do something different).

The following example is for a two-interface router, with eth0 being the WAN and eth1 being the five-port switch configured as above. It goes in /etc/config/network

e.g.

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'

Of course, if you only had a five port switch on eth0 (and no other interfaces), you might make the wan interface eth0.1 and and the lan eth0.0 with appropriately matching switch, switch_vlan and switch_port sections.

See also backplane.

Back to top

ru/doc/uci/network/switch.txt · Last modified: 2013/12/19 01:05 (external edit)