Маршрутизация трафика в корпоративную сеть через VLAN
Для маршрутизации трафика через VLAN на стыке корпоративной сети и сети Cloud Network нужно развернуть физический маршрутизатор, который принимает пакеты от внешних сетей на разных VLAN ID. Например, можно развернуть общую внешнюю сеть на VLAN ID 4005 и создать провайдерские внешние сети для проектов под VLAN ID 4011 и 4012. При этом физически в маршрутизатор от всех внешних сетей можно подключить один кабель, который является trunk-портом.
Преимущества:
- Можно расширять количество внешних сетей путем выделения новых VLAN ID.
- Весь трафик идет по одному каналу (избыточному и отказоустойчивому). При необходимости можно добавить второй.
- Простота конфигурации.
Недостатки:
- VLAN ID могут закончиться при активном использовании, особенно с учетом того, что VLAN ID нужны и в корпоративной сети.
- VLAN ID могут конфликтовать с VLAN ID, которые назначает ML2-плагин для внутренних сетей.
Перед настройкой маршрутизации трафика через VLAN определите:
- VLAN ID для внешней сети (
<VLAN_ID_ВНЕШНЕЙ_СЕТИ>). - Подсеть для внешней сети (
<CIDR_ВНЕШНЕЙ_ПОДСЕТИ>). - IP-адрес физического маршрутизатора в этой подсети (
<IP-АДРЕС_ШЛЮЗА>). - Прочие параметры: тип внешней сети, DNS-серверы и т.д.
-
Создайте внешнюю сеть с VLAN-инкапсуляцией:
# openstack network create \--name <ИМЯ_ВНЕШНЕЙ_СЕТИ> \--provider-network-type vlan \--provider-physical-network vlan \--provider-segment <VLAN_ID_ВНЕШНЕЙ_СЕТИ> \--external \--mtu 1350 \--share | --no-share \--enable-port-security \--project <ID_ПРОЕКТА>Подробнее о создании сети — в разделе Создание сети.
-
Создайте подсеть в этой сети, указав IP-адрес физического маршрутизатора:
# openstack subnet create \--network <ID_ВНЕШНЕЙ_СЕТИ> \--name <ИМЯ_ПОДСЕТИ> \--subnet-range <CIDR_ВНЕШНЕЙ_ПОДСЕТИ> \--gateway <IP-АДРЕС_ШЛЮЗА> \--dns-nameserver <IP-АДРЕС_DNS_СЕРВЕРА> \--allocation-pool start=<IP-АДРЕС>,end=<IP-АДРЕС> \--enable-dhcp \--project <ID_ПРОЕКТА>Подробнее о создании подсети — в разделе Создание подсети.
-
На физическом маршрутизаторе создайте VLAN-интерфейс.
Пример для маршрутизатора на Linux:
# ip a show bond1.<VLAN_ID_ВНЕШНЕЙ_СЕТИ><BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1350 qdisc noqueue state UP group default qlen 1000link/ether <MAC-АДРЕС_ШЛЮЗА> brd ff:ff:ff:ff:ff:ffinet <IP-АДРЕС_ШЛЮЗА> scope global bond1.<VLAN_ID_ВНЕШНЕЙ_СЕТИ>valid_lft forever preferred_lft foreverinet6 fe80::<MAC-АДРЕС_ШЛЮЗА>/64 scope linkvalid_lft forever preferred_lft foreverТрафик, направленный на IP-адрес физического маршрутизатора (
<IP-АДРЕС_ШЛЮЗА>) в VLAN<VLAN_ID_ВНЕШНЕЙ_СЕТИ>, попадет на корпоративный маршрутизатор и далее в корпоративную сеть.
Никаких дополнительных настроек на стороне Neutron не требуется — ВМ, подключенные к этой внешней сети, будут автоматически получать доступ к корпоративной сети через физический маршрутизатор.