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

маршрутизация через несколько субинтерфейсов в debian

Мой вопрос так же прост, как и название, у меня есть debian 6, 2 NIC, 3 разные подсети в одном интерфейсе, вот так:

auto eth0
iface eth0 inet static
    address 192.168.106.254
    netmask 255.255.255.0

auto eth0:0
iface eth0:0 inet static
    address 172.19.221.81
    netmask 255.255.255.248

auto eth0:1
iface eth0:1 inet static
    address 192.168.254.1
    netmask 255.255.255.248

auto eth1
iface eth1 inet static
    address 172.19.216.3
    netmask 255.255.255.0
    gateway 172.19.216.13

eth0 подключен к коммутатору с 3 разными вланами, eth1 подключен к роутеру. Нет iptables DROP, поэтому весь трафик разрешен. Теперь, пропуская трафик через eth0 в порядке, прохождение трафика через eth0:0 в порядке, но, пропуская трафик через eth0:1 не работает, я могу пропинговать IP-адрес этого субинтерфейса с компьютера, на котором этот IP-адрес является шлюзом по умолчанию, но не могу получить доступ к серверам в подсети eth1 интерфейс, трафик не проходит, даже если я настроил iptables для регистрации всего трафика в FORWARD chain, и я вижу там трафик, но трафик на самом деле не проходит. И самое смешное в том, что я могу сделать все наоборот, то есть перейти от eth1 к eth0:1, RDP, telnet, ping и т. Д.,

поработав с iptable, мне удалось передать некоторый трафик из eth0:1 к eth1, iptables выглядят так:

iptables -t nat PREROUTING -d 192.168.254.1/32 -p tcp -m multiport --dports 25,110,5269 -j DNAT --to-destination 172.19.216.1
iptables -t nat PREROUTING -d 192.168.254.1/32 -p udp -m udp --dport 53 -j DNAT --to-destination 172.19.216.9
iptables -t nat PREROUTING -d 192.168.254.1/32 -p tcp -m tcp --dport 21 -j DNAT --to-destination 172.19.216.11

iptables -t nat POSTROUTING -s 172.19.216.0/24 -d 172.19.221.80/29 -j SNAT --to-source 172.19.221.81
iptables -t nat POSTROUTING -s 172.19.216.0/24 -d 192.168.254.0/29 -j SNAT --to-source 192.168.254.1
iptables -t nat POSTROUTING -s 172.19.216.0/24 -o eth0 -j SNAT --to-source 192.168.106.254

Дон, это работает, но это действительно головная боль, когда нужно сопоставить каждый порт с сервером, представьте, если я перенесу службу с сервера, так что теперь у меня есть сомнения:
может debian маршрутизировать через несколько подынтерфейсов ?? есть предел для этого ?? Если нет, то что я делаю не так, когда у меня такая же настройка с другими подсетями, и она работает нормально ?? без правил iptables в нат, это не работает

спасибо и надеюсь хорошие комментарии / ответы

МАРШРУТЫ в 172.19.216.3

root@dbf1:~# ip route
192.168.254.0/29 dev eth0  proto kernel  scope link  src 192.168.254.1
172.19.221.80/29 dev eth0  proto kernel  scope link  src 172.19.221.81
172.19.216.0/24 dev eth1  proto kernel  scope link  src 172.19.216.3
192.168.106.0/24 dev eth0  proto kernel  scope link  src 192.168.106.254
default via 172.19.216.13 dev eth1

Когда машина хочет отправить пакет в пункт назначения, для которого у нее нет маршрута, она пересылает его на свой шлюз по умолчанию. Машины, с которыми вы пытаетесь связаться, делают это с генерируемыми ими ответными пакетами. Если этот шлюз по умолчанию, который они используют, не знает, как связаться с этим компьютером, то будет казаться, что этот компьютер не отправляет трафик должным образом. Но это. Проблема в том, что ответы не возвращаются.

Это последовательность:

  1. Эта машина отправляет пакет на правильный компьютер.

  2. Машина назначения получает пакет и формирует ответ. IP-адресом ответа является источник полученного пакета.

  3. У конечной машины нет маршрута к месту назначения этого пакета, поскольку она не находится в локальной подсети. Таким образом, он перенаправляет его на свой маршрутизатор шлюза по умолчанию.

  4. Этот маршрутизатор не знает, как добраться до этого пункта назначения, поскольку он также не входит в его подсеть. Таким образом, он отправляет его через свой шлюз по умолчанию, вероятно, через Интернет.

Для правильной работы сети любое устройство, являющееся шлюзом по умолчанию любого компьютера, должно знать, как подключиться каждый локальная подсеть, которую может пожелать достичь любой из ее клиентов, или каждый из этих клиентов должен иметь свой собственный метод доступа к этой подсети.