Назад | Перейти на главную страницу

Публичный IP за брандмауэром NAT

У меня есть брандмауэр NAT Linux, обслуживающий инфраструктуру виртуальных машин. Прямо сейчас все виртуальные машины используют NAT, но я бы хотел, чтобы некоторые из них использовали общедоступный IP-адрес без NAT. У меня диапазон IP: 208.x.x.129-140, подсеть 255.255.255.240. Прямо сейчас эти IP-адреса находятся на WAN-интерфейсе межсетевого экрана. Я бы хотел переместить несколько IP за брандмауэр.

Могу ли я изменить маршрут только на нескольких из этих IP-адресов? Мне нужно изменить маску подсети?

Вы можете сделать это, сделав подсеть меньшего размера. Так, например, если у вас есть сеть / 24, вы можете выделить небольшой блок из этой подсети, такой как сеть / 29.

Например, если 8.8.8.0/24 была ваша общедоступная сеть. Вы можете использовать второй интерфейс с 8.8.8.240/29. Затем этому интерфейсу будет назначен 8.8.8.241, который будет шлюзом для клиентов. Тогда у вас будет 5 оставшихся ips, которые вы можете использовать.

[kbrandt@alpine: ~] ipcalc 8.8.8.240/29
Address:   8.8.8.240            00001000.00001000.00001000.11110 000
Netmask:   255.255.255.248 = 29 11111111.11111111.11111111.11111 000
Wildcard:  0.0.0.7              00000000.00000000.00000000.00000 111
=>
Network:   8.8.8.240/29         00001000.00001000.00001000.11110 000
HostMin:   8.8.8.241            00001000.00001000.00001000.11110 001
HostMax:   8.8.8.246            00001000.00001000.00001000.11110 110
Broadcast: 8.8.8.247            00001000.00001000.00001000.11110 111
Hosts/Net: 6                     Class A

Даже если у вас может быть сеть / 24 на другом интерфейсе, который перекрывается с / 29, это не имеет значения, потому что более конкретный (вы можете подумать о нем как о меньшем) маршрут всегда выигрывает. Имейте в виду, что при этом вы теряете 2 используемых IP-адреса, один для сети и один для вещания.

Изучение подсети - полезный навык, у нас есть свой собственный мега ответ на этот вопрос в Как работает подсети IPv4?.


Другой вариант - не использовать NAT для IP-блоков и использовать NAT только для определенных IP-адресов. Это нормально работает, потому что правила NAT будут иметь приоритет, поскольку они выполняются перед маршрутизацией.

Предполагая, что у вас> 1 IP, вы можете сделать простую вещь: открыть все порты для внутреннего IP (известного как NAT 1to1) и использовать FW сервера для фильтрации. Вы можете передать все IP-адреса через локальную сеть, но для этого нам необходимо знать, какой у вас маршрутизатор.