LINUX.ORG.RU

Сообщения gnom111

 

туннель, нат, ping -I

Всем добра!

Делаю туннель между двумя компьютерами (A, B) между ними роутер R

A (eth0) -----------(enp0s1) R (enp0s2) --------- C (eth0)

A (eth0 secondary) ---- B (env1)

  • IP комп. A (eth0) — 192.168.1.1/24
  • IP комп. A (eth0 secondary) — 192.168.254.2/24
  • IP роутера R (enp0s1) — 192.168.1.254/24
  • IP роутера R (enp0s2) — 192.168.2.254/24
  • IP комп. C (eth0) — 192.168.2.1/24
  • IP комп. B (env1) — 192.168.254.1/24

на компьютере А создаю туннель следующей командой

ip tunnel add IPT mode ipip local 192.168.1.1 remote 192.168.2.1
ip link set dev IPT up
ip addr add 192.168.3.1/24 dev IPT
на компьютере C:
ip tunnel add IPT mode ipip local 192.168.2.1 remote 192.168.1.1
ip link set dev IPT up
ip addr add 192.168.3.254/24 dev IPT

итоговая маршрутная таблица компьютера A:

192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.1
192.168.3.0/24 dev IPT proto kernel scope link src 192.168.3.1
192.168.254.0/24 dev eth0 proto kernel scope link src 192.168.254.2

Всё работает,всё движется.

Но вопрос не про это :).

Вот чисто гипотетически. Не привязываясь к конкретной конфигурации и сфере применения.

вот если я делаю так на компьютере A:

iptables -t nat -A OUTPUT -o eth0 -j DNAT --to 192.168.254.1

и на том же компьютере A:

ping -I IPT 192.168.3.254 
я получаю отсутствие соответствующих пакетов на интерфейсе eth0 (комп. А). А ядро мне говорит, что у меня loop
Dead loop on virtual device IPT ...

Если я не ошибаюсь цепочка движения пакета с компьютера А будет:

local process (ping) — routing decision — ... — netfilter output (-o IPT) — netfilter postrouting — вход на псевдо устройство tun (IPT) — ( ipip инкапсуляция ) — выход tun (IPT) — routing decision — ... — netfilter output (-o eth0) — netfilter postrouting — arp (link layer) — ...

Адреса такие же.

Должно происходить сначала routing decision, а уже потом DNAT. Что заставляет пакеты исходящие из eth0 вернуться в IPT (в бесконечном loop)?

Помогите, пожалуйста! Посоветуйте, что почитать. Интересно разобраться.

Спасибо.

 

gnom111
()

RSS подписка на новые темы