[Перевод] Как создавать понятные логические (L3) схемы сети
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-топология сети:
А здесь представлены файлы конфигурации устройств. Оставлена только необходимая информация:
asw1 ! vlan 210name Servers1! vlan 220name Servers2! vlan 230name Servers3! vlan 240name Servers4! vlan 250name In-mgmt! interface GigabitEthernet0/1switchport mode trunkswitchport trunk encapsulation dot1q! interface GigabitEthernet0/2switchport mode trunkswitchport trunk encapsulation dot1q! interface vlan 250ip address 192.168.10.11 255.255.255.128! ip default-gateway 192.168.10.1
asw2 ! vlan 210name Servers1! vlan 220name Servers2! vlan 230name Servers3! vlan 240name Servers4! vlan 250name In-mgmt! interface GigabitEthernet0/1switchport mode trunkswitchport trunk encapsulation dot1q! interface GigabitEthernet0/2switchport mode trunkswitchport trunk encapsulation dot1q! interface vlan 250ip address 192.168.10.12 255.255.255.128! ip default-gateway 192.168.10.1
asw3 ! vlan 210name Servers1! vlan 220name Servers2! vlan 230name Servers3! vlan 240name Servers4! vlan 250name In-mgmt! interface GigabitEthernet0/1switchport mode trunkswitchport trunk encapsulation dot1q! interface GigabitEthernet0/2switchport mode trunkswitchport trunk encapsulation dot1q! interface vlan 250ip address 192.168.10.13 255.255.255.128! ip default-gateway 192.168.10.1
csw1 ! vlan 200name in-transit! vlan 210name Servers1! vlan 220name Servers2! vlan 230name Servers3! vlan 240name Servers4! vlan 250name In-mgmt! interface GigabitEthernet0/1switchport mode trunkswitchport trunk encapsulation dot1q! interface GigabitEthernet0/2switchport mode trunkswitchport trunk encapsulation dot1qchannel-group 1 mode active! interface GigabitEthernet0/3switchport mode trunkswitchport trunk encapsulation dot1qchannel-group 1 mode active! interface GigabitEthernet0/4switchport mode trunkswitchport trunk encapsulation dot1q! interface GigabitEthernet0/5switchport mode trunkswitchport trunk encapsulation dot1q! interface GigabitEthernet0/6switchport mode trunkswitchport trunk encapsulation dot1q! interface Port-channel 1switchport mode trunkswitchport trunk encapsulation dot1q! interface vlan 200ip address 10.0.0.29 255.255.255.240standby 1 ip 10.0.0.28! interface vlan 210ip address 192.168.0.2 255.255.255.128standby 2 ip 192.168.0.1! interface vlan 220ip address 192.168.0.130 255.255.255.128standby 3 ip 192.168.0.129! interface vlan 230ip address 192.168.1.2 255.255.255.128standby 4 ip 192.168.1.1! interface vlan 240ip address 192.168.1.130 255.255.255.128standby 5 ip 192.168.1.129! interface vlan 250ip address 192.168.10.2 255.255.255.128standby 6 ip 192.168.10.1! ip route 0.0.0.0 0.0.0.0 10.0.0.17
csw2 ! vlan 200name in-transit! vlan 210name Servers1! vlan 220name Servers2! vlan 230name Servers3! vlan 240name Servers4! vlan 250name In-mgmt! interface GigabitEthernet0/1switchport mode trunkswitchport trunk encapsulation dot1q! interface GigabitEthernet0/2switchport mode trunkswitchport trunk encapsulation dot1qchannel-group 1 mode active! interface GigabitEthernet0/3switchport mode trunkswitchport trunk encapsulation dot1qchannel-group 1 mode active! interface GigabitEthernet0/4switchport mode trunkswitchport trunk encapsulation dot1q! interface GigabitEthernet0/5switchport mode trunkswitchport trunk encapsulation dot1q! interface GigabitEthernet0/6switchport mode trunkswitchport trunk encapsulation dot1q! interface Port-channel 1switchport mode trunkswitchport trunk encapsulation dot1q! interface vlan 200ip address 10.0.0.30 255.255.255.240standby 1 ip 10.0.0.28! interface vlan 210ip address 192.168.0.3 255.255.255.128standby 2 ip 192.168.0.1! interface vlan 220ip address 192.168.0.131 255.255.255.128standby 3 ip 192.168.0.129! interface vlan 230ip address 192.168.1.3 255.255.255.128standby 4 ip 192.168.1.1! interface vlan 240ip address 192.168.1.131 255.255.255.128standby 5 ip 192.168.1.129! interface vlan 250ip address 192.168.10.3 255.255.255.128standby 6 ip 192.168.10.1! ip route 0.0.0.0 0.0.0.0 10.0.0.17
fw1 set interface ethernet0/1 zone untrustset interface ethernet0/1.101 tag 101 zone dmzset interface ethernet0/1.102 tag 102 zone mgmtset interface ethernet0/2 zone trustset interface ethernet0/1 ip 10.0.0.1/28set interface ethernet0/1 manage-ip 10.0.0.2set interface ethernet0/1.101 ip 10.0.0.33/28set interface ethernet0/1.102 ip 10.0.0.49/28set interface ethernet0/2 ip 10.0.0.17/28set interface ethernet0/2 manage-ip 10.0.0.18set vrouter trust-vr route 0.0.0.0/0 interface ethernet0/1 gateway 10.0.0.12
fw2 set interface ethernet0/1 zone untrustset interface ethernet0/1.101 tag 101 zone dmzset interface ethernet0/1.102 tag 102 zone mgmtset interface ethernet0/2 zone trustset interface ethernet0/1 ip 10.0.0.1/28set interface ethernet0/1 manage-ip 10.0.0.3set interface ethernet0/1.101 ip 10.0.0.33/28set interface ethernet0/1.102 ip 10.0.0.49/28set interface ethernet0/2 ip 10.0.0.17/28set interface ethernet0/2 manage-ip 10.0.0.19set vrouter trust-vr route 0.0.0.0/0 interface ethernet0/1 gateway 10.0.0.12
outsw1 ! vlan 100name Outside! vlan 101name DMZ! vlan 102name Mgmt! interface GigabitEthernet1/0description To-Inet-rtr1switchport mode accessswitchport access vlan 100! interface GigabitEthernet1/1switchport mode trunkswitchport trunk encapsulation dot1q! interface GigabitEthernet1/3switchport mode trunkswitchport trunk encapsulation dot1qchannel-group 1 mode active! interface GigabitEthernet1/4switchport mode trunkswitchport trunk encapsulation dot1qchannel-group 1 mode active! interface Port-channel 1switchport mode trunkswitchport trunk encapsulation dot1q! interface vlan 102ip address 10.0.0.50 255.255.255.240! ip default-gateway 10.0.0.49
outsw2 ! vlan 100name Outside! vlan 101name DMZ! vlan 102name Mgmt! interface GigabitEthernet1/0description To-Inet-rtr2switchport mode accessswitchport access vlan 100! interface GigabitEthernet1/1switchport mode trunkswitchport trunk encapsulation dot1q! interface GigabitEthernet1/3switchport mode trunkswitchport trunk encapsulation dot1qchannel-group 1 mode active! interface GigabitEthernet1/4switchport mode trunkswitchport trunk encapsulation dot1qchannel-group 1 mode active! interface Port-channel 1switchport mode trunkswitchport trunk encapsulation dot1q! interface vlan 102ip 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 (а также избыточность) является такой же важной как избыточность на физическом уровне.