Інше можливості чіпа комутації


Налаштування за допомогою командного рядка доступна з меню / interface ethernet switch. Дане меню містить список всіх представлених в системі чіпів комутації, а також деякі підміню. Через меню / interface ethernet switch виводиться список характеристик елемента, що є чіпом комутації, представленим в системі:

Залежно від типу комутатора, можуть бути доступні або, навпаки, недоступні деякі можливості налаштування.

можливості

комутація портів

Комутація дозволяє досягти провідний швидкості обміну даними між портами однієї групи, як між портами в звичайному Ethernet-комутатор. Ця функція може бути налаштована за допомогою завдання параметра "master-port" для одного або більше портів в меню / interface ethernet. Основний (master) порт буде портом, через який RouterOS буде взаємодіяти зі всіма іншими портами даної групи. Інтерфейси, для яких заданий master-порт, стають неактивні - не враховується надійшов на них трафік, і трафік не може бути з них відправлений.

Наприклад, розглянемо маршрутизатор з п'ятьма Ethernet-інтерфейсами:

І ви налаштовуєте комутатор, що містить три порти: ether3, ether4 і ether5:

ether3 тепер є master-портом групи. Примітка: ви можете помітити, що раніше підключення було зафіксовано тільки на інтерфейсі ether5, але тепер, тому що інтерфейсу ether3 присвоєно значення "master", прапор активності (R) поширюється і на master-порт.

Інше можливості чіпа комутації

По суті, дана конфігурація рівнозначна тому, як якщо б ваша RouterBoard мала б 3 Ethernet-інтерфейсу, і інтерфейс ether3 був би підключений до Ethernet-комутатора з чотирма портами:

Інше можливості чіпа комутації

Більш загальна схема RouterBoard з 5-портовим чіпом комутації:

Інше можливості чіпа комутації

Тут ви можете побачити, що пакет, отриманий одним з портів, завжди спочатку обробляється логікою комутатора (switch logic). Логіка комутатора вирішує, в які порти повинен бути спрямований пакет. Проходження пакета вище за схемою або, іншими словами, передача його RouterOS так само називається відправкою пакету на cpu-порт чіпа комутації. Це означає, що в момент пересилання комутатором пакета на cpu-порт, цей пакет починає оброблятися RouterOS як пакет, який прибув на якійсь із інтерфейсів. Поки пакет не досяг cpu-порту, його обробка повністю здійснюється логікою комутатора, не вимагаючи будь-якої участі центрального процесора, і ця обробка відбувається з провідний швидкістю при будь-якому розмірі кадру.

Порт ether1 на RB450G має особливість, яка дозволяє йому бути виключеним / доданим з / в комутованій (ую) групи (у) за замовчуванням. За замовчуванням порт ether1 буде включений в групу комутації. Дана конфігурація може бути змінена за допомогою команди / interface ethernet switch set switch1 switch-all-ports = no.

"Yes" означає, що порт ether1 є портом комутатора і підтримує створення груп комутації і всі інші розширені можливості чіпа Atheros8316, включаючи розширену статистику (/ interface ethernet print stats).

"No" означає, що порт ether1 не є частиною комутатора, що, фактично, робить його самостійним Ethernet-портом - це спосіб збільшення пропускної здатності між ним та іншими портами в режимах мережевого моста і маршрутизації, але в той же час виключає можливість комутації на цьому порту.

Інше можливості чіпа комутації

віддзеркалення порту

Віддзеркалення порту дозволяє комутатора відстежувати весь вхідний і вихідний трафік будь-якого одного порту (mirror-source) і відправляти копію цих пакетів на будь-якій іншій порт (mirror-target). Ця функція може бути використана для простого створення "прослуховуючого" пристрою, який отримує весь вхідний / вихідний трафік будь-якого конкретного порту. Зверніть увагу, що порти mirror-source і mirror-target повинні належати одному і тому ж комутатора (Побачити, яким комутатора належить той чи інший порт можна через меню / interface ethernet switch port). Також опції mirror-target може бути присвоєно значення "cpu", це означає те, що перехоплені пакети повинні бути відправлені з cpu-порту чіпа комутації. Віддзеркалення порту відбувається незалежно від того, були чи не були створені групи комутації.

Vlan-таблиця

Vlan-таблиці задають певні правила пересилання пакетів, що містять теги стандарту 802.1q. Ці правила мають більш високий пріоритет, ніж групи комутації, створені за допомогою параметра "master-port". В основному таблиця містить записи, які зіставляють певні ідентифікатори vlan-тегів з групою з одного або декількох портів. Пакети, що містять vlan-теги, залишають чіп комутації через один або кілька портів, зазначених у відповідних записах таблиці. Сувора логіка, яка контролює, як обробляються пакети з vlan-тегами, управляється за допомогою параметра "vlan-mode", значення якого можна змінювати для кожного порту комутатора окремо через меню / interface ethernet switch port. Параметр "vlan-mode" може набувати таких значень:

  • disabled - ігнорувати vlan-таблицю, обробляти пакети, що містять vlan-теги точно так же, як якщо б вони не містили vlan-тегів;
  • fallback - режим за замовчуванням - обробляти пакети, що містять vlan-теги, не представлені в vlan-таблиці, точно так же, як якщо б вони не містили vlan-тегів. Пакети, що містять vlan-теги, представлені в vlan-таблиці, але входить порт не відповідає якомусь порту в записах vlan-таблиці, що не будуть відкинуті.
  • check - відкидати пакети, що містять vlan-теги, не представлені в vlan-таблиці. Пакети, що містять vlan-теги, представлені в vlan-таблиці, але входить порт не відповідає якомусь порту в записах vlan-таблиці, що не будуть відкинуті.
  • secure - відкидати пакети, що містять vlan-теги, не представлені в vlan-таблиці. Пакети, що містять vlan-теги, представлені в vlan-таблиці, але входить порт не відповідає якомусь порту в записах vlan-таблиці, теж будуть відкинуті.

Пакети, що не містять vlan-тегів, обробляються так само, як якби вони містили vlan-тег з vlan id = 0. Це означає, що якщо параметру "vlan-mode" присвоєно значення "check" або "secure", то для того , щоб було можливо пересилати пакети без vlan-тегів, вам буде необхідно додати в vlan-таблицю окремий запис, в якій вказати vlan-ідентифікатор (vlan id) зі значенням "0".

Опція vlan-header (доступна для настройки через меню / interface ethernet switch port) задає режим VLAN-тега на вихідному порту. Дана опція функціонує тільки на чіпі Atheros 8316 і може набувати таких значень:

  • leave-as-is - пакет не піддається змінам на вихідному порту;
  • always-strip - якщо VLAN-заголовок присутній, він буде видалений з пакета;
  • add-if-missing - якщо VLAN-заголовок відсутній, він буде доданий до пакету.

Таблиця правил

Таблиця правил є дуже потужним інструментом, що дозволяє на провідний швидкості (wire speed) здійснювати операції пакетної фільтрації, пересилання і vlan-тегування, грунтуючись на відповідностях по певним значенням в полях заголовків протоколів L2, L3, L4-рівнів.

Кожне правило складається з блоку умов і блоку дій (action). За блок дій відповідають наступні параметри:


За блок умов відповідають наступні параметри:

IPv4 і IPv6-умови не можуть бути використані одночасно в одному і тому ж правилі. Таблиця містить впорядкований список правил, як і в меню / ip firewall filter. Внаслідок того, що таблиця правил повністю обробляється за рахунок апаратних можливостей чіпа комутації, існує обмеження на кількість правил, яке ви можете задати. Залежно від кількості заданих умов (MAC-рівня, IP-рівня, IPv6, L4-рівня), які використовуються в ваших правилах, кількість активних правил може варіювати від 8 до 32 для чіпа Atheros 8316 і від 24 до 96 для чіпа Atheros 8327. ви завжди можете запустити команду / interface ethernet switch rule print після модифікації вашого набору правил, щоб проконтролювати, що в кінці списку відсутні правила з міткою "invalid", яка означає, що чіп комутації не в змозі обробити дані правила.

приклади налаштування

Приклад 1. Створення 802.1Q-транка засобами Atheros 8316

Інше можливості чіпа комутації

Роутерборди, побудовані на основі комутаційного чіпа Atheros 8316, можуть бути використані для створення 802.1Q-транков. В даному прикладі інтерфейси ether2, ether3 і ether4 є портами доступу (access ports), в той час як ether5 є транк-портом (trunk port). VLAN-ідентифікатори (VLAN-ID) для кожного порту доступу: ether2 - 200, ether3 - 300, ether4 - 400.

  • Задамо параметри vlan-mode і vlan-header на виході кожного з портів. Використовуйте vlan-mode = secure для того, щоб забезпечити суворе відповідність вмісту VLAN-таблиці. Для портів доступу (access port) використовуйте параметр vlan-header = always-strip - в цьому випадку VLAN-заголовки будуть видалятися з фрейма на виході з комутаційного чіпа. Для транкового порту (trunk port) використовуйте параметр vlan-header = add-if-missing, який буде додавати VLAN-заголовок до нетегірованним фреймам.
  • Для портів доступу і транк-порту задайте правила перенаправлення. У нетегірованних фреймів, що надходять на порти доступу, вихідний VLAN-ID буде змінений ще до того, як вони будуть відіслані на транк-порт. Фрейми, отримані на транк-порте будуть відправлені на відповідні порти доступу відповідно до значень своїх VLAN-ID.
  • Додайте записи в VLAN-таблицю для того, щоб дозволити на вхідному порте фрейми з певними значеннями VLAN-ID.

Приклад 2. Trunk і Access Ports

Routerboards with Atheros switch chips can be used for 802.1Q Trunking. This feature in RouterOS version 6 is supported by QCA8337, AR8316, AR8327, AR8227 and AR7240 switch chips.
In this example ether3, ether4 and ether5 interfaces are access ports, while ether2 is a trunk port. VLAN IDs for each access port: ether3 - 200, ether4 - 300, ether5 - 400.

  • Create a group of switched ports by selecting one master-port and setting it for other ports.
  • Add VLAN table entries to allow frames with specific VLAN IDs between ports.
  • Assign "vlan-mode" and "vlan-header" mode for each port and also "default-vlan-id" on ingress for each access port.

Setting "vlan-mode = secure" ensures strict use of VLAN table.
Setting "vlan-header = always-strip" for access ports removes VLAN header from frame when it leaves the switch chip.
Setting "vlan-header = add-if-missing" for trunk port adds VLAN header to untagged frames.
"Default-vlan-id" specifies what VLAN ID is added for untagged ingress traffic of the access port.

Приклад 2. Trunk і Hybrid Ports

VLAN Hybrid ports which can forward both tagged and untagged traffic are supported only by some Gigabit switch chips (QCA8337, AR8327)

  • Create a group of switched ports.
  • Add VLAN table entries to allow frames with specific VLAN IDs between ports.
  • In switch port menu set "vlan-mode" on all ports and also "default-vlan-id" on planned hybrid ports.

"Vlan-mode = secure" will ensure strict use of VLAN table.
"Default-vlan-id" will define VLAN for untagged ingress traffic on port.
In Gigabit switch chips when "vlan-mode = secure", it ignores switch port "vlan-header" options. VLAN table entries handle all the egress tagging / untagging and works as "vlan-header = leave-as-is" on all ports.
It means what comes in tagged, goes out tagged as well, only "default-vlan-id" frames are untagged at the egress of port.

Management IP Configuration

This example will show one of the possible management IP address configurations. Management IP will be accessible only through trunk port and it will have a separate VLAN with ID 99.

  • Add VLAN table entry to allow management traffic through switch-cpu port and the trunk port.
  • Configure the port which connects switch-chip with CPU, set "vlan-header = leave-as-is" because management traffic already should be tagged.
  • Add VLAN 99 and assign IP address to it. Since the master-port receives all the traffic coming from switch-cpu port, VLAN has to be configured on master-port, in this case "ether2" port.