Налаштовуємо vlan на freebsd, blog

Це не просто, а дуже просто.

VLAN (від англ. Virtual Local Area Network), VLAN можуть бути частиною більшого LAN, маючи певні правила взаємодії з іншими VLAN, або бути повністю ізольованими від них. Найпростіший механізм ізоляції різних підмереж, які працюють через загальні свічі та роутери, відомий як 802.1Q.

  • збільшує число широкомовних доменів. але зменшує розмір кожного широкомовного домену. які в свою чергу зменшують мережевий трафік і збільшують безпеку мережі (обидва слідства пов'язані разом через єдиного великого широковещательного домену);
  • зменшує зусилля адміністраторів на створення підмереж;
  • зменшує кількість обладнання, так як мережі можуть бути розділені логічно, а не фізично;
  • покращує управління різними типами трафіку.

Транк VLAN - це фізичний канал, по якому передається кілька VLAN каналів, які розрізняються тегами (мітками, що додаються в пакети). Транки зазвичай створюються між «тегованих портами» VLAN-пристроїв: свитч-світч або світч-маршрутизатор. (В документах Cisco терміном «транк» також називають об'єднання декількох фізичних каналів в один логічний: Link Aggregation, Port Trunking). Маршрутизатор (світч третього рівня) виступає в ролі магістрального ядра мережі (backbone) для мережевого трафіку різних VLAN.

На пристроях Cisco, протокол VTP (VLAN Trunking Protocol) передбачає VLAN-домени для спрощення адміністрування. VTP також виконує «чистку» трафіку, направляючи VLAN трафік тільки на ті комутатори, які мають цільові VLAN-порти.
Native VLAN - кожен порт має параметр, названий постійний віртуальний ідентифікацією (Native VLAN), який визначає VLAN, призначений отримати нетеговие кадри.

Сказавши простіше, vlan - це логічний канал всередині фізичного каналу (кабелю), а trunk це безліч логічних каналів (vlan`ов) всередині одного фізичного каналу (кабелю).

Отже більш-менш з теорією розібралися, тепер подумаємо навіщо нам це може знадобитися.

Дана технологія може стати в нагоді наприклад якщо на сервер потрібно «подати» кілька фізичних лінків, а мережева карта всього одна і вставити ще одну немає можливості.

Візьмемо подібну ситуацію як приклад і спробуємо налаштувати наступне:

Для того щоб розрулити цю ситуацію нам знадобиться switch який розуміє Vlan (802.1Q), вже майже всі керовані свічі йдуть з цією функцією. У нашому прикладі розглянемо два типи свічів:

  1. cisco catalyst (наприклад 2950 або 3560)
  2. dlink DES-3526

Налаштовуємо vlan на freebsd, blog

Два провайдера і сервер FreeBSD з одного сет.картой

Застромимо фізичні зв'язку в наш свіч, отримаємо три кабелю і три зайнятих порту

  1. порт 1 - Провайдер А
  2. порт 2 - Провайдер Б
  3. порт 3 - наш сервер

Налаштуємо cisco catalyst:

configure terminal
vlan 100
name provider_a
vlan 101
name provider_b
int gi0 / 1
switchport access vlan 100
int gi0 / 2
switchport access vlan 101
exit
exit

Цими командами ми створили два vlan з номерами 100 і 101 для лінків від двох провайдерів і призначили два порти Каталіст в ці vlan.

по команді show vlan ви повинні бачити створені vlan `и

Тепер перейдемо до конфігурації 3-го порту Каталіст куди застромлять наш сервер. Оскільки нам доведеться в цей порт посилати обидва vlan (100,101) нам необхідно зробити trunk на цьому порту:

configure terminal
int gi 0/3
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk allowed vlan 100,101
exit
exit

Цими командами ми на третьому порту Каталіст підняли trunk і дозволили в цьому trunk `е два vlan 100,101

У термінах Cisco:

  • порт в аксес / аксес порт (access port) - порт приймає не тегованих пакети (пакети в яких немає тега (номера) vlan якому вони належать)
  • порт в Транки / транк порт (trunk port) - порт приймає тегованих пакети в яких вказано тег (номер) vlan

Зробимо те ж саме, але для Dlink:

create vlan provider_a tag 100
create vlan provider_b tag 101
config vlan provider_a add untagged 1
config vlan provider_b add untagged 2
config vlan provider_a add tagged 3
config vlan provider_b add tagged 3

Так само по команді show vlan переконуємося що все на місці.

У термінах Dlink:

  • антагет порт (untagged port) - порт в аксес режимі приймати не тегованих пакети
  • Тагет порт (tagged port) - порт в Транки приймає тегерованние пакети

Переходимо до FreeBSD. Як приклад використовується сет. карта 82545EM Gigabit Ethernet Controller інтерфейс em0

/ Sbin / ifconfig em0 delete

Створимо vlan для провайдера А:

/ Sbin / ifconfig vlan100 create
/ Sbin / ifconfig vlan100 vlan 100 vlandev em0

Ось і все, vlan створений, перевіряємо чи є він у списку інтерфейсів:

запускаємо команду / sbin / ifconfig vlan100

vlan100: flags = 8842 metric 0 mtu 1500
options = 3
ether 00: 02: a5: 4e: 92: 48
media: Ethernet autoselect (100baseTX )
status: active
vlan: 100 parent interface: em0
Ітерфейс на місці.

Створимо vlan для провайдера Б:

/ Sbin / ifconfig vlan101 create
/ Sbin / ifconfig vlan101 vlan 101 vlandev em0

Перевіряємо чи є він у списку інтерфейсів:

запускаємо команду / sbin / ifconfig vlan101

vlan101: flags = 8842 metric 0 mtu 1500
options = 3
ether 00: 02: a5: 4e: 92: 48
media: Ethernet autoselect (100baseTX )
status: active
vlan: 101 parent interface: em0
Ітерфейс на місці.

Після того як інтерфейси vlan `ів створені ми звертаємося з ними як зі звичайними інтерфейсами звичайних мережевих карт.

/ Sbin / ifconfig vlan100 add 192.168.1.15/24
/ Sbin / ifconfig vlan101 add 172.16.10.48/26

Ось і все, якщо ви все зробили правильно, то при виводі команди ifconfig отримаєте:

vlan100: flags = 8843 metric 0 mtu 1500
options = 3
ether 00: 02: a5: 4e: 92: 48
inet 192.168.1.15 netmask 0xffffff00 broadcast 192.168.1.255
media: Ethernet autoselect (100baseTX )
status: active
vlan: 100 parent interface: em0

vlan101: flags = 8843 metric 0 mtu 1500
options = 3
ether 00: 02: a5: 4e: 92: 48
inet 172.16.10.48 netmask 0xffffffc0 broadcast 172.16.10.63
media: Ethernet autoselect (100baseTX )
status: active
vlan: 101 parent interface: em0

Можете перевіряти наявність зв'язку з двома провайдерами 🙂

Знищити / видалити vlan можна командою (наприклад видалимо vlan100):

/ Sbin / ifconfig vlan100 destroy

Залишилося остання справа, щоб після reboot конфігурація vlan `ів зберігалася.

Для цього додамо в файл /etc/rc.conf наступні рядки:

ifconfig_vlan100 = "inet 192.168.1.15 netmask 255.255.255.0 vlan 100 vlandev em0"
ifconfig_vlan101 = "inet 172.16.10.48 netmask 255.255.255.192 vlan 101 vlandev em0"
cloned_interfaces = »vlan100 vlan101"