Основи комп'ютерних мереж. Тема №6. Поняття VLAN Trunk і протоколи VTP і DTP



Всіх з наступившим новим роком! Продовжуємо розмову про мережах і сьогодні торкнемося таку важливу тему в світі комутації, як VLAN. Подивимося, що він із себе представляє і як з ним працювати. А також розберемо працюють з ним протоколи VTP і DTP.

Зміст1) Основні мережеві терміни, мережева модель OSI і стек протоколів TCP/IP.
2) Протоколи верхнього рівня.
3) Протоколи нижніх рівнів (транспортного, мережевого і канального).
4) Мережні пристрої і види застосовуваних кабелів.
5) Поняття IP адресації, масок підмереж і їх розрахунок.
6) Поняття VLAN Trunk і протоколи VTP і DTP.
7) Протокол сполучного дерева: STP.
8) Протокол агрегування каналів: Etherchannel.
9) Маршрутизація: статична і динамічна на прикладі RIP, OSPF і EIGRP.
10) Трансляція мережевих адрес: NAT і PAT.
11) Протоколи резервування першого переходу: FHRP.
12) Безпека комп'ютерних мереж і віртуальні приватні мережі VPN.
13) Глобальні мережі і використовувані протоколи: PPP, HDLC, і Frame Relay.
14) Введення в IPv6, конфігурація і маршрутизація.
15) Мережеве управління і моніторинг мережі.

P. S. Можливо, з часом список доповниться.
У попередніх статтях ми вже працювали з багатьма мережевими пристроями, зрозуміли, чим вони один від одного відрізняються і розглянули з чого складаються кадри, пакети та інші PDU. В принципі з цими знаннями можна організувати найпростішу локальну мережу і працювати в ній. Але світ не стоїть на місці. З'являється все більше пристроїв, які навантажують мережу або що ще гірше — створюють загрозу безпеки. А, як правило, «небезпека» з'являється раніше «безпеки». Зараз я на найпростішому прикладі покажу.

Ми поки не будемо зачіпати маршрутизатори і різні підмережі. Припустимо всі вузли знаходяться в одній підмережі.
Відразу наведу список IP-адрес:

  1. PC1 – 192.168.1.2/24
  2. PC2 – 192.168.1.3/24
  3. PC3 – 192.168.1.4/24
  4. PC4 – 192.168.1.5/24
  5. PC5 – 192.168.1.6/24
  6. PC6 – 192.168.1.7/24
У нас 3 відділу: дирекція, бухгалтерія, відділ кадрів. У кожного відділу свій комутатор і з'єднані вони через центральний верхній.
І ось PC1 відправляє ping на комп'ютер PC5.





Хто хоче побачити це у вигляді анімації, відкривайте спойлер.
Робота мережі в одному широкомовному домені

Гарно так? Ми в минулих статтях вже не раз говорили про роботу протоколу ARP, але це було ще в минулому році, тому коротко поясню. Так як PC1 не знає MAC-адреса (або адреса канального рівня) PC5, то він відправляє у розвідку ARP, щоб той повідомив йому. Він приходить на комутатор, звідки ретранслюється на всі активні порти, тобто до PC2 і на центральний комутатор. З центрального комутатора вилетить на сусідні комутатори і так далі, поки не дійде до PC5. Ось такий не маленький трафік викликало одне ARP-повідомлення. Його отримали всі учасники мережі. Великий і не потрібний трафік — це перша проблема. Друга проблема — це безпека. Думаю, помітили, що повідомлення дійшло навіть до відділу кадрів, комп'ютери яких взагалі не брали участь в цьому. Будь зловмисник, підключившись до будь-якого з комутаторів, буде мати доступ до всієї мережі. В принципі мережі раніше так і працювали. Комп'ютери перебували в одній канальної середовищі і поділялися тільки за допомогою маршрутизаторів. Але час йшов, і потрібно було вирішувати цю проблему на канальному рівні. Cisco, як піонер, придумала свій протокол, який тегировал кадри і визначав належність до певної канальної середовищі. Називався він ISL (Inter-Switch Link). Ця ідея сподобалася всім і IEEE вирішили розробити аналогічний відкритий стандарт. Стандарт отримав назву 802.1 q. Одержав величезне поширення і Cisco вирішила теж перейти на нього.
І от як раз технологія VLAN ґрунтується на роботі протоколу 802.1 q. Давайте вже почнемо говорити про неї.
3-їй частини я показав, як виглядає ethernet-кадр. Подивіться на нього і освіжіть в пам'яті. Ось так виглядає не тегированный кадр.


Тепер поглянемо на тегированный.


Як бачимо, відмінність в тому, що з'являється якийсь Тег. Це те, що нам і цікаво. Копнемо глибше. Складається він з 4-х частин.

1) TPID (англ. Tag Protocol ID) або Ідентифікатор тегированного протоколу — складається з 2-х байт і для VLAN завжди дорівнює 0x8100.
2) PCP (англ. Priority Code Point) або значення пріоритету — складається з 3-х біт. Використовується для пріоритезації трафіку. Круті і бородаті сисадміни знають, як правильно ним керувати і оперує їм, коли в мережі гуляє різний трафік (голос, відео, дані і т. д.)
3) CFI (англ. Canonical Format Indicator) або індикатор канонічного формату — просте поле, що складається з одного біта. Якщо стоїть 0, то це стандартний формат MAC-адреси.
4) VID (англ. VLAN ID) або ідентифікатор VLAN — складається з 12 біт і показує, в якому VLAN знаходиться кадр.

Хочу загострити увагу на тому, що тегування кадрів здійснюється між мережевими пристроями (комутатори, маршрутизатори тощо), а між кінцевим вузлом (комп'ютер, ноутбук) і мережевим пристроєм кадри не тегируются. Тому порт мережевого пристрою може перебувати у 2-х станах: access або trunk.

  • Access port або порт доступу — порт, що знаходиться в певному VLAN і передає не теговані кадри. Як правило, це порт, що дивиться на користувальницьке пристрій.
  • Trunk port або магістральний порт — порт, передає тегированный трафік. Як правило, цей порт піднімається між мережевими пристроями.


Зараз я покажу це на практиці. Відкриваю ту ж лабу. Картинку повторювати не буду, а відразу відкрию комутатор і подивлюся, що у нього з VLAN.
Набираю команду show vlan.



Шикуються декілька таблиць. Нам по суті важлива тільки найперша. Тепер покажу як її читати.

1 стовпець — це номер VLAN. Тут споконвічно присутня номер 1 — це стандартний VLAN, який є на кожному комутаторі. Він виконує ще одну функцію, про яку трохи нижче напишу. Також присутні зарезервовані з 1002-1005. Це для інших канальних середовищ, які навряд чи зараз використовуються. Видалити їх теж не можна.

Switch(config)#no vlan 1005
Default VLAN 1005 may not be deleted.
При видаленні Cisco виводить повідомлення, що цей VLAN не можна видалити. Тому живемо і ці 4 VLANа не чіпаємо.

2 стовпець — це ім'я VLAN. При створенні VLAN, ви можете на свій розсуд придумувати їм осмислені імена, щоб потім їх ідентифікувати. Тут вже є default, fddi-default, token-ring-default, fddinet-default, trnet-default.

3 стовпець — статус. Тут показується в якому стані знаходиться VLAN. На даний момент VLAN 1 або default стані active, а 4 act/unsup (хоч і активні, але не підтримуються).

4 стовпець — порти. Тут показано до яких VLAN-ам належать порти. Зараз, коли ми ще нічого не чіпали, вони знаходяться в default.

Приступаємо до налаштування комутаторів. Правилом хорошого тону буде дати комутаторів осмислені імена. Чим і займемося. Наводжу команду.

Switch(config)#hostname CentrSW
CentrSW(config)#
Інші налаштовуються аналогічно, тому покажу оновлену схему топології.


Почнемо налаштування з комутатора SW1.
Для початку створимо VLAN на комутаторі.

SW1(config)#vlan 2 — створюємо VLAN 2 (VLAN 1 по умовчанню зарезервований, тому беремо наступний).
SW1(config-vlan)#name Dir-ya — потрапляємо в налаштування VLAN і задаємо йому ім'я.
VLAN створений. Тепер переходимо до портів.
Інтерфейс FastEthernet0/1 дивиться на PC1, а FastEthernet0/2 на PC2. Як говорилося раніше, кадри між ними повинні передаватися не тегированными, тому переведемо їх у стан Access.

SW1(config)#interface fastEthernet 0/1 — переходимо до налаштування 1-ого порту.
SW1(config-if)#switchport access mode — переводимо порт у режим access.
SW1(config-if)#switchport access vlan 2 — закріплюємо за портом 2-ой VLAN.
SW1(config)#interface fastEthernet 0/2 — переходимо до налаштування 2-ого порту.
SW1(config-if)#switchport access mode — переводимо порт у режим access.
SW1(config-if)#switchport access vlan 2 — закріплюємо за портом 2-ой VLAN.
Так як обидва порти закріплюються під однаковим VLAN-му, то їх ще можна було налаштувати групою.

SW1(config)#interface range fastEthernet 0/1-2 — тобто вибираємо пул і далі настроювання аналогічна.
SW1(config-if-range)#switchport access mode
SW1(config-if-range)#switchport access vlan 2
Налаштували access порти. Тепер налаштуємо trunk між SW1 і CentrSW.

SW1(config)#interface fastEthernet 0/24 — переходимо до налаштування 24-ого порту.
SW1(config-if)#switchport mode trunk — переводимо порт у режим trunk.
%LINEPROTO-5-UPDOWN: Line Interface protocol on FastEthernet0/24, changed state to down
%LINEPROTO-5-UPDOWN: Line Interface protocol on FastEthernet0/24, changed state to up
Відразу бачимо, що порт перенастроился. В принципі для роботи цього достатньо. Але з точки зору безпеки дозволяти для передачі потрібно тільки ті VLAN, які дійсно потрібні. Приступимо.

SW1(config-if)#switchport trunk allowed vlan 2 — дозволяємо передавати тільки 2-ий VLAN.
Без цієї команди будуть передаватися всі наявні VLAN.
Подивимося, як змінилася таблиця командою show vlan.

З'явився 2-ой VLAN з ім'ям Dir-ya і бачимо, що належать йому порти fa0/1 та fa0/2.

Щоб вивести тільки верхню таблицю, можна скористатися командою show vlan brief.



Можна ще скоротити висновок, якщо вказати певний ID VLANа.



Або його ім'я.



Вся інформація про VLAN зберігається в flash пам'яті у файл vlan.dat.



Як ви помітили, ні в однієї з команд, немає інформації про trunk. Її можна подивитися іншою командою show interfaces trunk.



Тут є інформація і про trunk портах, і про те які VLAN вони передають. Ще тут є стовпець Native vlan. Це як раз той трафік, який не повинен тегироваться. Якщо на комутатор приходить не тегированный кадр, то він автоматично зараховується до Native Vlan (за замовчуванням і в нашому випадку це VLAN 1). Native VLAN можна, а багато говорять, що потрібно міняти в цілях безпеки. Для цього в режимі налаштування транкового порту потрібно застосувати команду — switchport trunk native vlan X, X — номер, що присвоюється VLAN. У цій топології ми міняти не будемо, але знати, як це робити корисно.

Залишилося встановити інші пристрої.

CentrSW:
Центральний комутатор є сполучною ланкою, а значить він повинен знати про всі VLAN-ах. Тому спочатку створюємо їх, а потім переводимо всі інтерфейси в транковий режим.

CentrSW(config)#vlan 2
CentrSW(config-vlan)# name Dir-ya
CentrSW(config)#vlan 3
CentrSW(config-vlan)# name buhgalter
CentrSW(config)#vlan 4
CentrSW(config-vlan)# name otdel-kadrov
CentrSW(config)#interface range fastEthernet 0/1-3
CentrSW(config-if-range)#switchport mode trunk
Не забуваємо зберігати конфіг. Команда copy running-config startup-config.

SW2:

SW2(config)#vlan 3
SW2(config-vlan)#name buhgalter
SW2(config)#interface range fastEthernet 0/1-2
SW2(config-if-range)#switchport access mode
SW2(config-if-range)#switchport access vlan 3
SW2(config)#interface fastEthernet 0/24
SW2(config-if)#switchport mode trunk
SW1(config-if)#switchport trunk allowed vlan 4

SW3:

SW3(config)#vlan 4
SW3(config-vlan)#name buhgalter
SW3(config)#interface range fastEthernet 0/1-2
SW3(config-if-range)#switchport access mode
SW3(config-if-range)#switchport access vlan 4
SW3(config)#interface fastEthernet 0/24
SW3(config-if)#switchport mode trunk
SW1(config-if)#switchport trunk allowed vlan 4
Зверніть увагу на те, що ми підняли і налаштували VLAN, але адресацію вузлів залишили такий же. Тобто, фактично всі вузли в одній підмережі, але розділені VLAN-ами. Так робити не можна. Кожному VLAN треба виділяти окрему підмережа. Я це зробив винятково в навчальних цілях. Якщо б кожен відділ сидів у своїй підмережі, то вони б апріорі були обмежені, так як комутатор не вміє маршрутизувати трафік однієї підмережі в іншу (плюс це вже обмеження на мережевому рівні). А нам потрібно обмежити відділи на канальному рівні.
Знову відправляю ping з PC1 до PC3.

Йде в хід ARP, який нам і потрібний зараз. Відкриємо його.

Поки що нічого нового. ARP инкапсулирован в ethernet.

Кадр прилітає на комутатор і тегируется. Тепер там не звичайний ethernet, а 802.1 q. Додалися поля, про які я писав раніше. Це TPID, який дорівнює 8100 і показує, що це 802.1 q. І TCI, яке об'єднує 3 поля PCP, CFI і VID. Число, яке в цьому полі — це номер VLAN. Рухаємося далі.

Після тега він відправляє кадр на PC2 (т. к. він у тому ж VLAN) і на центральний комутатор за транковому порту.

Так як жорстко не було прописано які типи VLAN пропускати за яким портів, то він відправить на обидва комутатора. І ось тут комутатори, побачивши номер VLAN, розуміють, що пристроїв з таким VLAN-му у них немає і сміливо його відкидають.

PC1 очікує відповідь, який так і не приходить. Можна під спойлером подивитися у вигляді анімації.
Анімація


Тепер наступна ситуація. До складу дирекції наймають ще однієї людини, але в кабінеті дирекції немає місця і на час просять розмістити людини у відділі бухгалтерії. Вирішуємо цю проблему.

Підключили комп'ютер до порту FastEthernet 0/3 комутатора і присвою IP-адреса 192.168.1.8/24.
Тепер настрою комутатор SW2. Так як комп'ютер повинен перебувати у 2-му VLAN, про який комутатор не знає, то створю його на комутаторі.

SW2(config)#vlan 2
SW2(config-vlan)#name Dir-ya
Далі налаштовуємо порт FastEthernet 0/3, який дивиться на PC7.

SW2(config)#interface fastEthernet 0/3
SW2(config-if)#switchport access mode
SW2(config-if)#switchport access vlan 2
І останнє — налаштувати транковий порт.

SW2(config)#interface fastEthernet 0/24
SW2(config-if)#switchport trunk allowed vlan 2 add — зверніть увагу на цю команду.
А саме на ключове слово "add". Якщо не дописати це слово, то ви зітрете всі інші дозволені до передачі VLAN на цьому порту.
Тому якщо у вас вже був піднятий транк на порту і передавалися інші VLAN, то додавати треба саме так.
Щоб кадри ходили красиво, подкорректирую центральний комутатор CentrSW.

CentrSW(config)#interface fastEthernet 0/1
CentrSW(config-if)#switchport mode trunk allowed vlan 2
CentrSW(config)#interface fastEthernet 0/2
CentrSW(config-if)#switchport mode trunk allowed vlan 2,3
CentrSW(config)#interface fastEthernet 0/3
CentrSW(config-if)#switchport mode trunk allowed vlan 4
Час перевірки. Відправляю ping з PC1 на PC7.


Поки що весь шлях аналогічний попередньому. Але ось з цього моменту (з картинки нижче) центральний комутатор прийме інше рішення. Він отримує кадр і бачить, що той протегирован 2-им VLAN-му. Значить відправляти його треба тільки туди, де це дозволено, тобто на порт fa0/2.



І ось він приходить на SW2. Відкриваємо і бачимо, що він ще тегированный. Але наступним вузлом стоїть комп'ютер і тег треба знімати. Натискаємо на «Outbound PDU Details», щоб подивитися, в якому вигляді кадр вилетить з комутатора.

І дійсно. Комутатор відправить кадр в «чистому» вигляді, тобто без тегів.


Доходить ARP до PC7. Відкриваємо його і переконуємося, що кадр не тегированный PC7 впізнав себе і відправляє відповідь.


Відкриваємо кадр на комутаторі і бачимо, що на відправку він піде тегированным. Далі кадр буде подорожувати тим же шляхом, що і прийшов.




ARP доходить до PC1, про що свідчить позначка на конверті. Тепер йому відомий MAC-адреса і він пускає в хід ICMP.

Відкриваємо пакет на комутаторі і спостерігаємо таку ж картину. На канальному рівні кадр тегируется комутатором. Так буде з кожним повідомленням.



Бачимо, що пакет успішно доходить до PC7. Зворотний шлях я показувати не буду, так як він аналогічний. Якщо кому цікаво, можна побачити весь шлях на анімації під спойлером нижче. А якщо бажання самому поколупати цю топологію, прикладаю посилання на лабораторку.
Логіка роботи VLAN


Ось в принципі найпопулярніше застосування VLAN-ів. Незалежно від фізичного розташування, можна логічно об'єднувати вузли в групи, там самим ізолюючи їх від інших. Дуже зручно, коли співробітники фізично працюють у різних місцях, але повинні бути об'єднані. І звичайно з точки зору безпеки VLAN не замінні. Головне, щоб до мережевих пристроїв мали доступ обмежене коло осіб, але це вже окрема тема.
Домоглися обмеження на канальному рівні. Трафік тепер не гуляє де попало, а ходить строго за призначенням. Але тепер постає питання в тому, що відділам між собою спілкуватися. А так як вони в різних канальних середовищах, то в справу вступає маршрутизація. Але перед початком, наведемо топологію порядок. Найперше до чого докласти руку — це адресація вузлів. Повторюся, що кожен відділ повинен знаходитися у своїй підмережі. Разом отримуємо:

  • Дирекція — 192.168.1.0/24
  • Бухгалтерія — 192.168.2.0/24
  • Відділ кадрів — 192.168.3.0/24


Раз підмережі визначені, то відразу адресуємо вузли.
  1. PC1:
    IP: 192.168.1.2
    Маска: 255.255.255.0 або /24
    Шлюз: 192.168.1.1
  2. PC2:
    IP: 192.168.1.3
    Маска: 255.255.255.0 або /24
    Шлюз: 192.168.1.1
  3. PC3:
    IP: 192.168.2.2
    Маска: 255.255.255.0 або /24
    Шлюз: 192.168.2.1
  4. PC4:
    IP: 192.168.2.3
    Маска: 255.255.255.0 або /24
    Шлюз: 192.168.2.1
  5. PC5:
    IP: 192.168.3.2
    Маска: 255.255.255.0 або /24
    Шлюз: 192.168.3.1
  6. PC6:
    IP: 192.168.3.3
    Маска: 255.255.255.0 або /24
    Шлюз: 192.168.3.1
  7. PC7:
    IP: 192.168.1.4
    Маска: 255.255.255.0 або /24
    Шлюз: 192.168.1.1
Тепер про зміни в топології. Бачимо, що додався маршрутизатор. Він як раз і буде перекидати трафік з одного VLAN на інший (іншими словами маршрутизувати). Спочатку з'єднання між ним і комутатором немає, так як інтерфейси виключені.
У вузлів додався такий параметр, як адреса шлюзу. Ця адреса вони використовують, коли треба відправити повідомлення вузла, що знаходиться в іншій підмережі. Відповідно у кожній підмережі свій шлюз.
Залишилося налаштувати маршрутизатор, і я відкриваю його CLI. За традицією дам осмислене ім'я.

Router(config)#hostname Gateway
Gateway(config)#
Далі переходимо до налаштування інтерфейсів.

Gateway(config)#interface fastEthernet 0/0 — переходимо до необхідного інтерфейсу.
Gateway(config-if)#no shutdown — включає його.
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line Interface protocol on FastEthernet0/0, changed state to up
Тепер увага! Ми включили інтерфейс, але не повісили на нього IP-адресу. Справа в тому, що від фізичного інтерфейсу (fastethernet 0/0) потрібен тільки лінк або канал. Роль шлюзів будуть виконувати віртуальні інтерфейси або сабинтерфейсы (англ. subinterface). На даний момент 3 типу VLAN. Значить і сабинтерфейсов буде 3. Приступаємо до налаштування.

Gateway(config)#interface fastEthernet 0/0.2
Gateway(config-if)#encapsulation dot1Q 2
Gateway(config-if)#ip-адресу 192.168.1.1 255.255.255.0
Gateway(config)#interface fastEthernet 0/0.3
Gateway(config-if)#encapsulation dot1Q 3
Gateway(config-if)#ip address 192.168.2.1 255.255.255.0
Gateway(config)#interface fastEthernet 0/0.4
Gateway(config-if)#encapsulation dot1Q 4
Gateway(config-if)#ip address 192.168.3.1 255.255.255.0
Маршрутизатор налаштований. Переходимо до центрального комутатора і налаштуємо на ньому транковий порт, щоб він пропускав теговані кадри на маршрутизатор.

CentrSW(config)#interface fastEthernet 0/24
CentrSW(config-if)#switchport mode trunk
CentrSW(config-if)#switchport trunk allowed vlan 2,3,4
Конфігурація закінчена і переходимо до практики. Відправляю ping з PC1 на PC6 (тобто на 192.168.3.3).

PC1 поняття не має, хто такий PC6 або 192.168.3.3, але знає, що вони знаходяться в різних підмережах (як він це розуміє описано в попередній статті). Тому він відправить повідомлення через основний шлюз, адресу якого вказано в його налаштуваннях. І хоч PC1 знає IP-адресу основного шлюзу, для повного щастя не вистачає MAC-адреси. І він пускає в хід ARP.




Зверніть увагу. Як тільки кадр прибуває на CentrSW, комутатор не розсилає його кому попало. Він розсилає тільки на ті порти, де дозволений пропуск 2-го VLAN. Тобто на маршрутизатор і на SW2 (там є користувач, який сидить у 2-му VLAN).

Маршрутизатор впізнає себе і відправляє відповідь (показаний стрілкою). І зверніть увагу на нижній кадр. Коли SW2 отримав ARP від центрального комутатора, він аналогічно не став розсилати його на всі комп'ютери, а відправив тільки PC7, який сидить у 2-му VLAN. Але PC7 його відкидає, так як він не для нього. Дивимося далі.



ARP дійшов до PC1. Тепер йому все відомо і можна відправляти ICMP. Ще раз зверну увагу на те, що в якості MAC-адреси призначення (канальний рівень), адреса маршрутизатора, а в якості IP-адреси призначення (мережевий рівень), адреса PC6.



Доходить ICMP до маршрутизатора. Він дивиться у свою таблицю і розуміє, що не знає нікого під адресою 192.168.3.3. Відкидає прибув ICMP і пускає розвідати ARP.




PC6 впізнає себе і відправляє відповідь.




Доходить до маршрутизатора відповідь і він додає запис в своїй таблиці. Подивитися таблицю ARP можна командою show arp.



Рухаємося далі. PC1 незадоволений, що йому ніхто не відповідає і відправляє наступне ICMP-повідомлення.







На цей раз ICMP доходить без проблем. Назад він пройде тим же маршрутом. Я лише покажу кінцевий результат.

Перший пакет загубився (в результаті роботи ARP), а другий дійшов без проблем.
Кому цікаво побачити в анімації, ласкаво просимо під спойлер.
InterVLAN Routing


Отже. Ми домоглися того, що якщо вузли знаходяться в одній підмережі і в одному VLAN, то вони будуть ходити прямо через комутатори. У випадку, коли потрібно передати повідомлення в іншу підмережа і VLAN, то будуть передавати через роутер Gateway, який здійснює «межвлановую» маршрутизацію. Дана топологія отримала назву «router on a stick» або «роутер на паличці». Як ви зрозуміли вона дуже зручна. Ми створили 3 віртуальних інтерфейсу і по одному дроту ганяли різні теговані кадри. Без використання сабинтерфейсов і VLAN-ів, довелося б для кожної підмережі задіяти окремий фізичний інтерфейс, що зовсім не вигідно.
До речі дуже добре це питання досліджено в цьому відео (відео йде близько 3-х годин, тому посилання з прив'язкою саме до того моменту часу). Якщо після прочитання і перегляду відео захочеться добити все власними руками, прикладаю посилання на скачування.

Розібралися з VLAN-ами і переходимо до одного з протоколів, що працює з ним.
DTP (англ. Dynamic Trunking Protocol) або російською динамічний транковий протокол — закритий протокол компанії Cisco, службовець для реалізації trunk режиму між комутаторами. Хоча в залежності від стану, вони можуть узгоджуватися і режим access.
У DTP є 4 режими: Dynamic auto, Dynamic desirable, Trunk, Access. Розглянемо як вони узгоджуються.
Режими Dynamic auto Dynamic desirable Trunk Access
Dynamic auto Access Trunk Trunk Access
Dynamic desirable Trunk Trunk Trunk Access
Trunk Trunk Trunk Trunk Відсутність з'єднання
Access Access Access Відсутність з'єднання Access


Тобто ліва колонка 1-е пристрій, а верхня рядок 2-е пристрій. За замовчуванням комутатори знаходяться в режимі «dynamic auto». Якщо подивитися таблицю зіставлення, то два комутатора в режимі «dynamic auto» узгоджуються в режим «access». Давайте це перевіримо. Створюю я нову лабораторну роботу і додам 2 комутатора.

З'єднувати їх поки не буду. Мені треба переконатися, що обидва комутатора в режимі «dynamic auto». Перевіряти буду командою show interfaces switchport.



Результат цієї команди дуже великий, тому я його підрізав і виділив цікавлять пункти. Почнемо з Administrative Mode. Цей рядок показує, в якому з 4 режимів працює даний порт на комутаторі. Переконуємося, що на обох комутаторах порти в режимі «Dynamic auto». А рядок Operational Mode показує, в якому режимі роботи вони погодили роботу. Ми поки їх не з'єднували, тому вони в змозі «down».
Відразу дам вам добру пораду. При тестуванні будь-якого протоколу, користуйтеся фільтрами. Вимикайте показ роботи всіх непотрібних вам протоколів.
Перекладаю CPT в режим simulation і отфильтрую всі протоколи, крім DTP.




Думаю тут все зрозуміло.
З'єдную комутатори кабелем і, при піднятті лінків, один із комутаторів генерує DTP-повідомлення.

Відкриваю і бачу, що це DTP инкапсулированный в Ethernet-кадр. Відправляє його на мультикастовый адресу «0100.0 ccc.cccc», який відноситься до протоколів DTP, VTP, CDP.
І зверну увагу на 2 поля в заголовку DTP.

1) DTP Type — сюди відправляє вставляє пропозицію. Тобто в який режим він хоче погодитися. В нашому випадку він пропонує узгодити «access».
2) Neighbor MAC-address — в це поле він записує MAC-адресу свого порту.

Відправляє він і чекає реакції від сусіда.

Доходить до SW1 повідомлення і він генерує відповідь. Де також погоджує режим «access», вставляє свій MAC-адресу і відправляє в дорогу до SW2.

Успішно доходить DTP. По ідеї вони повинні були узгоджуватися в режимі «access». Перевірю.



Як і передбачалося, узгоджувалися вони в режим «access».
Хтось каже, що технологія зручна і користується нею. Але я вкрай не рекомендую використовувати цей протокол у своїй мережі. Рекомендую це не тільки я, і зараз поясню чому. Сенс в тому, що цей протокол відкриває велику дірку у безпеці. Я відкрию лабораторку, в якій розбиралася робота «Router on a stick» і додам туди ще один комутатор.

Тепер зайду в налаштування нового комутатора і жорстко пропишу порту на роботу в режимі trunk.

New_SW(config)#interface fastEthernet 0/1
New_SW(config-if)#switchport mode trunk
З'єдную їх і дивлюся, як вони узгоджувалися.



Все вірно. Режими «dynamic auto» і «trunk» узгоджуються в режим trunk. Тепер чекаємо, коли хтось почне проявляти активність. Припустимо PC1 вирішив комусь відправити повідомлення. Формує ARP і випускає в мережу.

Пропустимо його шлях до того моменту, коли він потрапить на SW2.

І ось найцікавіше.

Він відправляє його на знову підключений комутатор. Пояснюю, що сталося. Як тільки ми погодили з ним trunk, він починає відправляти йому всі прийшли кадри. Хоч на схемі показано, що комутатор відкидає кадри, це нічого не значить. До комутатора або замість комутатора можна підключити будь перехоплюють пристрій (sniffer) і спокійно переглядати, що діється в мережі. Начебто перехопив він нешкідливий ARP. Але якщо поглянути глибше, то можна побачити, що вже відомий MAC-адреса «0000.0C1C.05DD» IP-адреса «192.168.1.2». Тобто PC1 не думаючи видав себе. Тепер зловмисник знає про такому комп'ютері. До того ж він знає, що він сидить у 2-му VLAN. Далі він може накоїти багато чого. Найбанальніше — це підмінити свій MAC-адресу, IP-адресу, узгоджуватися швидко Access і видавати себе за PC1. Але найцікавіше. Адже відразу можна цього не зрозуміти. Зазвичай, коли ми прописуємо режим роботи порту, він відразу відображається у конфігурації. Вводжу show running-config .


Але тут настройки порту порожні. Вводжу show interfaces switchport і промотую до fa0/4.


А ось тут бачимо, що узгоджений trunk. Не завжди show running-config дає вичерпну інформацію. Тому запам'ятовуйте і інші команди.
Думаю зрозуміло чому не можна довіряти цим протоколом. Він начебто полегшує життя, але в той же час може створити величезну проблему. Тому покладайтеся на ручний метод. При налаштуванні відразу ж позначте собі які порти будуть працювати в режимі trunk, а які в access. І найголовніше — завжди відключайте узгодження. Щоб комутатори не намагалися ні з ким узгоджуватися. Робиться це командою «switchport nonegotiate».

Переходимо до наступного протоколу.
VTP (англ. VLAN Trunking Protocol) — закритий протокол компанії Cisco, службовець для обміну інформацією про VLAN-ах.
Уявіть ситуацію, що у вас 40 комутаторів і 70 VLAN-ів. По хорошому треба вручну на кожному комутаторі їх створити і прописати на яких trunk-их портах дозволяти передачу. Справа тоскне і довгий. Тому цю задачу може взяти на себе VTP. Ви створюєте VLAN на одному комутаторі, а всі інші синхронізуються з його базою. Погляньте на наступну топологію.

Тут присутні 4 комутатора. Один з них є VTP-сервером, а 3 інших клієнтами. Ті VLAN, які будуть створені на сервері, автоматично синхронізуються на клієнтах. Поясню як працює VTP і що він вміє.
Отже. VTP може створювати, змінювати і видаляти VLAN. Кожна така дія призводить до того, що збільшується номер ревізії (кожна дія збільшує номер на +1). Після він розсилає оголошення, де вказано номер ревізії. Клієнти, що отримали це оголошення, порівнюють свій номер ревізії з прийшли. І якщо прийшов номер вище, вони синхронізують свою базу з нею. В іншому випадку оголошення ігнорується.
Але це ще не все. У VTP є ролі. За замовчуванням усі комутатори працюють в ролі сервера. Розповім про них.

  1. VTP Server. Вміє все. Тобто створює, змінює, видаляє VLAN. Якщо отримує оголошення, в яких ревізія старше його, то синхронізується. Постійно розсилає оголошення і ретранслює від сусідів.
  2. VTP Client — Ця роль вже обмежена. Створювати, змінювати і видаляти VLAN не можна. Всі VLAN отримує і синхронізує від сервера. Сам нічого не генерує, тільки ретранслює від інших.
  3. VTP Transparent — ця така незалежна роль. Може створювати, змінювати і видаляти VLAN тільки в своїй базі. Нікому нічого не нав'язує і ні від кого не приймає. Якщо отримує якесь оголошення, передає далі, але зі своєю базою не синхронізує. Якщо в попередніх ролях, при кожній зміні збільшується-номер ревізії, то в цьому режимі номер ревізії завжди дорівнює 0.
Це все, що стосується VTP версії 2. У VTP 3-їй версії додалася ще одна роль — VTP Off. Він не передає ніякі оголошення. В іншому робота аналогічна режиму Transparent.

Начиталися теорії і переходимо до практики. Перевіримо, що центральний комутатор в режимі Server. Вводимо команду show vtp status.



Бачимо, що VTP Operating Mode: Server. Також можна помітити, що версія VTP 2-а. На жаль, в CPT 3-я версія не підтримується. Версія ревізії нульова.
Тепер налаштуємо нижні комутатори.

SW1(config)#vtp mode client
Setting device to VTP CLIENT mode.
Бачимо повідомлення, що пристрій перейшло в клієнтський режим. Інші налаштовуються точно також.
Щоб пристрої змогли обмінюватися оголошеннями, вони повинні знаходитися в одному домені. Причому тут є особливість. Якщо пристрій (в режимі Server або Client) не перебуває ні в одному домені, то при першому отриманому оголошенні, перейде в оголошений домен. Якщо ж клієнт перебуває в якомусь домені, то приймати оголошення від інших доменів не буде. Відкриємо SW1 і переконаємося, що він не перебуває ні в одному домені.


Переконуємося, що тут порожньо.

Тепер переходимо центрального комутатора і переведемо його в домен.

CentrSW(config)#vtp domain cisadmin.ru
Changing VTP domain name from to NULL cisadmin.ru
Бачимо повідомлення, що він перевівся в домен cisadmin.ru.
Перевіримо статус.



І дійсно. Ім'я домену змінилося. Зверніть увагу, що номер ревізії поки що нульовий. Він зміниться, як тільки ми створимо на ньому VLAN. Але перед створенням треба перевести симулятор в режим simulation, щоб подивитися як він згенерує оголошення. Створюємо 20-ий VLAN і бачимо наступну картинку.


Як тільки створений VLAN і збільшився номер ревізії, сервер генерує оголошення. У нього їх два. Спочатку відкриємо той, що ліворуч. Це оголошення називається «Summary Advertisement» або російською «зведене оголошення». Це оголошення генерується комутатором раз в 5 хвилин, де він розповідає про ім'я домену та поточної ревізії. Дивимося як виглядає.

В Ethernet-кадрі зверніть увагу на Destination MAC-адресу. Він такий же, як і вище, коли генерувався DTP. Тобто, в нашому випадку на нього відреагують тільки ті, у кого запущений VTP. Тепер подивимося на наступне поле.

Тут як раз вся інформація. Пройдуся по найважливішим параметрам.

  • Management Domain Name — ім'я самого домену (в даному випадку cisadmin.ru).
  • Updater Identity — ідентифікатор того, хто оновлює. Тут, як правило, записується ІР-адреса. Але так як адреса комутатора не привласнювали, то поле пусте
  • Update Timestamp — час оновлення. Час на комутаторі не змінювалося, тому там стоїть заводське.
  • MD5 Digest — хеш MD5. Воно використовується для перевірки повноважень. Тобто, якщо на VTP стоїть пароль. Ми пароль не змінювали, тому хеш за замовчуванням.


Тепер подивимося на наступне генерується повідомлення (те, що праворуч). Воно називається «Subset Advertisement» або «докладний оголошення». Це така докладна інформація про кожному переданому VLAN.

Думаю тут зрозуміло. Окремий заголовок для кожного типу VLAN. Список є настільки довгий, що не помістився в екран. Але вони точно такі, за винятком назв. Морочити голову, що означає кожен код не буду. Так і в CPT вони тут більше умовність.
Дивимося, що відбувається далі.

Отримують клієнти оголошення. Бачать, що номер ревізії вище, ніж у них і синхронізують базу. І відправляють повідомлення серверу про те, що база VLAN-ів змінилася.

Принцип роботи протоколу VTP

Ось так в принципі працює протокол VTP. Але у нього є дуже великі мінуси. І ці мінуси в плані безпеки. Поясню на прикладі цієї лабораторки. У нас є центральний комутатор, на якому створюються VLAN, а потім за мультикасту він їх синхронізує зі всіма комутаторами. В нашому випадку він розповідає про VLAN 20. Пропоную ще раз глянути на його конфігурацію.



І тут в мережу ми додаємо новий комутатор. У нього немає нових VLAN-ів, крім стандартних і він не перебуває ні в одному VTP-домені, але подкручен номер ревізії.

І перед тим як його увіткнути в мережу, переводимо порт у режим trunk.



Тепер перемикаю CPT в «Simulation Mode» і отфильтровываю все, крім VTP. Підключаюся і дивлюся, що відбувається.




Через якийсь час до NewSW доходить VTP повідомлення, звідки він дізнається, що в мережі є VTP-домен «cisadmin.ru». Так як він не перебував до цього в іншому домені, він автоматично в нього переходить. Перевіримо.



Тепер він в тому ж домені, але з номером ревізії вище. Він формує VTP-повідомлення, де розповідає про це.



Першим під роздачу потрапить SW1.



Зауважте, що на SW1 приходять відразу 2 VTP-повідомлення (від NewSW і від CentrSW). У повідомленні від NewSW він бачить, що номер ревізії вище, ніж його і синхронізує свою базу. А ось повідомлення від CentrSW для нього вже застаріло, і він відкидає його. Перевіримо, що змінилося на SW1.



Оновився номер ревізії і, що найцікавіше, база VLAN. Тепер вона порожня. Дивимося далі.




Зверніть увагу. До сервера доходить VTP-повідомлення, де номер ревізії вище, ніж у нього. Він розуміє, що мережа змінилася і треба підлаштуватися під неї. Перевіримо конфігурацію.



Конфігурація центрального сервера змінилася і тепер він говоритиме саме її.
А тепер уявіть, що у нас не один VLAN, а сотні. Ось таким простим способом можна покласти мережу. Звичайно домен може бути запаролен і зловмисникові буде важче завдати шкоди. А уявіть ситуацію, що у вас зламався комутатор і терміново треба його замінити. Ви або ваш колега біжите на склад за старим комутатором і забуваєте перевірити номер ревізії. Він виявляється вище, ніж у решти. Що станеться далі, ви вже бачили. Тому я рекомендую не використовувати цей протокол. Особливо у великих корпоративних мережах. Якщо використовуєте VTP 3-їй версії, то сміливо перекладайте комутатори в режим «Off». Якщо ж використовується 2-ая версія, то перекладайте в режим «Transparent».
Кому цікаво подивитися це у вигляді анімації, відкривайте спойлер.
Підключення комутатора з більшою ревізією


Для бажаючих попрацювати з цією лабораторкой, прикладаю посилання.
Ну ось стаття про VLAN підійшла до кінця. Якщо залишилися питання, сміливо задавайте. Спасибі за прочитання.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.