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

Странная маршрутизация между двумя сетями

Мой вопрос кажется довольно простым, но я не могу просто осмыслить его. Моя установка такая:

Сервер под управлением RHEL 6.4. Имеет два сетевых интерфейса:

ib0: сеть Infiniband (пожалуйста, не спрашивайте почему :) 192.168.1.0/24, большинство серверов здесь. IP: 192.168.1.51

eth0: сеть Ethernet 192.168.3.0/24, здесь находятся конечные пользователи (и несколько серверов). IP: 192.168.3.51.

Этот сервер служит шлюзом между серверами и пользователями. В нем включена стандартная переадресация ip:

net.ipv4.ip_forward = 1

...и ничего больше. Работает нормально, нареканий нет.

Итак, теперь мне нужно сделать следующее: и пользователи из сети 192.168.3.0, и серверы из сети 192.168.1.0 должны получить доступ к внешней сети 1.0.0.0/16. Этой сетью управляет другой отдел - они развернули на своей стороне маршрутизатор и предоставили мне физическое соединение. Их маршрутизатор имеет IP 192.168.3.250.

Итак, я настроил статический маршрут на моем сервере шлюза следующим образом:

ip route add 1.0.0.0/16 via 192.168.3.250

... и мои конечные пользователи из сети 192.168.3.0 могут получить доступ к 1.0.0.0. Однако серверы из сети 192.168.1.0 не могут получить к нему доступ.

Я не очень хорошо разбираюсь в маршрутизации и работе в сети в целом, поэтому подозреваю, что мне следовало бы включить NAT для моей сети 192.168.1.0 (??), но моя голова начинает сильно болеть, когда я читаю руководство по iptables ... Кроме того, Дело в том, что этот сервер должен продолжать действовать как шлюз между Infiniband и сетями Ethernet, желательно с минимальными накладными расходами.

Итак, вопрос: как мне это сделать?

Итак, из-за бесчисленных ошибок удалось заставить его работать с помощью iptables NAT.

Вот строки конфигурации в моем / etc / sysconfig / iptables:

-A POSTROUTING -s 192.168.1.0/24 -d 1.0.0.0/16 -p tcp -o eth0 -j SNAT --to-source 192.168.3.51 
-A POSTROUTING -s 192.168.1.0/24 -d 1.0.0.0/16 -p udp -o eth0 -j SNAT --to-source 192.168.3.51

Это сработало. Надеюсь, что это кому-то поможет.