Если посмотреть конфиг любого файрвола, то, скорее всего, мы увидим простыню с кучей IP-адресов, портов, протоколов и подсетей. Так классически реализуются политики сетевой безопасности для доступа пользователей к ресурсам. Сначала в конфиге стараются поддерживать порядок, но потом сотрудники начинают переходить из отдела в отдел, сервера размножаться и менять свои роли, появляются доступы для разных проектов туда, куда им обычно нельзя, и получаются сотни неизвестных козьих тропок.
Около каких-то правил, если повезет, прописаны комментарии «Попросил сделать Вася» или «Это проход в DMZ». Сетевой администратор увольняется, и все становится совсем непонятно. Потом кто-то решил почистить конфиг от Васи, и упал SAP, потому что когда-то Вася просил этот доступ для работы боевого SAP.
Сегодня я расскажу про решение VMware NSX, которое помогает точечно применять политики сетевого взаимодействия и безопасности без неразберихи в конфигах файрвола. Покажу, какие новые функции появились по сравнению с тем, что было раньше у VMware в этой части.
VMWare NSX – платформа виртуализации и обеспечения безопасности сетевых сервисов. NSX решает задачи маршрутизации, коммутации, балансировки нагрузки, файрвола и умеет много другого интересного.
NSX – это преемник собственного продукта VMware vCloud Networking and Security (vCNS) и приобретенного Nicira NVP.
От vCNS к NSX
Раньше у клиента в облаке, построенном на VMware vCloud, была отдельная виртуальная машина vCNS vShield Edge. Он выполнял роль пограничного шлюза, где можно было настроить множество сетевых функций: NAT, DHCP, Firewall, VPN, балансировщика нагрузки и пр. vShield Edge ограничивал взаимодействие виртуальной машины с внешним миром согласно правилам, прописанным в Firewall и NAT. Внутри сети виртуальные машины общались между собой свободно в пределах подсетей. Если очень хочется разделять и властвовать трафиком, можно сделать отдельную сеть для отдельных частей приложений (разных виртуальных машин) и прописать в файрволе соответствующие правила по их сетевому взаимодействию. Но это долго, сложно и неинтересно, особенно когда у вас несколько десятков виртуальных машин.
В NSX VMware реализовала концепцию микросегментации с помощью распределенного файрвола (distributed firewall), встроенного в ядро гипервизора. В нем прописываются политики безопасности и сетевого взаимодействия не только для IP- и MAC-адресов, но и для других объектов: виртуальных машин, приложений. Если NSX развернут внутри организации, то такими объектами могут стать пользователь или группа пользователей из Active Directory. Каждый такой объект превращается в микросегмент в своем контуре безопасности, в нужной подсети, со своей уютненькой DMZ :).
Раньше периметр безопасности был один на весь пул ресурсов, защищался пограничным коммутатором, а с NSX можно оградить от лишних взаимодействий отдельную виртуальную машину даже в пределах одной сети.
Политики безопасности и сетевого взаимодействия адаптируются, если объект переезжает в другую сеть. Например, если мы перенесем машину с базой данных в другой сетевой сегмент или даже в другой связанный виртуальный дата-центр, то правила, прописанные для этой виртуальной машины, продолжат действовать безотносительно ее нового положения. Сервер приложений по-прежнему сможет взаимодействовать с базой данных.
На смену самому пограничному шлюзу vCNS vShield Edge пришел NSX Edge. У него есть весь джентльменский набор старого Edge плюс несколько новых полезных функций. Про них и пойдет речь дальше.
Что нового у NSX Edge?
Функциональность NSX Edge зависит от редакции NSX. Всего их пять: Standard, Professional, Advanced, Enterprise, Plus Remote Branch Office. Все новое и интересное можно увидеть только начиная с Advanced. В том числе и новый интерфейс, который до полного перехода vCloud на HTML5 (VMware обещает лето 2019-го) открывается в новой вкладке.
Firewall. В качестве объектов, к которым будут применяться правила, можно выбрать IP-адреса, сети, интерфейсы шлюза и виртуальные машины.
DHCP. Помимо настройки диапазона IP-адресов, которые будут автоматически выдаваться виртуальным машинам этой сети, в NSX Edge стали доступны функции Binding и Relay.
Во вкладке Bindings можно привязать MAC-адрес виртуальной машины к IP-адресу, если нужно чтобы IP-адрес не менялся. Главное, чтобы этот IP-адрес не входил в DHCP Pool.
Во вкладке Relay настраивается ретрансляция DHCP-сообщений DHCP-серверам, которые находятся за пределами вашей организации в vCloud Director, в том числе и DHCP-серверам физической инфраструктуры.
Маршрутизация. У vShield Edge можно было настраивать только статическую маршрутизацию. Здесь появилась динамическая маршрутизация с поддержкой протоколов OSPF и BGP. Также стали доступны настройки ECMP (Active-active), а значит и аварийное переключение типа «активный-активный» на физические маршрутизаторы.
Настройка OSPF
Настройка BGP
Еще из нового – настройка передачи маршрутов между различными протоколами,
перераспределение маршрутов (route redistribution).
L4/L7 Балансировщик нагрузки. Появился X-Forwarded-For для заголовка HTTPs. Без него все плакали. Например, у вас есть сайт, который вы балансируете. Без проброса этого заголовка все работает, но в статистике веб-сервера вы видели не IP посетителей, а IP балансировщика. Теперь все стало правильно.
Также во вкладке Application Rules теперь можно добавлять скрипты, которые будут напрямую управлять балансировкой трафика.
VPN. В дополнение к IPSec VPN, NSX Edge поддерживает:
- L2 VPN, позволяющий растянуть сети между географически разнесенными площадками. Такой VPN нужен, например, чтобы при переезде на другую площадку виртуальная машина оставалась в той же подсети и сохраняла IP-адрес.
- SSL VPN Plus, который позволяет пользователям подключаться удаленно к корпоративной сети. На уровне vSphere такая функция была, а вот для vCloud Director это новшество.
SSL-сертификаты. На NSX Edge теперь можно поставить сертификаты. Это снова к вопросу, кому нужен был балансировщик без сертификата для https.
Группы объектов (Grouping Objects). В этой вкладке как раз задаются группы объектов, для которых будут действовать те или иные правила сетевого взаимодействия, например правила файрвола.
Этими объектами могут быть IP- и MAC-адреса.
Здесь также указан список сервисов (сочетание протокол-порт) и приложений, которые можно использовать при составлении правил файрвола. Новые сервисы и приложения добавлять может только администратор портала vCD.
Статистика. Статистика по подключениям: трафик, который проходит через шлюз, файрвол и балансировщик.
Статус и статистику по каждому туннелю IPSEC VPN и L2 VPN.
Логирование. Во вкладке Edge Settings можно задать сервер для записи логов. Логирование работает для DNAT/SNAT, DHCP, Firewall, маршрутизации, балансировщика, IPsec VPN, SSL VPN Plus.
Для каждого объекта/сервиса доступны следующие типы оповещений:
— Debug
— Alert
— Critical
— Error
— Warning
— Notice
— Info
Размеры NSX Edge
В зависимости от решаемых задач и объемов VMware рекомендует создавать NSX Edge следующих размеров:
NSX Edge (Compact) |
NSX Edge (Large) |
NSX Edge (Quad-Large) |
NSX Edge (X-Large) |
|
vCPU |
1 |
2 |
4 |
6 |
Memory |
512MB |
1GB |
1GB |
8GB |
Disk |
512MB |
512MB |
512MB |
4.5GB + 4GB |
Назначение |
Одно приложение, тестовый дата-центр |
Небольшой или средний дата-центр |
Нагруженный файрвол |
Балансировка нагрузки на уровне L7 |
Ниже в таблице – рабочие метрики сетевых служб в зависимости от размера NSX Edge.
NSX Edge (Compact) |
NSX Edge (Large) |
NSX Edge (Quad-Large) |
NSX Edge (X-Large) |
|
Interfaces |
10 |
10 |
10 |
10 |
Sub Interfaces (Trunk) |
200 |
200 |
200 |
200 |
NAT Rules |
2,048 |
4,096 |
4,096 |
8,192 |
ARP Entries Until Overwrite |
1,024 |
2,048 |
2,048 |
2,048 |
FW Rules |
2000 |
2000 |
2000 |
2000 |
FW Performance |
3Gbps |
9.7Gbps |
9.7Gbps |
9.7Gbps |
DHCP Pools |
20,000 |
20,000 |
20,000 |
20,000 |
ECMP Paths |
8 |
8 |
8 |
8 |
Static Routes |
2,048 |
2,048 |
2,048 |
2,048 |
LB Pools |
64 |
64 |
64 |
1,024 |
LB Virtual Servers |
64 |
64 |
64 |
1,024 |
LB Server / Pool |
32 |
32 |
32 |
32 |
LB Health Checks |
320 |
320 |
320 |
3,072 |
LB Application Rules |
4,096 |
4,096 |
4,096 |
4,096 |
L2VPN Clients Hub to Spoke |
5 |
5 |
5 |
5 |
L2VPN Networks per Client/Server |
200 |
200 |
200 |
200 |
IPSec Tunnels |
512 |
1,600 |
4,096 |
6,000 |
SSLVPN Tunnels |
50 |
100 |
100 |
1,000 |
SSLVPN Private Networks |
16 |
16 |
16 |
16 |
Concurrent Sessions |
64,000 |
1,000,000 |
1,000,000 |
1,000,000 |
Sessions/Second |
8,000 |
50,000 |
50,000 |
50,000 |
LB Throughput L7 Proxy) |
2.2Gbps |
2.2Gbps |
3Gbps |
|
LB Throughput L4 Mode) |
6Gbps |
6Gbps |
6Gbps |
|
LB Connections/s (L7 Proxy) |
46,000 |
50,000 |
50,000 |
|
LB Concurrent Connections (L7 Proxy) |
8,000 |
60,000 |
60,000 |
|
LB Connections/s (L4 Mode) |
50,000 |
50,000 |
50,000 |
|
LB Concurrent Connections (L4 Mode) |
600,000 |
1,000,000 |
1,000,000 |
|
BGP Routes |
20,000 |
50,000 |
250,000 |
250,000 |
BGP Neighbors |
10 |
20 |
100 |
100 |
BGP Routes Redistributed |
No Limit |
No Limit |
No Limit |
No Limit |
OSPF Routes |
20,000 |
50,000 |
100,000 |
100,000 |
OSPF LSA Entries Max 750 Type-1 |
20,000 |
50,000 |
100,000 |
100,000 |
OSPF Adjacencies |
10 |
20 |
40 |
40 |
OSPF Routes Redistributed |
2000 |
5000 |
20,000 |
20,000 |
Total Routes |
20,000 |
50,000 |
250,000 |
250,000 |
Из таблицы видно, что балансировку на NSX Edge для продуктивных сценариев рекомендуется организовывать, только начиная с размера Large.
На сегодня у меня все. В следующих частях подробно пройдусь по настройке каждой сетевой службы NSX Edge.
Комментарии (6)
Jaizer
13.12.2018 12:34Есть пара вопросов:
1) Тестировали ли реальную производительность FW? 9,7Gbit это imix?
2) Я так понимаю, поддержки ipv6 до сих пор нет?msolovyev Автор
13.12.2018 12:39В части тестирования. Есть продуктивный NSX Edge (Large, HA), через который льется до 4 Гбит траффика — это работает стабильно более полугода. Тесты на производительность в разных сценариях не проводили. Их результаты будет сложно отделить от конкретных сетевых карт, их драйверов, особенностей апстрим свичей, билда ESXi. Поэтому верим написанному в источнике, нет оснований не доверять :)
WW3
13.12.2018 16:23Спасибо за статью!
Но хочу заметить, что логирование в vCloud не доступно для Firewall (это касается HTML портала) и для DHCP.
dmitryzhechkov
Спасибо за статью! Небольшое дополнение к разделу про балансировщик. Опция «X-Forwarder-For» актуальна только в случае когда эдж с сервисом балансировки подключен режиме one-arm. Балансировщик NSX также поддерживает режим подключения inline («в разрыв»). При таком подключении балансировщик настраивается в режиме Transparent и SNAT на нем не работает, соответственно IP-адреса клиентов сохраняются прямо в IP-заголовке и нет необходимости использовать «X-Forwarder-For».
msolovyev Автор
Спасибо за дополнение!