iptables и NAT/переадресация портов не работают после перезагрузки сервера

iptables и NAT/переадресация портов не работают после перезагрузки сервера

Я новичок в NAT и iptables, у меня есть физический сервер под управлением CentOS 6 с установленным KVM, еще 2 Linux-бокса запущены как VM - VM2 и VM3, и их IP-адреса 192.168.122.2 и 192.168.122.3 соответственно. Поскольку у меня есть только один реальный IP-адрес, NAT используется для переадресации внешних запросов на приложение VM, например, порт 30022 на ssh VM3 (порт 22). После настройки все работает отлично, уже месяц, но затем, после того как я сделал обновление RAM и перезагрузил сервер, NAT/переадресация портов снова не работает.

Больше информации:

  • Iptables работает на хостовой ОС, но НЕ на гостевых ОС.
  • Хостовая ОС iptables настроила NAT следующим образом:
целевой prot opt ​​источник назначение
DNAT tcp -- везде и всюду tcp dpt:30022 to:192.168.122.3:22
DNAT tcp -- везде и всюду tcp dpt:20022 to:192.168.122.2:22(22)
  • Результат команды iptables -t nat -L -v -n:
pkts байт цель prot opt ​​in out источник назначение
6 304 LOG tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:30022 Флаги LOG 0 уровень 4 префикс ROUTE APP3
6 304 DNAT tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:30022 to:192.168.122.3:22
3 152 DNAT tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:20022 to:192.168.122.2:22
  • Это означает, что пакет обрабатывается правилом NAT, пока я пытаюсь подключиться по telnet к порту 30022 с моего локального ПК (отдельная сеть).

Несколько дней мучаюсь. Есть ли помощь?

решение1

Вам следует проверить, включена ли переадресация IP на вашем хосте с помощью cat /proc/sys/net/ipv4/ip_forward. Эта команда должна вывести 1. Если она не включена, вам следует включить ее с помощью echo 1 > /proc/sys/net/ipv4/ip_forward.

Связанный контент