Классический дизайн сети выглядит следующим образом:
Классический подход включает разделение сети на уровни:
- Client Access - Подключение конечных устройств
- Distribution - Если коммутаторов доступа становится много, появляется Distribution Layer, который объединяет коммутаторы уровня Client Access. В случае территориального распределения, добавляются дополнительные коммутаторы Distribution Layer.
- Core Layer - объединяет всю сеть. К нему уже подключаются маршрутизаторы с каналами в WAN, Internet, IPSec
Главный вопрос, как это всё будет выглядеть с точки зрения STP?
Различие этих схем в том, что во втором варианте на всех аксесных коммутаторах живут все ВЛАН-ы.
Что делать, если пользователю понадобится находиться в одном ВЛАН-е, поверх L3?
Мы конечно можем выбрать правый вариант. Но в случаях, когда сеть настолько большая, что сегментирована на 3-м уровне, нам как раз понадобится VXLAN.
Следующим развитием является внедрение VXLAN, которая вводит понятия:
- Underlay network (опорная сеть) - то, как наша сеть устроена физически. Основа, на которую мы можем накладывать другие сервисы.
- Overlay network (наложенная сеть) - сервисы, которые живут поверх Underlay network.
VXLAN позволяет:
- L2 туннель поверх L3 IP сети. Подобно GRE, только инкапсулирует Ethernet фрейм, но не IP пакеты. В качестве транспорта UDP.
- Расширяет адресное пространство. Количество VLAN ограничено числом 4096, в то время как VXLAN id может быть до 16млн.
- Поскольку для передачи L2 используется L3, теперь не нужен STP, что позволяет использовать несколько путей для передачи L2.
- Оптимизация изучения MAC адресов, ARP запросов, - поскольку MAC адреса должны изучаться только на граничных устройствах.
- Поддержка multi-tenancy - аналог VRF. Позволяет использовать одинаковые VLAN id
VXLAN - Virtual eXtensible Local Area Network
VNID (VNI) - VXLAN Network ID, номер логической сети (аналог VLAN id). Для того, чтобы два хоста находились в одном широковещательном домене, они должны находиться в одной VNID.
VTEP - VXLAN Tunnel End Point, коммутаторы, которые терминируют туннель VXLAN.
VXLAN шлюз - VTEP может выступать в качестве шлюза L2 (простая коммутация) или шлюза L3 (перекладывать пакет из одного VXLAN в другой)
NVE - Network Virtual Edge - сущность самого туннеля. То как реализован сам туннель.
В данном примере у нас 3 VTEP-а.
К этим VTEP-ам подключены 3 хоста, у каждого из которых есть свои MAC и IP адреса.
Предположим, наша задача поместить все три хоста в одну подсеть.
Суть в том, что между VTEP-ами должна быть построена некая наложенная сеть(Overlay network), поэтому задачи VTEP-ов следующие:
- Где находятся хосты? В большинстве случаев хосты подключаются непосредственно в порт VTEP-а. Поэтому, как только от хоста придет пакет, сразу станет понятно где этот хост.
- VTEP-ы должны узнать об остальных VTEP-ах
- Передача трафика BUM (Broadcast, Unknown Unicast, Multicast). По сути либо передаётся несколько копий Unicast. Либо, если Underlay network позволяет, используется multicast на ней.
Итак, как VTEP-ы узнают друг о друге?
Это происходит через VTEP discovery:
- Flood&Learn - VTEP передаёт трафик в сеть и ждет ответа.
- BGP/EVPN - между всеми VTEP поднимается BGP. В рамках BGP передаётся управляющая информация.
Где находятся хосты?
Это происходит через Host Reachability:
Через BGP передаётся информация о подключенных хостах, либо используем Flood&Learn
BAM Handling - Передача трафика BUM (Broadcast, Unknown Unicast, Multicast). По сути либо передаётся несколько копий Unicast. Либо, если Underlay network позволяет, используется multicast на ней.
Что делать: VXLAN Routing или VXLAN Bridging
Это зависит от настроек - сделать одну VXLAN или несколько и настроить маршрутизацию между ними.
Шлюз может быть централизован(Centralised Gateway), либо распределен (Anycast Gateway).
При централизованном шлюзе пакет из vni30000 на vni30001 пойдет по L2 через центральный шлюз.
В случае распределенного на всех VTEP настраиваются несколько vni, и маршрутизация происходит на каждом.
Чаще всего используется распределенный шлюз.
Глобально таких сервисов два:
- Сервис 2-го уровня. Т.е. мы получаем виртуальный коммутатор
- Сервис 3-го уровня. В этом случае на уровне VXLAN будет шлюз 3 уровня.
Для этих двух типов сервисов бывают и разные шлюзы
Шлюз L2: Из VXLAN в VLAN
Шлюз L3: Из VXLAN в другой VXLAN или в VLAN
При работе сервиса 2-го уровня по сути VLAN-ы растягиваются посредством L2 VNI.
VLAN ассоциируется с VNI на кадом VTEP
Здесь у нас Host2 и Host4 подключены к разным VTEP, которые друг с другом как-то соединены. Для этих хостов мы создаём VNI A на обоих VTEP, а также ассоциацию VNI A с соответствующим VLAN. Таким образом мы получаем растянутый L2 сегмент.
Например пусть хост H2 находится в VLAN100, т.е. на порту подключения хоста есть настройка switch-port acces vlan 100.
Когда пакет от H2 попадет на порт коммутатора, он прийдет на коммутатор в рамках VLAN100.
Если VTEP поймет, что удаленный хост находится за VXLAN, такой пакет при передаче по сети, будет помечен номером VNI A.
Далее пакет VXLAN добегает до 2-го VTEP. VTEP снимает заголовки VXLAN, и отдает пакет в VLAN100.
Поскольку ассоциация VLAN id и VNI происходит независимо, на втором коммутаторе мы можем отдавать пакеты и в другой номер VLAN, т.е. разные VLAN можно объединить в одну VNI, т.е. в один широковещательный домен.
Если необходимо передать пакеты между устройствами, которые находятся в разных подсетях и в разных широковещательных доменах, потребуется L3 VNI.
На картинке L3 VNI помечен как VNI X.
Комментарии
При каком масштабе сети
При каком масштабе сети оправдано внедрение Vxlan? Какое количество сетевых устройств или сетей скажут, что пора?
Как только ваша сеть станет
Как только ваша сеть станет настолько большой, что понадобится её сегментировать на уровне L3
Добавить комментарий