Есть проблема с пробросом пакета в локалку пришедшего на второй канал, если маршрут по умолчанию смотрит а первый канал. Ситуация классическая:
Сервер убунту 10.04. На нем:
локалка 192.168.60.0/24 подключенная к eth1(192.168.60.4)
Два канала инет:
1. ххх.ххх.ххх.32/29 заходит на eth0(xxx.xxx.xxx.35), eth0:1(xxx.xxx.xxx.36), шлюз у провайдера xxx.xxx.xxx.33
2. yyy.yyy.yyy.0/24 заходит на eth2(yyy.yyy.yyy.2), шлюз у провайдера yyy.yyy.yyy.1 (Он же является шлюзом по умолчанию).
Для работы через два канала сделано в iproute2 следующее:
# cat /etc/iproute2/rt_tables
255 local
254 main
253 default
0 unspec
332 flex.inet
333 rostelecom.inet
Настройка таблиц и маршрутов:
ip route flush table flex.inet
ip route flush table rostelecom.inet
ip route add xxx.xxx.xxx.32/29 dev eth0 src xxx.xxx.xxx.35 table flex.inet
ip route add default via xxx.xxx.xxx.33 table flex.inet
ip route add xxx.xxx.xxx.32/29 dev eth0 src xxx.xxx.xxx.35
ip rule add from xxx.xxx.xxx.35 table flex.inet
ip rule add from xxx.xxx.xxx.36 table flex.inet
ip route add yyy.yyy.yyy.0/24 dev eth2 src yyy.yyy.yyy.2 table rostelecom.inet
ip route add default via yyy.yyy.yyy.1 table rostelecom.inet
ip route add yyy.yyy.yyy.0/24 dev eth2 src yyy.yyy.yyy.2
ip rule add from yyy.yyy.yyy.2 table rostelecom.inet
ip route add 127.0.0.0/8 dev lo table flex.inet
ip route add 127.0.0.0/8 dev lo table rostelecom.inet
ip route add 192.168.60.0/24 dev eth1 table flex.inet
ip route add 192.168.60.0/24 dev eth1 table rostelecom.inet
ip route add yyy.yyy.yyy.0/24 dev eth2 table flex.inet
ip route add xxx.xxx.xxx.32/29 dev eth0 table rostelecom.inet
ip route flush cache
Оба интерфейса сервера доступны из интернет по обоим каналам и из локалки. Мне нужно пробросить порт RDP с двух внешних айпишников (35 и 36) на, соответственно два хоста в локалке (60.1 и 60.3). Для этого в iptables сделал следующее:
echo «1» > /proc/sys/net/ipv4/ip_forward
-A PREROUTING -d xxx.xxx.xxx.35/32 -i eth0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.60.1
-A PREROUTING -d xxx.xxx.xxx.36/32 -i eth0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.60.3
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -d 192.168.60.1/32 -i eth0 -j ACCEPT
-A FORWARD -d 192.168.60.3/32 -i eth0 -j ACCEPT
-A POSTROUTING -d 192.168.60.1/32 -j ACCEPT
-A POSTROUTING -d 192.168.60.3/32 -j ACCEPT
-A POSTROUTING -o eth0 -j SNAT --to-source xxx.xxx.xxx.35
-A POSTROUTING -o eth2 -j SNAT --to-source yyy.yyy.yyy.2
-A POSTROUTING -o eth1 -j SNAT --to-source 192.168.60.4
Проблема заключается в том, что проброс портов нормально работает только тогда, когда шлюз по умолчанию смотрит в xxx.xxx.xxx.33 а иначе - пакет приходит в цепочку PREROUTING, DNATится и потом уходит непонятно куда в FORWARD уже не попадая... Я понимаю, что проблема в роутинге, но где именно - ума не приложу. Буду очень благодарен за совет.


Ответ на:
комментарий
от nnz


Ответ на:
комментарий
от nnz

Ответ на:
комментарий
от vvp76


Ответ на:
комментарий
от nnz

Ответ на:
комментарий
от nnz

Ответ на:
комментарий
от vvp76

Ответ на:
комментарий
от nnz

Ответ на:
комментарий
от vvp76

Ответ на:
комментарий
от anonymous

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум IPtables и два канала (2004)
- Форум Прошу помощи в настройке маршрутизации (2015)
- Форум iptables masquerade 2 gw (2020)
- Форум iproute2 iptables - j mark (2011)
- Форум iptables, проброс портов, множество сеток (2019)
- Форум Маршрутизация на 2 внешних ip и iproute2 (2017)
- Форум Помогите с ошибками в правилах iptables (2017)
- Форум Два канала+Sip провайдер (2012)
- Форум Открыть 110 порт iptables (2012)
- Форум Опять iptables (2004)