Поиск...

вторник, 21 июня 2011 г.

Настройка VLAN и VTP на cisco switch

Доброго времени суток!!!


Зачастую, во многих организациях существует необходимость разделения ресурсов на различные подсети (сети) с контролем доступа в них. Для таких целей есть много решений. Сегодня, я предлагаю вам один из самых простых способов - создание и настройка VLAN на коммутаторах cisco. Так же, предлагаю запустить и настроить VTP (Vlan Trunking Protocol).
Настроим мы это все так, что доступа из одного vlan в другой у нас не будет. Оставим это задание на следующий пост :).
Итак, кому интересно, добро пожаловать под кат…


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



Задание на настройку будет таким:
  • 1- создать, приведенные на рисунке, vlan;
  • 2- настроить на коммутаторах соответствующие режимы VTP;
  • 3- настроить VTP таким образом, чтобы Vlan_4 присутствовал только на Switch_2;
  • 4- хосты из Vlan_3 должны ping-овать друг друга;
  • 5- хост из Vlan_4 должен ping-овать IP – адреса коммутаторов.
Будем считать, что Vlan_1 – это сеть для администраторов. Соответственно, хосты из Vlan_3 доступ в неё иметь не будут.
Раскладка по портам следующая:
  • Switch_1: порт F1/0 – trunk, F1/1 – F1/4 – vlan_1, F1/5 – F1/9 – vlan_2, F1/10 – F1/15 – vlan_3;
  • Switch_2: порт F1/0, F1/1 – trunk, F1/7 – F1/15 – vlan_1, F1/2 – F1/6 – vlan_4;
  • Switch_3: порт F1/1 – trunk, F1/0, F1/2 – F1/9 – vlan_1, F1/10 – F1/15 – vlan_3;
Итак, приступаем к настройкам :). Заходим на Switch_1:
  • R1>en
  • R1#conf t
  • R1(config)#hostname Switch_1 – задаем имя коммутатору;
  • Switch_1(config)#int vlan 1
  • Switch_1(config-if)#ip address 192.168.1.1 255.255.255.0 – задаем IP-адрес нашему коммутатору;
  • Switch_1(config-if)#no sh
  • Switch_1(config-if)#exit
  • Switch_1(config)#vlan 2 – создаем vlan_2;
  • Switch_1(config-vlan)#name vlan_2 – задаем ему имя;
  • Switch_1(config-vlan)#exit
  • Switch_1(config)#vlan 3 – создаем vlan_3;
  • Switch_1(config-vlan)#name vlan_3 – задаем ему имя;
  • Switch_1(config-vlan)#exit
  • Switch_1(config)#int range fa 1/5 – 9 – определяем группу интерфейсов;
  • Switch_1(config-if-range)#switchport mode access – задаем режим интерфейсам;
  • Switch_1(config-if-range)#switchport access vlan 2 – определяем интерфейсы соответствующему vlan;
  • Switch_1(config-if-range)#exit
  • Switch_1(config)#int range fa 1/10 - 15
  • Switch_1(config-if-range)#switchport mode access
  • Switch_1(config-if-range)#switchport access vlan 3
  • Switch_1(config-if-range)#exit
  • Switch_1(config)#int fa 1/0
  • Switch_1(config-if)#switchport mode trunk – определяем интерфейс как trunk;
  • Switch_1(config-if)#switchport trunk encapsulation dot1q – ставим режим инкапсуляции;
  • Switch_1(config-if)#exit
  • Switch_1(config)#vtp mode server – определяем коммутатору роль Server в VTP;
    Device mode already VTP SERVER.
  • Switch_1(config)#vtp domain cisco – задаем имя VTP домену (должно быть одинаково на всех коммутаторах);
    Changing VTP domain name from NULL to cisco
  • Switch_1(config)#vtp password ciscocisco – задаем пароль для VTP (должен быть одинаковым на всех коммутаторах);
    Setting device VLAN database password to ciscocisco
  • Switch_1(config)#vtp version 2 – определяем версию VTP (должна быть одинаковая на всех коммутаторах);
  • Switch_1(config)#exit
  • Switch_1#wr
Остановимся и посмотрим, что у нас получилось:



  • 1 – эта цифра показывает количество изменений в конфигурации vlan и VTP. Будьте внимательны, так как чем выше этот показатель, тем приоритетнее объявления этого коммутатора. То есть, если вы, после всех своих настроек, подключите коммутатор в «Server mode» к своему VTP домену с высшим значением этого параметра, то все коммутаторы примут его настройки!!! Так что, если вы подключаете, где то работавший, switch cisco в свою сеть, то поставьте на нем VTP mode в Transparent :) или сбросьте все настройки на нем в Default.
Если вы вдруг остановили коммутатор в GNS3 или закрыли программу, и запустив снова проект у вас исчезли настройки вашего свитча 3745, то восстановить их можно способом, описанным в этом посте.
Все в порядке :). Переходим к настройке Switch_2:
  • R2>en
  • R2#conf t
  • R2(config)#host
  • R2(config)#hostname Switch_2
  • Switch_2(config)#vtp mode transparent – ставим соответствующий режим VTP;
    Setting device to VTP TRANSPARENT mode.
  • Switch_2(config)#vtp version 2
  • Switch_2(config)#vtp domain cisco
    Changing VTP domain name from NULL to cisco
  • Switch_2(config)#vtp password ciscocisco
    Setting device VLAN database password to ciscocisco
  • Switch_2(config)#int vlan 1
  • Switch_2(config-if)#ip address 192.168.1.2 255.255.255.0
  • Switch_2(config-if)#no shutdown
  • Switch_2(config-if)#exit
  • Switch_2(config)#vlan 4
  • Switch_2(config-vlan)#name Vlan_4
  • Switch_2(config-vlan)#exit
  • Switch_2(config)#int range fa 1/2 - 6
  • Switch_2(config-if-range)#switchport mode access
  • Switch_2(config-if-range)#switchport access vlan 4
  • Switch_2(config-if-range)#exit
  • Switch_2(config)#int fa 1/0
  • Switch_2(config-if)#switchport mode trunk
  • Switch_2(config-if)#switchport trunk encapsulation dot1q
  • Switch_2(config-if)#exit
  • Switch_2(config)#int fa 1/1
  • Switch_2(config-if)#switchport mode trunk
  • Switch_2(config-if)#switchport trunk encapsulation dot1q
  • Switch_2(config-if)#exit
  • Switch_2(config)#exit
  • Switch_2#wr
  • Switch_2#
Посмотрим, что у нас получилось:




Как видно, присутствуют только те vlan, которые мы создали вручную.
Теперь, перейдем к настройкам Switch_3:
  • R3>en
  • R3#conf t
  • R3(config)#host
  • R3(config)#hostname Switch_3
  • Switch_3(config)#int vlan 1
  • Switch_3(config-if)#ip address 192.168.1.3 255.255.255.0
  • Switch_3(config-if)#no shutdown
  • Switch_3(config-if)#exit
  • Switch_3(config)#vtp version 2
  • Switch_3(config)#vtp mode client
    Setting device to VTP CLIENT mode.
  • Switch_3(config)#vtp domain cisco
    Changing VTP domain name from NULL to cisco
  • Switch_3(config)#vtp password ciscocisco
    Setting device VLAN database password to ciscocisco
  • Switch_3(config)#int fa 1/1
  • Switch_3(config-if)#switchport mode trunk
  • Switch_3(config-if)#switchport trunk encapsulation dot1q
  • Switch_3(config-if)#exit
  • Switch_3(config)#exit
  • Switch_3#wr
  • Switch_3#
Сейчас уже можно проверить работу VTP:




Как видно из рисунков, vlan, которые созданы на Switch_1, уже присутствуют на коммутаторе Switch_3 (хотя мы их не создавали на нем :)). Вот в чем прелесть протокола VTP. Единожды создав (удалив) vlan на коммутаторе, работающем в «Server mode», он автоматически появляется (удаляется) на всех коммутаторах, работающих в «Client mode».
Так же, следует отметить, что на коммутаторе, работающем в «Client mode», вы не можете создать или удалить vlan. На коммутаторах, работающих в «Transparent mode», вы это делать можете, но эти изменения не распространятся на других участников VTP. Еще хочется сказать, что по умолчанию, все коммутаторы находятся в «Server mode» и могут повлиять на весь VTP domain, если параметр «Configuration Revision» у них выше, чем у вашего коммутатора, выполняющего функции Server-а.
На рисунке еще видно, что последнее изменение конфигурации произведено и прислано от VTP Server 192.168.1.1, что является правильным :).
Теперь давайте определим нужные порты в нужные vlan на коммутаторе Switch_3. Возвращаемся на него и добавляем следующее:
  • Switch_3#
  • Switch_3#conf t
  • Switch_3(config)#int range fa 1/10 - 15
  • Switch_3(config-if-range)#switchport mode access
  • Switch_3(config-if-range)#switchport access vlan 3
  • Switch_3(config-if-range)#exit
  • Switch_3(config)#exit
  • Switch_3#
Все готово к проверкам :). Пункты 1-3 у нас готовы и проверены выше (по ходу настроек).
Проверим сетевую доступность между Host_ 2 и IP-адресами коммутаторов:



Видно, что сетевая доступность между Host_2 и коммутаторами есть.
Если прямо сейчас мы проверим ping между хостами из vlan_3, то ничего не увидим. Несмотря на то, что Switch_2 находится в VTP domain, он не принимает во внимание сообщения от VTP Server (так как находится в «Transparent mode»), а лишь транслирует их дальше. По этой причине, он не сможет прокинуть vlan_3 через себя, так как его просто нет, и хосты не получат сетевую доступность. Поэтому, надо добавить этот vlan вручную :). Зайдем на Switch_2 и сделаем это:
  • Switch_2#conf t
  • Switch_2(config)#vlan 3
  • Switch_2(config-vlan)#exit
  • Switch_2(config)#exit
  • Switch_2#


Видно, что он появился и этого вполне достаточно (не надо добавлять никаких интерфейсов в этот vlan). Теперь проверяем ping между хостами:




Как видно, все, что мы задумывали, получилось. Host_1 и Host_3 ping-ются между собой и не имеют доступа в vlan_1 (сеть 192.168.1.0/24).
Конечно, сегодня мы построили не совсем корректную сеть. По логике, Switch_2 тоже должен быть в «Client mode», тогда бы не пришлось вручную создавать vlan_3 на нем, но я сделал это нарочно, чтобы показать все режимы коммутаторов в VTP.
И еще один небольшой вопрос. Если у вас возникнет необходимость ограничения передачи некоторых vlan-ов через trunk-интерфейс, то поможет эта команда:
  • Switch (config-if)#switchport trunk allowed vlan [список vlan, теги которых нужно передавать через trunk] - делается она в режиме конфигурирования интерфейса, который является trunk-интерфейсом.
Вот и все, что я хотел рассказать в этом посте :). Надеюсь, он был полезным, любопытным и интересным для вас :).
В следующем посте поговорим уже об Inter-vlan routing (communication), сделаем схему с «роутером на палочке» (router on a stick), поиграем с access-list и настроим NAT. В общем, будет очень интересно!!!! Заходите, буду очень ждать!!!

Если возникли вопросы или комментарии, то смело пишите!!! С радостью отвечу!!!!


С уважением, Ant0ni0n.

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

  1. Подскажите как настроить switch1?

    ОтветитьУдалить
    Ответы
    1. Добавить в выключенный роутер модуль NM-16ESW. На роутере правой кнопкой, Configure->R№->Slots->Adapters: slot2 ->NM-16ESW->Ok.
      включить роутер и появятся 16 портов свитча, в котором согласно статье нужно все выполнять.

      Удалить
  2. Доброго времени суток :)

    Извините, немного не понял вашего вопроса... Настройка Switch_1 приведена с самого начала. Это устройство настраивается первым по ходу поста.
    Не могли бы вы немного уточнить вопрос, в чем конкретная проблема?

    С уважением, Ant0ni0n

    ОтветитьУдалить
  3. Спасибо огромное за ваши статьи!
    Не могли бы вы подсказать, вопрос немного не по теме, но все же: как резать скорость на роутерах и свичах. Например, у нас есть роутер в кольце, от него подключен свитч в помещении клиента, на нем три клиента. Канал между роутером и свичем 100Мбит.Одному допустим 10Мбит нужно, второму и третьему допустим 20 и 30 Мбит. Оборудование Cisco.

    ОтветитьУдалить
  4. Доброго времени суток!!!
    Спасибо за теплый отзыв!!!
    По вашему вопросу:
    это можно сделать с помощью настройки QoS, причем настраивать нужно с двух сторон. Но это можно сделать на хороших железках. Так что если ваш роутер и поддерживает QoS, то я сомневаюсь насчет свича :). Поддерживают они эту функцию или нет, можно узнать из версии IOS (команда show version). Узнав версию надо зайти на сайт cisco.com и посмотреть функционал IOS.

    С уважением, Ant0ni0n

    ОтветитьУдалить
  5. Доброго времени суток! Большое спасибо за ваши статьи очень помогли разобраться!
    У меня такой вопрос : Вы не реализовывали вариант с коммутаторами Cisco 2960 и как их добавить в GNS3? Большое спасибо за ответ

    ОтветитьУдалить
  6. Доброго времени суток!!!
    Спасибо за теплый отзыв :)
    Насколько я знаю 2960 - это L2 коммутатор и все настройки vlan и VTP реализуемы и на них. Что касается добавления их в GNS3, я не пробовал, так как IOS для них у меня нет.
    Это легко проверить если IOS есть. Подсунуть этот IOS программе, назначить его какому либо похожему устройству (в GNS3) и если оно запустится, то можно использовать :)

    С уважением, Ant0ni0n

    ОтветитьУдалить
  7. Большое спасибо IOS могу прислать ;)

    ОтветитьУдалить
  8. Ну пришлите, посмотрим получится ли прикрутить его к GNS3 :)
    Мое мыло: anton.sheshko@gmail.com (если нужны и другие контакты (icq или skype) они есть в закладке "Обратная связь")

    С уважением, Ant0ni0n

    ОтветитьУдалить
  9. Подскажите как настроить switch GX1008B

    ОтветитьУдалить
    Ответы
    1. Доброго времени суток!
      Ну если только вы мне его подвезете или вышлите :). Просто с такими не приходилось пока работать...

      С уважением, Ant0ni0n

      Удалить
  10. Добрый день.
    А какой IOS у Вас используется для коммутаторов в данной статье?
    А то я скачал IOS для Cisco 3725,но там отсутствует команда switchport, такое может быть?

    ОтветитьУдалить
    Ответы
    1. Эдесь я использовал 3640 роутер и добавлял в настройках ему дополнительный слот (в закладке slots) 16SW.
      Посмотрите в предыдущих постах про настройку и добавление устройств в GNS.
      А так у вас получается что вы пытаетесь включить на интерфейсе роутера возможности интерфейса свитча и соответствеено такой команды не будет.
      Если не найдете ios пишите мне на почту, поделюсь :)

      Удалить
  11. Как прошло "подсовывание" IOS от 2960 ??? а в идеале 3560

    ОтветитьУдалить
    Ответы
    1. Доброго времени суток!!!
      Операция прошла неудачно. Реальный ios не запустился... Ни 2960 ни 3560.. GNS поддерживает только те модели, которые прописаны.
      На их сайте можно найти список того, что можно запустить, там этих устройств нет к сожалению...
      С уважением, Ant0ni0n

      Удалить
    2. Ну собственно на сайте я сам уже это читал, да и не только на сайте... но крохотная надежда все же была что вы знаете что-то что я не нашел )))

      На самом деле печально из-за отсутствия вменяемых свитчей в GNS3 часть сетевых технологий остается вне зоны внимания если под рукой нет реальных свитчей...

      Удалить
    3. Ну да, согласен. Но что не говорите, основы сетевых решений (да и кое что по-глубже) за не имением реального железа, GNS позволяет охватить :)

      Удалить
    4. А выы не пробовали подключать свою виртуальную сеть в GNS к реальному оборудованию?? В частности интересует проблема с прохождением тегированого трафика через сетевую карту компьютера.

      Удалить
    5. Я подключал ASA из GNS к реальной cisco ASA через сетевую карту на компе (было две сетевые на компе).
      Насчет транка думаю получится, так как все современные карты поддерживают 802.1q. Выбираем отдельную сетевую карту на компе, включаем поддержку транка, мапим к ней через облако сеть из GNS с одной стороны, а с другой стороны втыкаем эту карточку в рельный свитч. Думаю, должно работать.
      Но надо испытать, 100% утверждать не буду :)

      Удалить
    6. Вот вопрос как включить транк на сетевой?? Потому что сейчас когда я подключил GNS к реальной сети через облако, то по захвату с wireshark трафик от ноута к свитчу идет тегированый а вот от свитча к ноуту приходит нетегированый уже... Ну так как отвечает свитч через транковый порт вероятно всего что из тега кадр извлекает именно сетевая ноута. Вот как включить транк на сетевой. Единственное что я нашел более менее походее это "Приоритет и VLAN" в настройках сетевой карты. Это оно?

      Удалить
    7. Ну у меня Win 7, там в настройках сетевого адаптера есть закладка "VLANs". Там их можно создавать и давать им тэги. И я так понимаю, она начинает работать в режиме trunk.

      Удалить
    8. Где? У меня две семерки Ultimate и HB такой вкладки в настройках сетевого адаптера нет.
      Есть только на вкладке "дополнительно" пункт "Приоритет & VLAN" где эти опции можно включить или отключить. Все, ничего подобного о чем вы писали нет. Мб я не там смотрю??

      Удалить
    9. Напиши мне свою почту, я тебе пришлю скриншоты.

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

      Удалить
    11. Ну я так и думал.
      У меня такого пукнта нет. Семерка максимальная у меня. У вас случаем не 2008 Server??? потому что это уже серверный функционал вроди как.
      Ну значит не судьба мне поюзать GNS на реальной сети...

      Удалить
  12. Спасибо за помощью, добавление слотов помогло!

    ОтветитьУдалить
  13. При добавлении модуля NM-16ESW, контекст работы с VLAN идет через vlan database, странно что увас это доступно из режима глобальной конфигурации.
    R1#vlan database
    R1(vlan)#vlan 15 name OFFICE
    VLAN 15 modified:
    Name: OFFICE
    R1(vlan)#?
    VLAN database editing buffer manipulation commands:
    abort Exit mode without applying the changes
    apply Apply current changes and bump revision number
    exit Apply changes, bump revision number, and exit mode
    no Negate a command or set its defaults
    reset Abandon current changes and reread current database
    show Show database information
    vlan Add, delete, or modify values associated with a single VLAN
    vtp Perform VTP administrative functions.

    R1(vlan)#vtp ?
    client Set the device to client mode.
    domain Set the name of the VTP administrative domain.
    password Set the password for the VTP administrative domain.
    pruning Set the administrative domain to permit pruning.
    server Set the device to server mode.
    transparent Set the device to transparent mode.
    v2-mode Set the administrative domain to V2 mode.

    R1(vlan)#apply
    APPLY completed.
    R1(vlan)#exit
    APPLY completed.
    Exiting....
    R1#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    R1(config)#vlan 10
    ^
    % Invalid input detected at '^' marker.

    R1(config)#
    Какой девайс и IOS использовались для свитчей?

    ОтветитьУдалить
    Ответы
    1. Доброго времени суток!
      В данном посте я использовал 3745 с IOS c3745-advipservicesk9-mz[1].124-15.T6.bin

      Удалить
  14. Спасибо!
    Действительно, в T релизе, конфигурирование VLAN из режима глобального конфигурировая является предпочтительным :)
    R1#vlan database
    % Warning: It is recommended to configure VLAN from config mode,
    as VLAN database mode is being deprecated. Please consult user
    documentation for configuring VTP/VLAN in config mode.

    ОтветитьУдалить
  15. здравствуйте!!! когда добавляю vlan 3 на Switch_2 выходит такая ошибка.
    Switch_2#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    Switch_2(config)#vlan 3
    Switch_2(config-vlan)#exit
    Error exiting config-vlan mode 40: NV storage failure

    ОтветитьУдалить
    Ответы
    1. Добрый вечер!!!
      А какое устройство и IOS вы используете? Может у вас старая версия IOS и настраивать vlan надо через vlan database? Чуть выше в комментариях уже был похожий вопрос...

      Удалить
    2. устройство 3745, ios c3745-advipservicesk9-mz[1].124-15.T6.bin. ок попробую через database.

      Удалить
  16. спасибо, попробовал настроить все заново, и у меня все получилось. не знаю в чем была ошибка ) ваши статьи очень помогают мне по дипломной работе!!! ))

    ОтветитьУдалить
    Ответы
    1. Пожалуйста!!!
      Заходите еще :) Если есть желание как то отблагодарить, то способы есть :)

      Удалить
  17. Привет Антон, по STP планируешь статью ?

    ОтветитьУдалить
    Ответы
    1. Привет, Арсен!!!
      Да, в планах есть статья и по STP. Я бы даже сказал у меня много планов по статьям, но только бы найти время на все это дело :)
      Но буду стараться :)

      Удалить
    2. С удовольствием почитаю пост)

      Удалить
  18. Добрый день, была ситуация, когда на всех коммутаторах исчезли vlan-ы (более двух десятков), в сети было несколько свитчей с ролью server (4 шт) . Работали в такой схеме более 10 лет. При просмотре какие вланы видит свитч заметили, что остились с 1 по 4 vlan-ы, остальные исчезли. Посоветуйте с чего начать искать проблему?

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