суббота, 14 мая 2011 г.

Маленькое дополнение про Native VLAN.

Одно из отличий коммутаторов Cisco от коммутаторов других производителей, это введение так называемого Native VLAN. Что он из себе представляет?
Native VLAN - это влан к которому коммутатор относит все кадры идущие без тега, или кадры получаемые с не распределенных портов (портов которые явно не включены ни в один влан). То есть если коммутатор получает нетегированные кадры на транковом порту он автоматически причисляет их к Native VLAN. И точно так же кадры генерируемые с не распределенных портов при попадании в транк-порт причисляются к Native VLAN.
Продемонстрировать все это для наглядности можно все в том же Packet Tracer в режиме симуляции.
Итак, имеем два коммутатора. Порты fa 0/1 являются портами доступа для VLAN2, а порты fa 0/3 - для VLAN1. Порты fa 0/2 не распределены. Между коммутаторами транковый линк.
Сгенерируем пинг от PC1 к PC2 и заглянем в структуру PDU. На входе в 1 порт коммутатора в заголовке кадра будет указан тип 0x800 - что соответствует протоколу IP.
На выходе в 5й (транк-порт) в заголовке тип будет уже 0x810 - инкапсуляция 802.1Q (оно же технология VLAN) с тегом 2.
Теперь пинг от PC3 к PC4.
И на входе во 2й порт и на выходе в 5й (транковый порт) получаем один и тот же заголовок Ethernet II без тега.
И последнее. Пинг от PC5 к PC6. Напомним, что порты распределены в 1 влан, и native vlan по умолчанию так же носит номер 1. Соответственно трафик так же как и в предыдущем случае идет без тега.
Посмотреть информацию по  тому, какой native vlan сконфигурирован на устройстве можно командами show interface trunk

и show interface <тип> <номер> switchport

На транковом линке обоих коммутаторов Native VLAN должен совпадать.Если не совпадают то коммутатор известит об этом общением - Native VLAN mismatch. Сам native vlan указывается при помощи команды switchport trunk native vlan <номер>.
Так как кадры Native VLAN обязаны проходить по транк-линкам без тегов, появление в транк-линке кадра с тегом номер которого совпадает с номером Native VLAN является не допустимым, и коммутатор получив такой кадр его уничтожает.
Скачать: pkt-файл

PS в pkt-файле есть небольшое изменение. Порты коммутаторов fa 0/2 переведены в режим trunk. Результат точно такой же, кадры идут без тега и дублируются на порты распределенные в первый влан (т.к. он же native) и наоборот.
PPS если задать на коммутаторах разные Native vlan, то можно получить ситуацию с отбрасыванием кадров при совпадении тега с номером native vlan.

18 комментариев:

  1. Тогда не должен пройти пинг от pc5 к pc6(транковый vlan совпадет с тегом vlan1), и судя по всему 1 коммутатор должен такой пакет отбросить.Я правильно понимаю?

    ОтветитьУдалить
    Ответы
    1. Пройдёт элементарно этот пинг.
      А что значит транковый vlan? Транк тегирует кадр, указывая там принадлежность кадра к определённому vlan, если это кадр native vlan, то транк с ним ничего не делает.

      Удалить
    2. пинг будет проходить потому, что в данной лабе native vlan на коммутаторах совпадает.

      Удалить
  2. тоесть Native vlan совпадает с vlan1(судя по написаному вами выше "Так как кадры Native VLAN обязаны проходить по транк-линкам без тегов, появление в транк-линке кадра с тегом номер которого совпадает с номером Native VLAN является не допустимым, и коммутатор получив такой кадр его уничтожает.")
    Это уточнение к первому вопросу,хочу разобраться.Спасибо.

    ОтветитьУдалить
    Ответы
    1. native vlan совпадает с vlan1 по умолчанию, но вы при желании можете это изменить.
      Да, он действительно его уничтожит, потому как это будет означать, что на коммутаторах не совпадает native vlan, эта проблема довольно просто исправляется, на одном из коммутаторов просто меняете native vlan на такой же самый (как и на других устройствах домена).

      Удалить
  3. Если в транк с native vlan 10 попадет тегированный траффик(vlan 10) транк просто снимет этот тэг.

    ОтветитьУдалить
    Ответы
    1. да на входе в транк свич снимет тег с такого кадра.
      но если каким то чудом в самом транке появится тегированный кадр и прийдет на порт коммутатора он должен его отбросить.

      Удалить
  4. Я бы немного уточнил последнее предложение, добавив некоторые слова для более лучшего восприятия. Вот как это бы выглядело: "Так как кадры ПРИНАДЛЕЖАЩИЕ Native VLAN обязаны проходить по транк-линкам без тегов, появление в транк-линке кадра с тегом номер которого совпадает с номером Native VLAN КОММУТАТОРА, КОТОРЫЙ ПОЛУЧАЕТ ЭТОТ КАДР, является не допустимым, и коммутатор, получив такой кадр, его уничтожает."

    ОтветитьУдалить
  5. насчет того, отбрасывается ли такой кадр это еще под вопросом. все никак не проверю на оборудовании

    ОтветитьУдалить
  6. Смоделировал схему в PT по которой коммутатор получив из транка номер Native VLAN'а должен удалять такой VLAN. Ну... Ни хрена. Не удаляет. Коммутатору не фильтрует номера VLAN'ов в транке, если они совпадают с Native VLAN'ом. Он их пропускает через себя без ограничений.
    Если интересно, попробуйте сами:
    ROUTER1:
    interface FastEthernet0/0.10
    encapsulation dot1Q 10
    ip address 192.168.10.1 255.255.255.0
    !
    interface FastEthernet0/0.20
    encapsulation dot1Q 20
    ip address 192.168.20.1 255.255.255.0

    ROUTER2:
    interface FastEthernet0/0.10
    encapsulation dot1Q 10
    ip address 192.168.10.2 255.255.255.0
    !
    interface FastEthernet0/0.20
    encapsulation dot1Q 20
    ip address 192.168.20.2 255.255.255.0

    SW1, SW2:
    interface FastEthernet0/1
    switchport trunk native vlan 10
    switchport mode trunk
    !
    interface FastEthernet0/2
    switchport trunk native vlan 10
    switchport mode trunk

    Схема: ROUTER1<---->SW1<---->SW2<---->ROUTER2

    ОтветитьУдалить
    Ответы
    1. да я в курсе. последнюю неделю как раз этот вопрос разбирал )))
      видимо все таки в курсе ошибка или неверная формулировка.

      Удалить
    2. PT кстати не показатель. надо на настоящем железе проверять.
      будет время - сделаю.

      Удалить
  7. Анонимный18 июля 2013 г., 10:05

    У меня появились некоторые сомнения относительно коммутаторов. Будут ли идти пакеты из нэйтиввлан1 во влан2? Т.е. т.к. здесь нет маршрутизатора, значит они изолированы друг от друга?

    ОтветитьУдалить
  8. Проверил на железяках: возможно передавать трафик из одного влана в другой, при условии отключения stp на одном из транков, потому что срабатывает защита stp - фактически объединяются два vlana, в которых работают разные процессы stp

    ОтветитьУдалить
    Ответы
    1. без схемы не совсем понятно, что конкретно вы сделали.
      для объединения двух вланов правильнее сделать vlan mapping мне кажется, чем так.

      Удалить
  9. Этот комментарий был удален администратором блога.

    ОтветитьУдалить
  10. Этот комментарий был удален администратором блога.

    ОтветитьУдалить

Примечание. Отправлять комментарии могут только участники этого блога.