L2 switching and VLANs
Зачем используем вланы
- уменьшение кол-ва трафика и как следствие увеличение скорости передачи
- вместо сегментироавния сети посредством маршрутизации, делаем сегментирование vlan'ами
- четкая сортировка и идентефикация пакетов по доменам
- секурность - управление меньшими бродкаст-доменами
- быстрая реакция на перемещение хоста
- используя вланы, можно сгруппировать хосты, находящиеся на разных концах страны в один домен.
Bridging
Стандартные процедуры, которые происходят во время bridging:
- Изучение (learning). Изначально switch не в курсе где какие хосты включены. Как только к LAN/VLAN подключился хост и отправил пакет, свитч изучает mac-address этого хоста. Записывает с таблицу коммутации: port + mac + age (время, когда mac был изучен).
- Передача (Forwarding). Использую таблицу коммутации, свитч делает передачу фреймов между портам хостов. Если требуется передать фрейм на неизученный ранее mac-address, то запускается процесс flooding.
- Флуд (Flooding). Флуд производистя внутри LAN/VLAN. Флудится неизученный mac-address. Когда хост получит фрейм со своим адресом, он посылает в ответ ACK. Mac-addrees изучается и добавляется в таблицу коммутации.
- Фильтрация (Filtering). Трафик в рамках одного VLAN будет фильтроваться и не передаваться в другой VLAN.
- Устаревание (Aging). Каждый раз когда свитч детектит трафик от MAC, обновляется временная метка. Если трафик перестал поступать - обновляться время жизни более не будет. Когда временная метка станет больше заданного значения, запись о данном mac-address удалится из таблицы.
Tagging
VLAN-id диапазон: 1-4094. 0,4095 - зарезервированы под служебные нужды Junos.
Точно определить кол-во вланов, подерживаемое на железке:
set vlans vlan-name vlan-id ?
Во фрейме есть поле: TPID (tag protocol identifier).
Когда хост генерирует фрейм во влане, он заполняет поле TPID значением 0x8100, что означает - теггированный пакет.
Также во фрейме есть поле: VLAN ID, которое заполняется присвоенным уникальным 802.1Q ID.
TPID 0x8100 = tagged TPID 0x9100 = qinq TPID 0x88a8 = Provider Bridging and Shortest Path Bridging
По дефолту используется vlan-id 1, как нетеггированный.
Как создать и назначать влан на порт:
set vlans v356 vlan-id 356 set interfaces ge-2/0/46 unit 0 family ethernet-switching vlan members v356
Interface-mode
- Access. Принимает только untagged трафик. Дефолтное поведение чистого свитча: все порты в access default vlan (vlan-id 1 [можно при желании сменить vlan-id])
set interfaces ge-2/0/1 unit 0 family ethernet-switching interface-mode access set interfaces ge-2/0/1 unit 0 family ethernet-switching vlan members v356
- Trunk. Принимает только tagged трафик. Можно настроить прохождение дофига vlan-id через один trunk-порт. Не пропускает untagged data-трафик. Но воспринимает untagged служебный трафик (например LACP, LLDP и прочее)
set interfaces ae0 unit 0 family ethernet-switching interface-mode trunk set interfaces ae0 unit 0 family ethernet-switching vlan members [ v355 v356 ]
- Trunk Mode and Native VLAN. Принимает tagged трафик + untagged трафик того влана, который будет настроен как native. Случай, когда настраиваем только native на порту такое принцип отработки:
set interfaces ge-0/0/34 native-vlan-id 391 set interfaces ge-0/0/34 unit 0 family ethernet-switching interface-mode trunk set interfaces ge-0/0/34 unit 0 family ethernet-switching vlan members v356
Transmit = untagged 391 (pass)
Receive = untagged 391 (pass)
Receive = tagged to 391 (drop)
Если настроить native vlan-id + добавить этот vlan-id в trunk: когда свитч получит untagged трафик, он пометит его данным vlan-id, а также будет принимать и отправлять tagged трафик этого же vlan-id.
set interfaces ge-0/0/34 native-vlan-id 391 set interfaces ge-0/0/34 unit 0 family ethernet-switching interface-mode trunk set interfaces ge-0/0/34 unit 0 family ethernet-switching vlan members v356 set interfaces ge-0/0/34 unit 0 family ethernet-switching vlan members v391
Transmit = tagged 391 (pass)
Receive = untagged 391 (pass - mapped to 391)
Receive = tagged 391 (pass)
- Tagged-access mode. Используется для подключения серверов с виртуалками. Отсюда от access-mode взят тип подключения - host. Но по факту для если для каждой виртуалки используется свой влан, то порт должен пропускать tagged трафик. Это он и делает - это особенность от trunk-mode. Также поддерживается native vlan.
Inter-VLAN routing
Чтобы появилась возможность коннектиться хостам из разных доменов - настраиваем Inter-VLAN routing.
По сути это просто создание l3-интерфейса [routed VLAN interface (RVI) или IRB] внутри влана.
Внутри влана трафик будет бриджеваться, а между вланами - роутиться.
set interfaces irb unit 356 family inet address 10.170.19.1/24 set vlans v356 vlan-id 356 l3-interface irb.356
set interfaces ge-2/0/46 unit 0 family ethernet-switching vlan members v356 set interfaces ae0 unit 0 family ethernet-switching vlan members v356
show interfaces terse irb.356 Interface Admin Link Proto Local Remote irb.356 up up inet 10.170.19.1/24
L3 интерфейс будет в состоянии up как только vlan v356 будет назначен (trunk или access) на какой-нибудь физический интерфейс в up.
В случае с RVI будет всё тоже самое только вместо irb типа интерфейса будет vlan [vlan.356]
© Наталия Бобкова 2014—2022