L2 switching and VLANs

Материал из Juniper Exam Wiki
Версия от 18:13, 15 июля 2021; Наталия Бобкова (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Краткое overview

Ethernet = shared network: sharing collision domain. HUB - тот же shared collision domain, только хосты подключены не через шину, а через хаб (тупой свитч).

CSMA/CD: Хост хочет передать фрейм. Сначала он слушает: не вещает ли кто-то в домене. Начинает передавать свой фрейм, если не услышал шевелений от других. После передачи хост слушает - возникла ли коллизия. Если произошла коллизия, то хост замирает на время backoff delay. Если до начала отправки фрейма хост понимает, что кто-то тоже вещает в это время, он также замирает на backoff delay.

Bridge делит хосты на несколько collision domains. И изучает маки хостов.

Switch - каждый хост в своем порту. Каждый хост в своем collision domain. Изучает маки хостов.

Juniper switch разделяет Control Plane (routing engine [RE] = мозги, ядро свитча) и Forwarding Plane (packet forwarding engine [PFE]).

  • Routing engine: RPD - создает routing table и из неё forwarding table. L2-learning - создает bridging table.
  • Packet forwarding engine: содержит forwarding table, полученную от RE. Согласно таблице форвардит трафик.

Если через свитч бегает трафик между уже изученными хостами, то дальше PFE такой трафик не поднимается.

Если появляется новых хост, то PFE доставляет полученный пакет RE. RE проверяет всё ли ок (firewalls, policy, mac-add limits, ...). Если ok, то обновляет bridging table и передает обновленную bridging table на PFE. Дальше пакет форвардится на egress порт или флудится во все порты (если dst mac неизвестен).

Enterprise Devices:

  • SRX series - statefull firewall
  • EX series - свитче, работают на ELS software
  • QFX series - производительные коммутаторы, больше подходящие для DC - жирные порты, virtual chassis и т.д.

Типы портов на большинстве свитчей EX series:

  • aceess [10/100/1000 Mb] RJ45 + POE - для подключение хостов
  • uplink [1/10 Gb] SFP+ - для uplink или chassis cluster
  • MGMT - аналог fxp на роутерах Juniper - out of band mgmt Me0
  • console - RJ45 + mini-USB

Bridging process

Стандартные процедуры, которые происходят во время 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 удалится из таблицы. default = 300sec.

Зачем используем вланы

  • уменьшение кол-ва трафика и как следствие увеличение скорости передачи
  • вместо сегментироавния сети посредством маршрутизации, делаем сегментирование vlan'ами
  • четкая сортировка и идентефикация пакетов по доменам
  • секурность - управление меньшими бродкаст-доменами
  • быстрая реакция на перемещение хоста
  • используя вланы, можно сгруппировать хосты, находящиеся на разных концах страны в один домен.

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/0 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. Если добавить vlan-id только как native (без добавления в vlan-members), принцип обработки будет таким:
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.

Также есть инетерсные фичи, благодаря которым равнозначеные порты, требующие одинаковых настроек можно группировать:

set interfaces interface-range Uplinks member-range ge-1/0/40 to ge-1/0/43
set interfaces interface-range Uplinks unit 0 family ethernet-switching vlan members all

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.356 > vlan.356.

Дополнительная информация