LINUX.ORG.RU
решено ФорумAdmin

Странная проблема с OSPF+iptables

 , ,


0

2

Добрый день! Начальством поставлена задача о замене помирающего сервера на новый. За просрок по задаче уже должен 29 литров пива. ;D Все настроенно, но есть одна проблема с OSPF и nat-правилами, а именно:

Есть роутер с ОС Ubuntu Server 16.04. На нем 2 интерфейса-один в Интернет с пулом адресов 188.94.xx.xx, второй для локальной сети с адресом 192.168.0.22. В сети есть еще 3 сервера с OSPF: 2 роутера с пулами адресов в Интернет и локальными адресами 192.168.0.21 и 192.168.0.4, 1 сервер-«корневой маршрутизатор» с локальным адресом 192.168.0.27. За серверами десятки локальных сетей. Сервера 192.168.0.4, 192.168.0.21 и 192.168.0.22 выводят все эти сети в Интернет. Поэтому nat обязателен.

При запуске скрипта с nat-правилами на сервере 192.168.0.22 не работает OSPF. В логах пишет следующее:

2017/03/29 16:36:32 OSPF: Link State Update: Neighbor[192.168.0.27] state Init is less than Exchange 2017/03/29 16:36:32 OSPF: Link State Update: Neighbor[192.168.0.21] state Init is less than Exchange 2017/03/29 16:37:02 OSPF: Link State Acknowledgment: Neighbor[192.168.0.27] state Init is less than Exchange 2017/03/29 16:37:02 OSPF: Link State Acknowledgment: Neighbor[192.168.0.21] state Init is less than Exchange

Конфиг OSPF: hostname pl-route

password quagga

enable password quagga

router ospf

ospf router-id 192.168.0.22

network 192.168.0.0/24 area 0

interface eth0

log file /var/log/quagga/ospfd.log

Конфиг Zebra:

hostname pl-route

password quagga

enable password quagga

log file /var/log/quagga/zebra.log

interface eth0

Скрипт с nat-правилами:

iptables -t nat -A POSTROUTING -s 0/0 -d 192.168.0.0/24 -j RETURN

iptables -t nat -A PREROUTING -s 0/0 -d 188.94.xx.xx -j NETMAP --to 192.168.0.0/24

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -j SNAT --to-source 188.94.xx.xx

Если скрипт с nat убрать при загрузке ОС, то OSPF начинает работать корректно. Как заставить OSPF работать с nat-правилами???


iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -j SNAT --to-source 188.94.xx.xx

Хорошо бы добавить уточнение "-o eth1" - натить на всех интерфейсах вредно.

или попробовать исключить протокол ospf из nat.

А еще хорошо бы посмотреть на реальный набор правил nat после загрузки системы...

vel ★★★★★
()

OSPFD + IPtables

Время идёт, а ничего не меняется.

Поэтому nat обязателен.

Жесть и скупость. Ставить зюзероутеры, с OSPF(!) и NAT :)

Я думал, это время давно прошло.

robot12 ★★★★★
()
Последнее исправление: robot12 (всего исправлений: 1)

Проблема решилась заменой правила

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -j SNAT --to-source 188.94.xx.xx

на

iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.0/24 -d 0/0 -j SNAT --to-source 188.94.xx.xx

iptables -t nat -A POSTROUTING -p udp -s 192.168.0.0/24 -d 0/0 -j SNAT --to-source 188.94.xx.xx

iptables -t nat -A POSTROUTING -p icmp -s 192.168.0.0/24 -d 0/0 -j SNAT --to-source 188.94.xx.xx

Спасибо.

Elait
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.