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

Перенаправление трафика в контейнер

У меня есть туннельный интерфейс tunl0 с несколькими IP-адресами, на том же хосте есть контейнер.

Контейнер имеет интерфейс eth0 и много IP-адресов в нем. Каждый IP-адрес в интерфейсе eth0 контейнера прослушивает разные приложения.

Поэтому, когда определенный IP-адрес в tunl0 получает пакет, он должен быть отправлен на определенный IP-адрес контейнера.

Пример: хост -

tunl0@NONE: <NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
    inet 1.1.1.1/32 scope link tunl0
       valid_lft forever preferred_lft forever
    inet 1.1.1.2/32 scope link tunl0
       valid_lft forever preferred_lft forever

container -

eth0@if114: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
   valid_lft forever preferred_lft forever
inet 172.17.0.4/32 scope global eth0
   valid_lft forever preferred_lft forever

Когда пакет приходит на 1.1.1.1 туннеля, он должен быть перенаправлен на 172.17.0.4.

Я попробовал следующее правило iptable, но оно не сработало.

iptables -t nat -A PREROUTING -d 1.1.1.1 -p tcp --dport 80 -j DNAT --to-destination 172.17.0.4:80

Я пробовал и другие правила, но публиковать их здесь нет смысла.

Любая помощь или направление были бы очень признательны!

Спасибо