9) Маршрутизация: статическая и динамическая на примере RIP, OSPF и EIGRP.
10) Трансляция сетевых адресов: NAT и PAT.
11) Протоколы резервирования первого перехода: FHRP.
12) Безопасность компьютерных сетей и виртуальные частные сети: VPN.
13) Глобальные сети и используемые протоколы: PPP, HDLC, Frame Relay.
14) Введение в IPv6, конфигурация и маршрутизация.
15) Сетевое управление и мониторинг сети.
P.S. Возможно, со временем список дополнится.
В предыдущих статьях мы уже работали с многими сетевыми устройствами, поняли, чем они друг от друга отличаются и рассмотрели из чего состоят кадры, пакеты и прочие PDU. В принципе с этими знаниями можно организовать простейшую локальную сеть и работать в ней. Но мир не стоит на месте. Появляется все больше устройств, которые нагружают сеть или что еще хуже - создают угрозу в безопасности. А, как правило, «опасность» появляется раньше «безопасности». Сейчас я на самом простом примере покажу это.
Мы пока не будем затрагивать маршрутизаторы и разные подсети. Допустим все узлы находятся в одной подсети.
Сразу приведу список IP-адресов:
- PC1 – 192.168.1.2/24
- PC2 – 192.168.1.3/24
- PC3 – 192.168.1.4/24
- PC4 – 192.168.1.5/24
- PC5 – 192.168.1.6/24
- PC6 – 192.168.1.7/24
Кто хочет увидеть это в виде анимации, открывайте спойлер (там показан ping от PC1 до PC5).
Работа сети в одном широковещательном домене
Красиво да? Мы в прошлых статьях уже не раз говорили о работе протокола ARP, но это было еще в прошлом году, поэтому вкратце объясню. Так как PC1 не знает MAC-адрес (или адрес канального уровня) PC2, то он отправляет в разведку ARP, чтобы тот ему сообщил. Он приходит на коммутатор, откуда ретранслируется на все активные порты, то есть к PC2 и на центральный коммутатор. Из центрального коммутатора вылетит на соседние коммутаторы и так далее, пока не дойдет до всех. Вот такой не маленький трафик вызвало одно ARP-сообщение. Его получили все участники сети. Большой и не нужный трафик - это первая проблема. Вторая проблема - это безопасность. Думаю, заметили, что сообщение дошло даже до бухгалтерии, компьютеры которой вообще не участвовали в этом. Любой злоумышленник, подключившись к любому из коммутаторов, будет иметь доступ ко всей сети. В принципе сети раньше так и работали. Компьютеры находились в одной канальной среде и разделялись только при помощи маршрутизаторов. Но время шло и нужно было решать эту проблему на канальном уровне. Cisco, как пионер, придумала свой протокол, который тегировал кадры и определял принадлежность к определенной канальной среде. Назывался он ISL (Inter-Switch Link) . Идея эта понравилась всем и IEEE решили разработать аналогичный открытый стандарт. Стандарт получил название 802.1q . Получил он огромное распространение и Cisco решила тоже перейти на него.
И вот как раз технология VLAN основывается на работе протокола 802.1q. Давайте уже начнем говорить про нее.
В я показал, как выглядит 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 или магистральный порт - порт, передающий тегированный трафик. Как правило, этот порт поднимается между сетевыми устройствами.
Набираю команду 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 mode access - переводим порт в режим access.
SW1(config-if)#switchport access vlan 2 - закрепляем за портом 2-ой VLAN.
SW1(config)#interface fastEthernet 0/2 - переходим к настройке 2-ого порта.
SW1(config-if)#switchport mode access - переводим порт в режим access.
SW1(config-if)#switchport access vlan 2 - закрепляем за портом 2-ой VLAN.
Так как оба порта закрепляются под одинаковым VLAN-ом, то их еще можно было настроить группой.
SW1(config)#interface range fastEthernet 0/1-2 - то есть выбираем пул и далее настройка аналогичная.
SW1(config-if-range)#switchport mode access
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 protocol on Interface FastEthernet0/24, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface 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(config)#vlan 3
SW2(config-vlan)#name buhgalter
SW2(config)#interface range fastEthernet 0/1-2
SW2(config-if-range)#switchport mode access
SW2(config-if-range)#switchport access vlan 3
SW2(config)#interface fastEthernet 0/24
SW2(config-if)#switchport mode trunk
SW2(config-if)#switchport trunk allowed vlan 3
SW3:
SW3(config)#vlan 4
SW3(config-vlan)#name otdel kadrov
SW3(config)#interface range fastEthernet 0/1-2
SW3(config-if-range)#switchport mode access
SW3(config-if-range)#switchport access vlan 4
SW3(config)#interface fastEthernet 0/24
SW3(config-if)#switchport mode trunk
SW3(config-if)#switchport trunk allowed vlan 4
Обратите внимание на то, что мы подняли и настроили VLAN, но адресацию узлов оставили такой же. То есть, фактически все узлы в одной подсети, но разделены VLAN-ами. Так делать нельзя. Каждому VLAN надо выделять отдельную подсеть. Я это сделал исключительно в учебных целях. Если бы каждый отдел сидел в своей подсети, то они бы априори были ограничены, так как коммутатор не умеет маршрутизировать трафик из одной подсети в другую (плюс это уже ограничение на сетевом уровне). А нам нужно ограничить отделы на канальном уровне.
Снова отправляю ping с PC1 к PC3.
Идет в ход ARP, который нам и нужен сейчас. Откроем его.
Пока что ничего нового. ARP инкапсулирован в ethernet.
Кадр прилетает на коммутатор и тегируется. Теперь там не обычный ethernet, а 802.1q. Добавились поля, о которых я писал ранее. Это TPID , который равен 8100 и показывающий, что это 802.1q. И 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 mode access
SW2(config-if)#switchport access vlan 2
И последнее - настроить транковый порт.
SW2(config)#interface fastEthernet 0/24
SW2(config-if)#switchport trunk allowed vlan add 2 - обратите внимание на эту команду.
А именно на ключевое слово "add". Если не дописать это слово, то вы сотрете все остальные разрешенные к передаче VLAN на этом порту.
Поэтому если у вас уже был поднят транк на порту и передавались другие VLAN, то добавлять надо именно так.
Чтобы кадры ходили красиво, подкорректирую центральный коммутатор CentrSW.
CentrSW(config)#interface fastEthernet 0/1
CentrSW(config-if)#switchport trunk allowed vlan 2
CentrSW(config)#interface fastEthernet 0/2
CentrSW(config-if)#switchport trunk allowed vlan 2,3
CentrSW(config)#interface fastEthernet 0/3
CentrSW(config-if)#switchport 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
Раз подсети определены, то сразу адресуем узлы.
- PC1:
IP: 192.168.1.2
Маска: 255.255.255.0 или /24
Шлюз: 192.168.1.1 - PC2:
IP: 192.168.1.3
Маска: 255.255.255.0 или /24
Шлюз: 192.168.1.1 - PC3:
IP: 192.168.2.2
Маска: 255.255.255.0 или /24
Шлюз: 192.168.2.1 - PC4:
IP: 192.168.2.3
Маска: 255.255.255.0 или /24
Шлюз: 192.168.2.1 - PC5:
IP: 192.168.3.2
Маска: 255.255.255.0 или /24
Шлюз: 192.168.3.1 - PC6:
IP: 192.168.3.3
Маска: 255.255.255.0 или /24
Шлюз: 192.168.3.1 - PC7:
IP: 192.168.1.4
Маска: 255.255.255.0 или /24
Шлюз: 192.168.1.1
У узлов добавился такой параметр, как адрес шлюза. Этот адрес они используют, когда надо отправить сообщение узлу, находящемуся в другой подсети. Соответственно у каждой подсети свой шлюз.
Осталось настроить маршрутизатор, и я открываю его 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 protocol on Interface 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 address 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.0ccc.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 есть роли. По-умолчанию все коммутаторы работают в роли сервера. Расскажу про них.
- VTP Server . Умеет все. То есть создает, изменяет, удаляет VLAN. Если получает объявление, в которых ревизия старше его, то синхронизируется. Постоянно рассылает объявления и ретранслирует от соседей.
- VTP Client - Эта роль уже ограничена. Создавать, изменять и удалять VLAN нельзя. Все VLAN получает и синхронизирует от сервера. Периодически сообщает соседям о своей базе VLAN-ов.
- VTP Transparent - эта такая независимая роль. Может создавать, изменять и удалять VLAN только в своей базе. Никому ничего не навязывает и ни от кого не принимает. Если получает какое то объявление, передает дальше, но со своей базой не синхронизирует. Если в предыдущих ролях, при каждом изменении увеличивался номер ревизии, то в этом режиме номер ревизии всегда равен 0.
Начитались теории и переходим к практике. Проверим, что центральный коммутатор в режиме 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 NULL to cisadmin.ru
Видим сообщение, что он перевелся в домен cisadmin.ru.
Проверим статус.
И действительно. Имя домена изменилось. Обратите внимание, что номер ревизии пока что нулевой. Он изменится, как только мы создадим на нем VLAN. Но перед созданием надо перевести симулятор в режим simulation, чтобы посмотреть как он сгенерирует объявления. Создаем 20-ый VLAN и видим следующую картинку.
Как только создан VLAN и увеличился номер ревизии, сервер генерирует объявления. У него их два. Сначала откроем тот, что левее. Это объявление называется «Summary Advertisement» или на русском «сводное объявление». Это объявление генерируется коммутатором раз в 5 минут, где он рассказывает о имени домена и текущей ревизии. Смотрим как выглядит.
В Ethernet-кадре обратите внимание на Destination MAC-адрес. Он такой же, как и выше, когда генерировался DTP. То есть, в нашем случае на него отреагируют только те, у кого запущен VTP. Теперь посмотрим на следующее поле.
Здесь как раз вся информация. Пройдусь по самым важным полям.
- Management Domain Name - имя самого домена (в данном случае cisadmin.ru).
- Updater Identity - идентификатор того, кто обновляет. Здесь, как правило, записывается IP-адрес. Но так как адрес коммутатору не присваивали, то поле пустое
- Update Timestamp - время обновления. Время на коммутаторе не менялось, поэтому там стоит заводское.
- MD5 Digest - хеш MD5. Оно используется для проверки полномочий. То есть, если на VTP стоит пароль. Мы пароль не меняли, поэтому хэш по-умолчанию.
Думаю здесь понятно. Отдельный заголовок для каждого типа VLAN. Список настолько длинный, что не поместился в экран. Но они точно такие, за исключением названий. Заморачивать голову, что означает каждый код не буду. Да и в CPT они тут больше условность.
Смотрим, что происходит дальше.
Получают клиенты объявления. Видят, что номер ревизии выше, чем у них и синхронизируют базу. И отправляют сообщение серверу о том, что база VLAN-ов изменилась.
Принцип работы протокола VTP
Вот так в принципе работает протокол VTP. Но у него есть очень большие минусы. И минусы эти в плане безопасности. Объясню на примере этой же лабораторки. У нас есть центральный коммутатор, на котором создаются VLAN, а потом по мультикасту он их синхронизирует со всеми коммутаторами. В нашем случае он рассказывает про VLAN 20. Предлагаю еще раз глянуть на его конфигурацию.
Обратите внимание. До сервера доходит VTP-сообщение, где номер ревизии выше, чем у него. Он понимает, что сеть изменилась и надо под нее подстроиться. Проверим конфигурацию.
Конфигурация центрального сервера изменилась и теперь он будет вещать именно ее.
А теперь представьте, что у нас не один VLAN, а сотни. Вот таким простым способом можно положить сеть. Конечно домен может быть запаролен и злоумышленнику будет тяжелее нанести вред. А представьте ситуацию, что у вас сломался коммутатор и срочно надо его заменить. Вы или ваш коллега бежите на склад за старым коммутатором и забываете проверить номер ревизии. Он оказывается выше чем у остальных. Что произойдет дальше, вы уже видели. Поэтому я рекомендую не использовать этот протокол. Особенно в больших корпоративных сетях. Если используете VTP 3-ей версии, то смело переводите коммутаторы в режим «Off». Если же используется 2-ая версия, то переводите в режим «Transparent».
Доброго времени суток, уважаемый посетитель. Сегодня я, как обычно, по нашей доброй традиции, буду рассказывать кое-что интересное. А рассказ сегодня пойдет про замечательную штуку в локальных сетях под названием VLAN. В природе не мало разновидностей данной технологии, про все рассказывать не будем, а только про те, которые решили бы стоящую перед нашей компанией задачу. Данная технология уже не раз применялась нашими специлистами в нашей практике ИТ аутсорсинга в регионе , Но в этот раз, всё было несколько интереснее, т.к. оборудование с которым пришлось работать - несколько "урезанное" (прошлая похожая задача релизовывалась на коммутаторе D-link DES-1210-28). Но, обо всем по порядку.
Что же такое VLAN ?
VLAN – логическая («виртуальная») локальная сеть, представляет собой группу хостов с общим набором требований, которые взаимодействуют так, как если бы они были подключены к широковещательному домену, независимо от их физического местонахождения. VLAN имеет те же свойства, что и физическая локальная сеть, но позволяет конечным станциям группироваться вместе, даже если они не находятся в одной физической сети. Такая реорганизация может быть сделана на основе программного обеспечения вместо физического перемещения устройств.
Данная технология позволяет выполнять две задачи:
1) группировать устройства на канальном уровне (т.е. устройства, находящиеся в одном VLAN’е), хотя физически при этом они могут быть подключены к разным сетевым коммутаторам (расположенным, к примеру, географически отдаленно);
2) разграничивать устройства (находящиеся в разных VLAN’ах), подключенные к одному коммутатору.
Иначе говоря, VLAN ‘ы позволяют создавать отдельные широковещательные домены, снижая, тем самым, процент широковещательного трафика в сети.
Port - Base VLAN
Port-Base VLAN – представляет собой группу портов или порт в коммутаторе, входящий в один VLAN. Порты в таком VLAN называются не помеченными (не тегированными), это связанно с тем, что кадры приходящие и уходящие с порта не имеют метки или идентификатора. Данную технологию можно описать кратко – VLAN ’ы только в коммутаторе. Эту технологию мы будем рассматривать на управляемом коммутаторе D-link DGS-1100-24.
IEEE 802.1Q
IEEE 802.1Q - открытый стандарт, который описывает процедуру тегирования трафика для передачи информации о принадлежности к VLAN. Для этого в тело фрейма помещается тег, содержащий информацию о принадлежности к VLAN’у. Т.к. тег помещается в тело, а не в заголовок фрейма, то устройства, не поддерживающие VLAN’ы, пропускают трафик прозрачно, то есть без учета его привязки к VLAN’у.
Немного наркомании, а именно - процедура помещения тега в кадр называется – инъекция.
Размер тега - 4 байта. Он состоит из таких полей:
- Tag Protocol Identifier (TPID, идентификатор протокола тегирования). Размер поля - 16 бит. Указывает какой протокол используется для тегирования. Для 802.1Q используется значение 0x8100.
- Priority (приоритет). Размер поля - 3 бита. Используется стандартом IEEE 802.1p для задания приоритета передаваемого трафика.
- Canonical Format Indicator (CFI, индикатор канонического формата). Размер поля - 1 бит. Указывает на формат MAC-адреса. 0 - канонический, 1 - не канонический. CFI используется для совместимости между сетями Ethernet и Token Ring.
- VLAN Identifier (VID, идентификатор VLAN). Размер поля - 12 бит. Указывает какому VLAN принадлежит фрейм. Диапазон возможных значений от 0 до 4095.
Порты в 802.1Q
Порты могут быть в одном из следующих режимов:
- Tagged port (в терминологии CISCO - trunk-port) - порт пропускает пакеты маркированные указанными номерами VLAN, но при этом сам никак не маркирует пакеты
- Untagged port (в терминологии CISCO - access-port) - порт прозрачно пропускает немаркированный трафик для указанных VLAN, если трафик уходит в другие порты коммутатора за пределы указанного VLAN, то там он уже виден как маркированный номером этой VLAN.
- Порт не принадлежит никаким VLAN и не учувствует в работе коммутатора
Пример. Имеется офисное помещение, в котором отдел кадров разделен на два этажа, нужно, чтобы сотрудники были отделены от общей сети. Имеется два коммутатора. Создадим VLAN 3 на одном и втором, порты, которые будут в одном из VLAN укажем как Untagget Port. Для того, чтобы коммутаторы понимали в какой VLAN адресуется кадр, нужен порт, через который будет пересылаться трафик в этот же VLAN другого коммутатора. Выделим, к примеру, один порт и укажем его как Tagget. Если у нас, помимо VLAN 3, есть еще и другие, и ПК-1 расположенный в VLAN 3 будет искать ПК-2, то широковещательный трафик не будет «ходить» по всей сети, а только в VLAN 3. Прибежавший кадр будет пропускаться через MAC-таблицу, если же адрес получателя не будет найдет, такой кадр будет отправлен через все порты такого VLAN откуда он прибежал и порт Tagget с меткой VLAN, чтобы другой коммутатор воспроизвел широковещание на ту группу портов, которые указаны в поле VID. Данный пример описывает VLAN – один порт может быть только в одном VLAN.
IEEE 802.1 ad
802.1ad - это открытый стандарт (аналогично 802.1q), описывающий двойной тег. Также известен как Q-in-Q, или Stacked VLANs. Основное отличие от предыдущего стандарта - это наличие двух VLAN’ов - внешнего и внутреннего, что позволяет разбивать сеть не на 4095 VLAN’ов, а на 4095х4095.
Сценарии могут быть различны – провайдеру надо “пробросить” транк клиента, не затрагивая схему нумерации VLAN’ов, надо балансировать нагрузку между субинтерфейсами внутри сети провайдера, либо просто – маловато номеров. Самое простое – сделать ещё одну такую же метку (tag).
Асимметричный VLAN
В терминологиях D-Link, а также в настройках VLAN, есть понятие асимметричный VLAN – это такой VLAN, в котором один порт может быть в нескольких VLAN.
Состояние портов меняется
- Tagged порты работают прежним образом
- Появляется возможность назначать как Untagged несколько портов на несколько VLAN. Т.е. один порт сразу работает в нескольких VLAN как Untagged
- У каждого порта появляется еще один параметр PVID - это VLAN ID, которым маркируется трафик с этого порта, если он уходит на Tagged порты и за пределы коммутатора. У каждого порта может быть только один PVID
Таким образом, мы получаем то, что внутри устройства один порт может принадлежать сразу нескольким VLAN, но при этом, уходящий в tagged (TRUNK) порт, трафик будет маркироваться номером, который мы задаем в PVID.
Ограничение: Функция IGMP Snooping не работает при использовании асимметричных VLAN.
Создание VLAN на D- link DGS-1100-24.
Что имеется. Два коммутатора, один из них D-link DGS-1100-24, к нему подключен коммутатор №2. В коммутатор №2 подключены машины пользователей – абсолютно всех, а также сервера, шлюз по умолчанию и сетевое хранилище.
Задача. Ограничить отдел кадров от общей среды, так, чтобы при этом были доступны сервера, шлюз и сетевое хранилище.
Ко всему прочему, коммутатор D-link DGS-1100-24 только что вынули из коробки. По умолчанию большинство управляемых коммутаторов компании D-Link имеют адрес 10.90.90.90/8. Нас не интересует физическое нахождение у коммутатора или смена адреса. Существует специальная утилита D-Link SmartConsole Utility, которая помогает найти наше устройство по сети. После установки запускаем утилиту.
Прежде чем переходить к настройке, переключим порты должным образом:
1) Переключим порт отдела кадров с коммутатора №2 в коммутатор №1
2) Переключим сервера, шлюз и сетевое хранилище с коммутатора №2 в коммутатор №1
3) Подключим коммутатор №2 в коммутатор №1
После такого переключения видим следующую картину: сервера, шлюз, сетевое хранилище и отдел кадров подключены в коммутатор №1, а все остальные пользователи в коммутатор №2.
Жмем кнопку «Discovery»
Ставим галочку и жмем значок шестеренки, открывается окно настройки коммутатора. После задания адреса, маски и шлюза, пишем пароль, который по умолчанию admin.
Жмем «Add VLAN» и указываем имя VLAN и порты
Жмем «Apply»
После создания нужных VLAN, сохраним настройку, для этого нажмем «Save», «Save configuration»
Итак, мы видим, что VLAN 3 не имеет доступа к портам 01-08, 15-24 – следовательно, не имеет доступ к серверам, шлюзу, сетевому хранилищу, к VLAN2 и остальным клиентам – которые подключены к коммутатору №2. Тем не менее VLAN 2 имеет доступ к серверам, шлюзу, сетевому хранилищу, но не имеет к остальным машинам. И наконец, все остальные машины видят сервера, шлюз, сетевое хранилище, но не видят порты 05,06.]
Таким образом, при наличии определенных знананий об особенностях оборудования и навыков ИТ-аутсорсинга , можно удовлетворить потребности клиента даже на таком бюджетном оборудовании как коммутатор D-Link DGS1100-24 .
Все, люди, Мир Вам!
Представим такую ситуацию. У нас есть офис небольшой компании, имеющей в своем арсенале 100 компьютеров и 5 серверов. Вместе с тем, в этой компании работают различные категории сотрудников: менеджеры, бухгалтеры, кадровики, технические специалисты, администраторы. Необходимо, чтобы каждый из отделов работал в своей подсети. Каким образом разграничить трафик этой сети? Вообще есть два таких способа: первый способ — разбить пул IP-адресов на подести и выделить для каждого отдела свою подсеть, второй способ — использование VLAN.
VLAN (Virtual Local Area Network) — группа узлов сети, трафик которой, в том числе и широковещательный, на канальном уровне полностью изолирован от трафика других узлов сети. В современных сетях VLAN — главный механизм для создания логической топологии сети, не зависящей от ее физической топологии.
Технология VLAN определена в документе IEEE 802.1q — открытый стандарт, который описывает процедуру тегирования для передачи информации о принадлежности к VLAN. 802.1q помещает внутрь ethernet фрейма тег, который передает информацию о принадлежности трафика к VLAN.
Рассмотрим поля VLAN TAG:
- TPID (Tag Protocol Identifier) — идентификатор протокола тегирования. Указывает какой протокол используется для тегирования. Для 802.1Q используется значение 0x8100.
- Priority — приоритет. Используется для задания приоритета передаваемого трафика (QoS).
- CFI (Canoncial Format Indicator) — указывает на формат MAC-адреса (Ethernet или Token Ring).
- VID (Vlan Indentifier) — идентификатор VLAN. Указывает какому VLAN принадлежит фрейм. Можно задавать число от 0 до 4094.
Компьютер при отправке фреймов ничего не знает в каком VLAN он находится — этим занимается коммутатор. Коммутатор знает к какому порту подключен компьютер и на основании этого определит в каком VLAN этот компьютер находится.
У коммутатора есть два вида портов:
- Тегированный порт (tagged, trunk) — порт, через который можно передавать или получать трафик нескольких VLAN-групп. При передаче через тегированный порт, к кадру добавляется метка VLAN. Используется для подключения к коммутаторам, маршрутизаторам (то есть тем устройствам, которые распознают метки VLAN).
- Нетегированный порт (untagged, access) — порт, через который передаются нетегированные кадры. Используется для подключения к конечным узлам (компьютерам, серверам). Каждый нетегированный порт находится в определенном VLAN. При передаче трафика с данного порта, метка VLAN удаляется и до компьютера (который не распознает VLAN) идет уже нетегированный трафик. В обратном случае, при приеме трафика на нетегированный порт к нему добавляется метка VLAN.
Настройка VLAN на управляемом коммутаторе Dlink DES-3528
Серия коммутаторов DES-3528/3552 xStack включает в себя стекируемые коммутаторы L2+ уровня доступа, обеспечивающие безопасное подключение конечных пользователей к сети крупных предприятий и предприятий малого и среднего бизнеса (SMB). Коммутаторы обеспечивают физическое стекирование, статическую маршрутизацию, поддержку многоадресных групп и расширенные функции безопасности. Все это делает данное устройство идеальным решением уровня доступа. Коммутатор легко интегрируется с коммутаторами уровня ядра L3 для формирования многоуровневой сетевой структуры с высокоскоростной магистралью и централизованными серверами. Коммутаторы серии DES-3528/3552 снабжены 24 или 48 портами Ethernet 10/100Мбит/с и поддерживают до 4-х uplink-портов Gigabit Ethernet.
Рассмотрим принципы настройки VLAN на управляемых коммутаторах Dlink. В ходе работы изучим способы создания, удаления, изменения VLAN, добавления различных видов портов (тегированных и нетегированных).
Подключение к коммутатору производится через консольный порт с помощью программы HyperTerminal.
С помощью команды show vlan посмотрим информацию о существующих VLAN.
На рисунке выше видно, что изначально на коммутаторе создан только один VLAN по умолчанию с именем default. Команда show vlan выводит следующие поля:
- VID – идентификатор VLAN
- VLAN Type – тип VLAN
- Member Ports – задействованные порты
- Static Ports – статические порты
- Current Tagged Ports – текущие тегированные порты
- Current Untagged Ports – текущие нетегированные порты
- Static Tagged Ports – статические тегированные порты
- Static Untagged Ports – статические нетегированные порты
- Total Entries – всего записей
- VLAN Name – имя VLAN
- Advertisement – статус
Создадим новый VLAN, в котором в качестве имени используются инициалы AA, а в качестве идентификатора – номер 22. Для этого воспользуемся командой create vlan.
В новый VLAN пока не входит ни одного порта. С помощью config vlan изменим VLAN AA так, чтобы в нем появились тегированные порты 10, 14-17 и нетегированные порты 2-5.
Командой show vlan выведем информацию о созданных VLAN.
Известно, что тегированные порты могут входить в несколько VLAN, а нетегированные порты только в один VLAN. В данный момент и тегированные, и нетегированные порты входят в VLAN default и VLAN AA. Командой config vlan удалим все порты, задействованные в VLAN AA из VLAN default.
Из рисунка выше видно, что теперь порты 2-5, 10, 14-17 находятся только в VLAN AA.
Рассмотрим разделение сети на разные VLAN. В коммутационном шкафу собрана схема и настроена подсеть 10.0.0.0 /8.
В начальный момент времени все компьютеры находятся в одной подсети и пингуются между собой. Необходимо разделить их так, чтобы PC22, PC20, PC18 находились в одном VLAN, а PC 19, PC21 в другом VLAN. Для этого создаем два VLAN:
- VLAN=10 с именем net1 (PC18, PC20, PC22)
- VLAN=20 с именем net2 (PC19, PC21)
Для коммутаторов исходя из схемы был разработан план настройки портов. При этом учитывалось, что для компьютеров необходимо использовать нетегированные порты, а для связей между коммутаторами тегированные порты. При настройке коммутаторов тегированные порты размещались в VLAN=10 и VLAN=20, а нетегированные порты размещались только в том VLAN, к которому принадлежит компьютер.
На каждом из коммутаторов необходимо настроить порты в соответствии со схемой. На рисунке ниже показан пример настройки SW5. В начале создается vlan с идентификатором net1 и меткой 10. Далее создаем второй vlan net2 с меткой 20. После чего, добавляем порты коммутатора в соответствующие vlan. Порт 1 подключен к компьютеру PC22, который находится в 10 VLAN’е. Значит 1 порт будет нетегированным (untagged). Второй порт по схеме подключен к SW4 и должен пропускать через себя 10 и 20 VLAN’ы.
Остальные коммутаторы настраиваются по аналогии.
Командой show vlan просмотрим каждый из созданных нами VLAN.
VLAN (Virtual Local Area Network) позволяет в коммутаторах или роутерах создать несколько виртуальных локальных сетей на одном физическом сетевом интерфейсе. Простой и удобный способ разделения трафика между клиентами или базовыми станциями, использование VLAN.
Технология VLAN заключается в том, что к сетевому кадру (2-й уровень) прибавляется дополнительный заголовок tag, который содержит служебную информацию и VLAN ID. Значения VLAN ID могут быть от 1 - 4095. При этом 1 зарезервирована как VLAN по умолчанию.
При работе с VLAN важно понимать, что такое тегированный и нетегированный трафик. Тегированный трафик (с идентификатором влана) в основном идет между коммутаторами и серверами. Обычные же компьютеры (особенно под управлением ОС Windows) не понимают тегированный трафик. Поэтому на тех портах, которые смотрят непосредственно на рабочие станции или в сеть с неуправляемым коммутатором, выдается нетегированный трафик. Т.е. от сетевого кадра отрезается тег. Это также происходит, если на порту настроен VLAN ID = 1.
Также существует понятие, как trunk (Транк). Транком называют порты коммутатора, по которым идет трафик с разными тегами. Обычно транк настраивается между коммутаторами, чтобы обеспечить доступ к VLAN с разных коммутаторов.
Использование VLAN на оборудовании Mikrotik
Роутеры и коммутаторы Mikrotik поддерживают до 250 VLANs на одном Ethernet интерфейсе. Создавать VLAN его можно не только на Ethernet интерфейсе, но и на Bridge, и даже на туннеле EoIP. VLAN может быть построен в другом VLAN интерфейсе, по технологии “Q-in-Q”. Можно делать 10 и более вложенных VLAN, только размер MTU уменьшается с каждым разом на 4 байта.
Разберем использование VLAN на примере. Задача:
- Создать VLAN для HOTSPOT (172.20.22.0/24)
- Создать VLAN для VIOP-телефонии (172.21.22.0/24)
- Изолировать сети 172.20.22.0/24, 172.21.22.0/24 друг от друга и от доступа в сеть 10.5.5.0/24
- Назначить Ether2 порт, на работу в сети 172.20.22.0/24 (VLAN)
- Назначить Ether3, Ether4 на работу в сети 172.21.22.0/24 (VLAN)
Исходные данные:
- Интернет на Ether1, назначен на Brigde интерфейс — Ethernet
- Локальная сеть (10.5.5.0/24), назначена на Brigde интерфейс — LAN
Создание VLAN интерфейсов
Создаем VLAN2 (ID=2), VLAN3 (ID=3) и назначаем их на Bridge интерфейс LAN. Интерфейс LAN будет выступать в качестве Trunk соединения.
/interface vlan add name=VLAN2 vlan-id=2 interface=LAN /interface vlan add name=VLAN3 vlan-id=3 interface=LAN
Создание Bridge интерфейсов
Создаем BridgeVLAN2, BridgeVLAN3 интерфейсы под VLAN:
/interface bridge add name=BridgeVLAN2 /interface bridge add name=BridgeVLAN3
Связь VLAN интерфейсов с Bridge соединениями
Связываем интерфейсы VLAN (VLAN2, VLAN3) с Bridge (BridgeVLAN2, BridgeVLAN3) соединениями:
/interface bridge port add interface=VLAN2 bridge=BridgeVLAN2 /interface bridge port add interface=VLAN3 bridge=BridgeVLAN3
Создание IP-адресации
Присваиваем каждому BridgeVLAN2/BridgeVLAN3 интерфейсу IP-адрес — 172.20.22.1/24 (VLAN 2), 172.21.22.1/24 (VLAN 3):
/ip address add address=172.20.22.1/24 interface=BridgeVLAN2 /ip address add address=172.21.22.1/24 interface=BridgeVLAN3
Создание пула адресов
Задаем диапазон выдаваемых IP-адресов, для сетей (172.20.22.0/24, 172.21.22.0/24):
/ip pool add name=poolVLAN2 ranges=172.20.22.2-172.20.22.254 /ip pool add name=poolVLAN3 ranges=172.21.22.2-172.21.22.254
Настройка DHCP сервера
Для того чтобы устройства получали сетевые настройки, автоматически, настроим DHCP сервер, для локальных сетей (172.20.22.0/24, 172.21.22.0/24):
/ip dhcp-server add name=dhcpVLAN2 interface=BridgeVLAN2 address-pool=poolVLAN2 disabled=no /ip dhcp-server add name=dhcpVLAN3 interface=BridgeVLAN3 address-pool=poolVLAN3 disabled=no /ip dhcp-server network add address=172.20.22.0/24 gateway=172.20.22.1 /ip dhcp-server network add address=172.21.22.0/24 gateway=172.21.22.1
Настройка Firewall. Доступ к интернет для VLAN сетей
У меня выполнена настройка безопасности, по этой . Поэтому для того чтобы устройства из локальных сетей (172.20.22.0/24, 172.21.22.0/24), имели выход в интернет, добавляем для них правило:
/ip firewall filter add chain=forward action=accept src-address=172.20.22.0/24 comment="Access Internet From LAN" /ip firewall filter add chain=forward action=accept src-address=172.21.22.0/24 comment="Access Internet From LAN"
Изолирование VLAN сетей
Необходимо чтобы сети VLAN2 (172.20.22.0/24), VLAN3 (172.21.22.0/24), были изолированы друг от друга и от доступа в основную локальную сеть 10.5.5.0/24. Создаем списки локальных сетей (LOCAL):
/ip firewall address-list add list=LOCAL address=10.5.5.0/24 /ip firewall address-list add list=LOCAL address=172.20.22.0/24 /ip firewall address-list add list=LOCAL address=172.21.22.0/24
Создаем правила блокировки доступа к локальным сетям (LOCAL) из сетей 172.20.22.0/24, 172.21.22.0/24. Запрещающие правила, обязательно ставим выше разрешающих:
/ip firewall filter add chain=forward action=drop src-address=172.20.22.0/24 dst-address-list=LOCAL /ip firewall filter add chain=forward action=drop src-address=172.21.22.0/24 dst-address-list=LOCAL
Распределение VLAN по портам роутера Mikrotik
Назначаем порты роутера, на работу в том или ином VLAN. Порт ether2 — BridgeVLAN2, порты ether3, ether4 — BridgeVLAN3:
/interface bridge port add interface=ether2 bridge=BridgeVLAN2 /interface bridge port add interface=ether3 bridge=BridgeVLAN3 /interface bridge port add interface=ether4 bridge=BridgeVLAN3
Информация : не обязательно назначать Bridge соединение на каждый порт, для принадлежности к тому или иному VLAN. Достаточно задать Bridge соединение, только на один порт, а затем используя Master port указывать принадлежность к VLAN, другие порты.
На этом добавление и настройка VLAN окончена. В итоге получили две изолированные сети, с доступом в интернет. Поместили созданные VLAN сети в Trunk соединение, что позволит в случае необходимости сегментирования VLAN сетей на другой роутер, легко это сделать. Назначили необходимые порты роутера на работу в соответствующих VLAN сетях.
VLAN (Virtual Local Area Network) - виртуальная локальная вычислительная сеть , является частью большего LAN . Простейший механизм изоляции различных подсетей на Ethernet , WI-FI интерфейсах. Для того, чтобы организовывать VLAN, сетевой коммутатор (Switch (коммутатор)) должен поддерживать технологию VLAN и протокол 802.1q.
Преимущества VLAN:
увеличивает число широковещательных доменов, но уменьшает размер каждого широковещательного домена, которые в свою очередь уменьшают сетевой трафик и увеличивают безопасность сети (оба следствия связаны вместе из-за единого большого широковещательного домена);
уменьшает усилия администраторов на создание подсетей;
уменьшает количество оборудования, так как сети могут быть разделены логически, а не физически;
улучшает управление различными типами трафика.
Термины:
Термин untagged : только одна VLAN может получать все пакеты, не отнесённые ни к одной VLAN (в терминологии 3Com, Planet, Zyxel - untagged , в терминологии Cisco - native VLAN ). Свитч будет добавлять метки данной VLAN ко всем принятым кадрам не имеющих никаких меток.
Транк VLAN - это физический канал, по которому передается несколько VLAN каналов, которые различаются тегами (метками, добавляемыми в пакеты). Транки обычно создаются между «тегированными портами» VLAN-устройств: свитч-свитч или свитч-маршрутизатор. (В документах Cisco термином «транк» также называют объединение нескольких физических каналов в один логический: Link Aggregation, Port Trunking). Маршрутизатор (свитч третьего уровня) выступает в роли магистрального ядра сети (backbone) для сетевого трафика разных VLAN.
Сказать проще, vlan – это логический канал внутри физического канала (кабеля), а trunk это множество логических каналов (vlan`ов) внутри одного физического канала (кабеля) .
Сети VLAN могут быть определены по:
Порту (наиболее частое использование). VLAN, базирующиеся на номере порта позволяют определить конкретный порт в VLAN. Порты могут быть определены индивидуально, по группам, по целым рядам и даже в разных коммутаторах через транковый протокол. Это наиболее простой и часто используемый метод определения VLAN. Это наиболее частое применение внедрения VLAN, построенной на портах, когда рабочие станции используют протокол Динамической Настройки TCP/IP (DHCP).
MAC-адрес - адресу (очень редко). VLAN, базирующиеся на MAC адресах позволяет пользователям находиться в той же VLAN, даже если пользователь перемещается с одного места на другое. Этот метод требует, чтобы администратор определил MAC адрес каждой рабочей станции и затем внес эту информацию в коммутатор. Этот метод может вызвать большие трудности при поиске неисправностей, если пользователь изменил MAC адрес. Любые изменения в конфигурации должны быть согласованы с сетевым администратором, что может вызывать административные задержки.
Идентификатору пользователя User ID (очень редко)
VLAN Linux и D-Link DGS-1100-08P
Настройка DGS-1100-08P . Подключимся к нему в первый порт. Присвоим ему IP 10.90.91.2. Создадим 3 VLAN: vlan1 (порт 1 (tagged)) для служебного использования, то есть только для настройки коммутатора, vlan22(порт 1 (tagged); порты 2,3,4 (untagged)), vlan35(порт 1 (tagged); порты 5,6 (untagged)). Порты 7,8 не используются и выключены через меню Port Settings(Speed: Disabled). Укажем, что в дальнейшем управлять D-Link DGS-1100-08P (IP 10.90.91.2) можно управлять только через vlan1, то есть в нашем случае системный администратор должен подключиться в первый порт DGS-1100-08P(При подключении в иной порт - коммутатор не разрешит доступ к 10.90.91.2).
Создать VLAN с именем vlan22 привязанный к порту сетевой карты eth4. Присвоим ему IP:192.168.122.254. ip link add link eth4 name vlan22 type vlan id 22 ip addr add 192.168.122.254/ 24 dev vlan22 ifconfig vlan22 up
Служебный vlan только для настройки коммутатора:
Ip link add link eth4 name vlan44 type vlan id 1 ip addr add 10.90.91.254/ 24 dev vlan44 ifconfig vlan44 up ip link add link eth4 name vlan35 type vlan id 35 ip addr add 192.168.35.254/ 24 dev vlan34 ifconfig vlan35 up
Параметры созданных vlan смотрим в файлах ls -l / proc/ net/ vlan/ итого 0 -rw------- 1 root root 0 Авг 17 15:06 config -rw------- 1 root root 0 Авг 17 15:06 vlan1 -rw------- 1 root root 0 Авг 17 15:06 vlan22