Материал просмотрен 6,860 раз(а)

Картинка тут простая. Простая? Да это ж… кошмар!

Ну на самом деле всё намного проще. Итак, мы имеем:

  1. Три коммутатора уровня распределения.
  2. Один центральный коммутатор (выполняющий роль роутера).
  3. Сервер.
  4. Три подсети по 2 узла в каждой, привязанных (это я специально) к разным устройствам.

Цветом я выделил примерные VLAN-ы. Разумеется, можно добавить VLAN куда-нибудь ещё, в любое место и убедиться, что система будет работать.

Задача по сетям:

Для любого VLAN могут быть доступны только узлы этого же VLAN и серверные хосты (у нас – один), остальное запрещено.

Зачем так делать?

  1. Выделение узлов в отдельные VLAN позволит уменьшить долю широковещательного трафика в сети в целом, сократив распространение пакетов в пределах только лишь своего широковещательного домена. Жесть написано. Но для этого читайте о преимуществах VLAN.
  2. Безопасность выйдет на новый уровень. Не нужно бояться, что одно подразделение получит доступ к узлам другого подразделения. Теперь это просто невозможно будет сделать.
  3. Должно быть удобнее администрировать такую сеть. Так это или нет – мы увидим скоро.

Итак, понеслась душа в рай!

Нарисум в Cisco Packet Tracer подобную схему. Как я уже говорил, скачать его можно в разделе Файлопомойка.

Распределяем адреса на узлы.

На деле, конечно, лучше всего для этих целей привлечь DHCP сервер. И поверьте мне, я очень хочу этим заняться. Но пока вот вручную.

В общем-то по скринам видно, кому какие адреса я даю. Маска на всех хостах 255.255.255.0 (так мы сократим количество узлов в широковещательном домене до 254).

Кто забыл, как назначать адрес – напоминаю. Выбираем узел, открываются свойства. На вкладке Config есть поля IP Configuration. Туда и заносим. Не забывайте про маску! По умолчанию подставится сеть класса A (255.0.0.0), хотя классы сетей остались в прошлом.

Итак, все адреса раздали. Самое время настроить VLAN.

Входим на центральный коммутатор и начинаем настраивать базу VLAN. Кстати, это делается либо через граф.оболочку, либо в CLI (мы за второй способ).

Switch>en
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#vlan 100
Switch(config-vlan)#name VLAN0100
Switch(config-vlan)#exit

Эти операции проделаем для каждого из VLAN (100, 101, 102, 103).

Далее, настраиваем VTP и Trunk.

Switch(config)#vtp domain MY
Switch(config)#vtp password MY
Switch(config)#vtp mode server

Готов VTP, настроим интерфейсы на транк.

Switch(config)#int fa0/1
Switch(config-if)#switchport trunk encapsulation dot1q
Switch(config-if)#switchport mode trunk
Switch(config-if)#exit

и повторим эти настройки для интерфейсов 2 и 3 (аналогично).

Транковый интерфейс пропускает трафик маркированный произвольным VLAN (если не настроены конкретные), поэтому они будут стоять на магистралях. А конечные интерфейсы выставим в режим access (доступ) только конкретного VLAN.

Уже на конкретном свиче, близ рабочей станции настроим интерфейс под определённый VLAN. Например свитч, который контактирует с сервером привяжем к серверному VLAN (100)

Switch(config)#int fa0/4
Switch(config-if)#switchport access vlan 100
Switch(config-if)#switchport mode access
Switch(config-if)#no shut

И такое повторим для каждого узла, только пометив интерфейс соответствующим VLAN. Внимание, не ошибитесь! 90% ошибок возникают на этом этапе.

И не забываем перевести остальные коммутаторы в режим client:

Switch(config)#vtp domain MY
Switch(config)#vtp password MY
Switch(config)#vtp mode client

Сразу после этого таблица VLAN разойдётся по коммутаторам с помощью протокола VTP.

Тест 1. Проверка канального уровня.

Попробуем пропинговать соседний с нами узел в VLAN. Например для 103 VLAN входим на узел 10.0.103.11 и пробуем пропинговать 10.0.103.12. Если всё сделано правильно – пакеты дойдут. При этом никакие другие узлы из других VLAN пинговаться не должны. Таким образом мы проверили 2-ой уровень модели OSI – канальный. Далее пойдём выше, на сетевой. Это немного сложнее.

Используем центральный свитч как роутер.

Создаём интерфейсы для каждого из VLAN. Для этого входим на центральный свитч и делаем:

Switch(config)#int vlan 100
Switch(config-if)#ip address 10.0.100.1 255.255.255.0
Switch(config-if)#no shut
Switch(config-if)#exit

И так повторяем для каждого VLAN, задавая адрес IP: 10.0.[VLAN].1 и маску /24. Это будут “хвосты” для шлюза по-умолчанию.

И для каждого узла в настройках зададим этот “хвост”, например для узла 10.0.101.12 хвостом будет 10.0.101.1 (т.е. 1-ый адрес соответствующего VLAN).

Включаем маршрутизацию:

Switch(config)#ip routing

Если всё сделали правильно, то…

Тест 2. Проверка доступности центрального коммутатора.

Посылаем с любого узла ping запрос на соответствующий его VLAN-у “конец”, например, если мы вошли на узел 10.0.103.11, то пинговать нужно 10.0.103.1. Если всё сделано правильно, то пакеты дойдут. С включением маршрутизации обнаружим, что пинговаться стали все компьютеры из любого места!

Одна часть задания выполнена. Теперь запретим все ненужные обращения. Для этого используем… ACL. Я уже описывал работы с ACL здесь и тут.

Нам нужно только создать новый лист правил.

Немного покубатурив, я решил, что правила будут такие:

  1. Разрешить пакеты от любого к серверам.
  2. Разрешить пакеты от серверов до любого.
  3. От одной подсети к этой же подсети разрешить.
  4. Дефолтное правило: запретить всё остальное.

В самом деле, эти правила полностью удовлетворяют условию задачи! Их и запишем.

Открываем центральный свич, ведь именно через него проходят все пакеты.

Switch(config)#ip access-list extended 100
Switch(config-ext-nacl)#permit ip any 10.0.100.0 0.0.0.255
Switch(config-ext-nacl)#permit ip 10.0.100.0 0.0.0.255 any
Switch(config-ext-nacl)#permit ip 10.0.101.0 0.0.0.255 10.0.101.0 0.0.0.255
Switch(config-ext-nacl)#permit ip 10.0.102.0 0.0.0.255 10.0.102.0 0.0.0.255
Switch(config-ext-nacl)#permit ip 10.0.103.0 0.0.0.255 10.0.103.0 0.0.0.255
Switch(config-ext-nacl)#exit

Остальные пакеты будут отлетать мимо, что нам и нужно как раз. Ну теперь этот access-list можно применить ко всем VLAN-ам на входящий трафик.

Switch(config)#int vlan 100
Switch(config-if)#ip access-group 100 in

Этот шаг повторяем для каждого из VLAN-ов. Вообще, конечно можно ACL сократить и оставить только нужные для каждого VLAN-а команды! Но я нарочно написал такой длинный, чтобы вы смогли его оптимизировать! Ответ жду в комментариях! Подсказка. Разрешаем только серверный трафик 😉

Ну теперь финальные проверки. Попингушки!