Cамая большая проблема, с которой я сталкиваюсь при работе с сетями предприятий — это отсутствие чётких и понятных логических схем сети. В большинстве случаев я сталкиваюсь с ситуациями, когда заказчик не может предоставить никаких логических схем или диаграмм. Сетевые диаграммы (далее L3-схемы) являются чрезвычайно важными при решении проблем, либо планировании изменений в сети предприятия. Логические схемы во многих случаях оказываются более ценными, чем схемы физических соединений. Иногда мне встречаются «логически-физически-гибридные» схемы, которые практически бесполезны. Если вы не знаете логическую топологию вашей сети, вы слепы. Как правило, умение изображать логическую схему сети не является общим навыком. Именно по этой причине я пишу эту статью про создание чётких и понятных логических схем сети.
Какая информация должна быть представлена на L3-схемах?
Для того, чтобы создать схему сети, вы должны иметь точное представление о том, какая информация должна присутствовать и на каких именно схемах. В противном случае вы станете смешивать информацию и в итоге получится очередная бесполезная «гибридная» схема. Хорошие L3-схемы содержат следующую информацию:
- подсети
- VLAN ID (все)
- названия VLAN'ов
- сетевые адреса и маски (префиксы)
- L3-устройства
- маршрутизаторы, межсетевые экраны (далее МСЭ) и VPN-шлюзы (как минимум)
- наиболее значимые серверы (например, DNS и пр.)
- ip-адреса этих серверов
- логические интерфейсы
- информацию протоколов маршрутизации
Какой информации НЕ должно быть на L3-схемах?
Перечисленной ниже информации не должно быть на сетевых схемах, т.к. она относится к другим уровням [модели OSI, прим. пер.] и, соответственно, должна быть отражена на других схемах:
- вся информация L2 и L1 (в общем случае)
- L2-коммутаторы (может быть представлен только интерфейс управления)
- физические соединения между устройствами
Используемые обозначения
Как правило, на логических схемах используются логические символы. Большинство из них не требуют пояснений, но т.к. я уже видел ошибки их применения, то позволю себе остановиться и привести несколько примеров:
- Подсеть, представленная как трубка или линия:
- VRF или другая не известная точно зона представляется в виде облака:
Какая информация необходима для создания L3-схемы?
Для того, чтобы создать логическую схему сети, понадобится следующая информация:
- Схема L2 (или L1) — представление физических соединений между устройствами L3 и коммутаторами
- Конфигурации устройств L3 — текстовые файлы либо доступ к GUI, и т.д.
- Конфигурации устройств L2 — текстовые файлы либо доступ к GUI, и т.д.
Пример
В данном примере мы будем использовать простую сеть. В ней будут присутствовать коммутаторы Cisco и МСЭ Juniper Netscreen. Нам предоставлена схема L2, также как и конфигурационные файлы большинства представленных устройств. Конфигурационные файлы пограничных маршрутизаторов ISP не предоставлены, т.к. в реальной жизни такую информацию ISP не передаёт. Ниже представлена L2-топология сети:
А здесь представлены файлы конфигурации устройств. Оставлена только необходимая информация:
!
vlan 210
name Servers1
!
vlan 220
name Servers2
!
vlan 230
name Servers3
!
vlan 240
name Servers4
!
vlan 250
name In-mgmt
!
interface GigabitEthernet0/1
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface GigabitEthernet0/2
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface vlan 250
ip address 192.168.10.11 255.255.255.128
!
ip default-gateway 192.168.10.1
!
vlan 210
name Servers1
!
vlan 220
name Servers2
!
vlan 230
name Servers3
!
vlan 240
name Servers4
!
vlan 250
name In-mgmt
!
interface GigabitEthernet0/1
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface GigabitEthernet0/2
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface vlan 250
ip address 192.168.10.12 255.255.255.128
!
ip default-gateway 192.168.10.1
!
vlan 210
name Servers1
!
vlan 220
name Servers2
!
vlan 230
name Servers3
!
vlan 240
name Servers4
!
vlan 250
name In-mgmt
!
interface GigabitEthernet0/1
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface GigabitEthernet0/2
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface vlan 250
ip address 192.168.10.13 255.255.255.128
!
ip default-gateway 192.168.10.1
!
vlan 200
name in-transit
!
vlan 210
name Servers1
!
vlan 220
name Servers2
!
vlan 230
name Servers3
!
vlan 240
name Servers4
!
vlan 250
name In-mgmt
!
interface GigabitEthernet0/1
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface GigabitEthernet0/2
switchport mode trunk
switchport trunk encapsulation dot1q
channel-group 1 mode active
!
interface GigabitEthernet0/3
switchport mode trunk
switchport trunk encapsulation dot1q
channel-group 1 mode active
!
interface GigabitEthernet0/4
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface GigabitEthernet0/5
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface GigabitEthernet0/6
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface Port-channel 1
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface vlan 200
ip address 10.0.0.29 255.255.255.240
standby 1 ip 10.0.0.28
!
interface vlan 210
ip address 192.168.0.2 255.255.255.128
standby 2 ip 192.168.0.1
!
interface vlan 220
ip address 192.168.0.130 255.255.255.128
standby 3 ip 192.168.0.129
!
interface vlan 230
ip address 192.168.1.2 255.255.255.128
standby 4 ip 192.168.1.1
!
interface vlan 240
ip address 192.168.1.130 255.255.255.128
standby 5 ip 192.168.1.129
!
interface vlan 250
ip address 192.168.10.2 255.255.255.128
standby 6 ip 192.168.10.1
!
ip route 0.0.0.0 0.0.0.0 10.0.0.17
!
vlan 200
name in-transit
!
vlan 210
name Servers1
!
vlan 220
name Servers2
!
vlan 230
name Servers3
!
vlan 240
name Servers4
!
vlan 250
name In-mgmt
!
interface GigabitEthernet0/1
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface GigabitEthernet0/2
switchport mode trunk
switchport trunk encapsulation dot1q
channel-group 1 mode active
!
interface GigabitEthernet0/3
switchport mode trunk
switchport trunk encapsulation dot1q
channel-group 1 mode active
!
interface GigabitEthernet0/4
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface GigabitEthernet0/5
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface GigabitEthernet0/6
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface Port-channel 1
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface vlan 200
ip address 10.0.0.30 255.255.255.240
standby 1 ip 10.0.0.28
!
interface vlan 210
ip address 192.168.0.3 255.255.255.128
standby 2 ip 192.168.0.1
!
interface vlan 220
ip address 192.168.0.131 255.255.255.128
standby 3 ip 192.168.0.129
!
interface vlan 230
ip address 192.168.1.3 255.255.255.128
standby 4 ip 192.168.1.1
!
interface vlan 240
ip address 192.168.1.131 255.255.255.128
standby 5 ip 192.168.1.129
!
interface vlan 250
ip address 192.168.10.3 255.255.255.128
standby 6 ip 192.168.10.1
!
ip route 0.0.0.0 0.0.0.0 10.0.0.17
set interface ethernet0/1 zone untrust
set interface ethernet0/1.101 tag 101 zone dmz
set interface ethernet0/1.102 tag 102 zone mgmt
set interface ethernet0/2 zone trust
set interface ethernet0/1 ip 10.0.0.1/28
set interface ethernet0/1 manage-ip 10.0.0.2
set interface ethernet0/1.101 ip 10.0.0.33/28
set interface ethernet0/1.102 ip 10.0.0.49/28
set interface ethernet0/2 ip 10.0.0.17/28
set interface ethernet0/2 manage-ip 10.0.0.18
set vrouter trust-vr route 0.0.0.0/0 interface ethernet0/1 gateway 10.0.0.12
set interface ethernet0/1 zone untrust
set interface ethernet0/1.101 tag 101 zone dmz
set interface ethernet0/1.102 tag 102 zone mgmt
set interface ethernet0/2 zone trust
set interface ethernet0/1 ip 10.0.0.1/28
set interface ethernet0/1 manage-ip 10.0.0.3
set interface ethernet0/1.101 ip 10.0.0.33/28
set interface ethernet0/1.102 ip 10.0.0.49/28
set interface ethernet0/2 ip 10.0.0.17/28
set interface ethernet0/2 manage-ip 10.0.0.19
set vrouter trust-vr route 0.0.0.0/0 interface ethernet0/1 gateway 10.0.0.12
!
vlan 100
name Outside
!
vlan 101
name DMZ
!
vlan 102
name Mgmt
!
interface GigabitEthernet1/0
description To-Inet-rtr1
switchport mode access
switchport access vlan 100
!
interface GigabitEthernet1/1
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface GigabitEthernet1/3
switchport mode trunk
switchport trunk encapsulation dot1q
channel-group 1 mode active
!
interface GigabitEthernet1/4
switchport mode trunk
switchport trunk encapsulation dot1q
channel-group 1 mode active
!
interface Port-channel 1
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface vlan 102
ip address 10.0.0.50 255.255.255.240
!
ip default-gateway 10.0.0.49
!
vlan 100
name Outside
!
vlan 101
name DMZ
!
vlan 102
name Mgmt
!
interface GigabitEthernet1/0
description To-Inet-rtr2
switchport mode access
switchport access vlan 100
!
interface GigabitEthernet1/1
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface GigabitEthernet1/3
switchport mode trunk
switchport trunk encapsulation dot1q
channel-group 1 mode active
!
interface GigabitEthernet1/4
switchport mode trunk
switchport trunk encapsulation dot1q
channel-group 1 mode active
!
interface Port-channel 1
switchport mode trunk
switchport trunk encapsulation dot1q
!
interface vlan 102
ip address 10.0.0.51 255.255.255.240
!
ip default-gateway 10.0.0.49
Сбор информации и её визуализация
Хорошо. Теперь, когда мы имеем всю необходимую информацию, можно приступать к визуализации.
Процесс отображения шаг за шагом
- Сбор информации:
- Для начала откроем файл конфигурации (в данном случае ASW1).
- Возьмём оттуда каждый ip-адрес из разделов интерфейсов. В данном случае есть только один адрес (192.168.10.11) с маской 255.255.255.128. Имя интерфейса — vlan250, и имя vlan 250 — In-mgmt.
- Возьмём все статические маршруты из конгфигурации. В данном случае есть только один (ip default-gateway), и он указывает на 192.168.10.1.
- Отображение:
- Теперь давайте отобразим информацию, которую мы собрали. Во-первых, нарисуем устройство ASW1. ASW1 является коммутатором, поэтому используем символ коммутатора.
- Нарисуем подсеть (трубку). Назначим ей имя In-mgmt, VLAN-ID 250 и адрес 192.168.10.0/25.
- Соединим ASW1 и подсеть.
- Вставляем текстовое поле между символами ASW1 и подсети. Отобразим в нём имя логического интерфейса и ip-адрес. В данном случае имя интерфейса будет vlan250, и последний октет ip-адреса — .11 (это является общей практикой — отображать только последний октет ip-адреса, т.к. ip-адрес сети уже присутствует на схеме).
- Также в сети In-mgmt есть другое устройство. Или, как минимум, должно быть. Нам ещё неизвестно имя этого устройства, но его IP-адрес 192.168.10.1. Мы узнали это потому, что ASW1 указывает на этот адрес как на шлюз по-умолчанию. Поэтому давайте отобразим это устройство на схеме и дадим ему временное имя "??". Также добавим его адрес на схему — .1 (кстати, я всегда выделяю неточную/неизвестную информацию красным цветом, чтобы глядя на схему можно было сразу понять, что на ней требует уточнения).
На этом этапе мы получаем схему, подобную этой:
Повторите этот процесс шаг за шагом для каждого сетевого устройства. Соберите всю информацию, относящуюся к IP, и отобразите на этой же схеме: каждый ip-адрес, каждый интерфейс и каждый статический маршрут. В процессе ваша схема станет очень точной. Убедитесь, что устройства, которые упомянуты, но пока неизвестны, отображены на схеме. Точно так же, как мы делали ранее с адресом 192.168.10.1. Как только вы выполните всё перечисленное для всех известных сетевых устройств, можно начать выяснение неизвестной информации. Вы можете использовать для этого таблицы MAC и ARP (интересно, стоит ли писать следующий пост, рассказывающий подробно об этом этапе?).
В конечном счёте мы будем иметь схему наподобие этой:
Заключение
Нарисовать логическую схему сети можно очень просто, если вы обладаете соответствующими знаниями. Это продолжительный процесс, выполняемый вручную, но это отнюдь не волшебство. Как только у вас есть L3-схема сети, достаточно нетрудно поддерживать её в актуальном состоянии. Получаемые преимущества стоят приложенных усилий:
- вы можете планировать изменения быстро и точно;
- решение проблем занимает гораздо меньше времени, чем до этого. Представим, что кому-то нужно решить проблему недоступности сервиса для 192.168.0.200 до 192.168.1.200. После просмотра L3-схемы можно с уверенностью сказать, что МСЭ не является причиной данной проблемы.
- Вы можете легко соблюдать корректность правил МСЭ. Я видел ситуации, когда МСЭ содержали правила для трафика, который никогда бы не прошёл через этот МСЭ. Этот пример отлично показывает, что логическая топология сети неизвестна.
- Обычно как только L3-схема сети создана, вы сразу заметите, какие участки сети не имеют избыточности и т.д. Другими словами, топология L3 (а также избыточность) является такой же важной как избыточность на физическом уровне.
Автор: qaz