karabanov
@karabanov
Системный администратор

Фовардинг не нужен для loopback интерфейса или я что-то упускаю?

Краткое вступление можно не читать - не интересно.
Машина получает доступ в интернет через туннель и для неё ещё выделена небольшая подсеть. Мне нужно запустить несколько тестовых сайтов на разных IP из этой небольшой подсети. Я бы мог использовать для этого IP с моей стороны туннеля, но он пренадлежит провайдеру и я не погу прописать для него PTR запись в DNS. Роутера у меня нет. Все крутится на одной машине, тоесть туннель терминируется на этой машине, тестовые сайты я буду поднимать на этой машине поэтому мне необходимо обойтись без роутера и затерминировать белый IP на loopbac-интерфейсе.
Конец краткого вступления, дальше надо читать.

В голове сидит аксиома гласящая, что если хочешь, чтоб трафик ходил между интерфейсами будь добр, включ форвардинг... Но вот что получается:

1. Форвардинг запрещён фаирволом
test@server:~$ sudo ip6tables -L -v -n
...

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

...


2. Форвардинг запрещён ядром
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.all.mc_forwarding = 0
net.ipv6.conf.default.forwarding = 0
net.ipv6.conf.default.mc_forwarding = 0
net.ipv6.conf.eth0.forwarding = 0
net.ipv6.conf.eth0.mc_forwarding = 0
net.ipv6.conf.he-ipv6.forwarding = 0
net.ipv6.conf.he-ipv6.mc_forwarding = 0
net.ipv6.conf.lo.forwarding = 0
net.ipv6.conf.lo.mc_forwarding = 0
net.ipv6.conf.sit0.forwarding = 0
net.ipv6.conf.sit0.mc_forwarding = 0
net.ipv6.conf.vlan2017.forwarding = 0
net.ipv6.conf.vlan2017.mc_forwarding = 0
net.ipv6.conf.vlan24.forwarding = 0
net.ipv6.conf.vlan24.mc_forwarding = 0


3. При этом делаю так
sudo ip -6 a a 2001:470:26:10b::1/128 dev lo
sudo ip -6 a a 2001:470:26:10b::2/128 dev lo
sudo ip -6 a a 2001:470:26:10b::3/128 dev lo


4. Получается так
test@server:~$ sudo ip -6 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 
    inet6 2001:470:26:10b::1/128 scope global 
       valid_lft forever preferred_lft forever
    inet6 2001:470:26:10b::3/128 scope global 
       valid_lft forever preferred_lft forever
    inet6 2001:470:26:10b::2/128 scope global 
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host


5. Пингую Google
test@server:~$ ping6 ipv6.google.com -I 2001:470:26:10b::3
PING ipv6.google.com(li-in-x65.1e100.net) from 2001:470:26:10b::3 : 56 data bytes
64 bytes from li-in-x65.1e100.net: icmp_seq=1 ttl=53 time=109 ms
64 bytes from li-in-x65.1e100.net: icmp_seq=2 ttl=53 time=109 ms
64 bytes from li-in-x65.1e100.net: icmp_seq=3 ttl=53 time=108 ms
^C
--- ipv6.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 108.460/109.112/109.549/0.541 ms
test@server:~$


6. Вижу в tcpdump
test@server:~$ sudo tcpdump -n -i he-ipv6
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on he-ipv6, link-type RAW (Raw IP), capture size 262144 bytes
20:13:17.031669 IP6 2001:470:26:10b::3 > 2a00:1450:4010:c05::65: ICMP6, echo request, seq 1, length 64
20:13:17.141108 IP6 2a00:1450:4010:c05::65 > 2001:470:26:10b::3: ICMP6, echo reply, seq 1, length 64
20:13:18.033168 IP6 2001:470:26:10b::3 > 2a00:1450:4010:c05::65: ICMP6, echo request, seq 2, length 64
20:13:18.142421 IP6 2a00:1450:4010:c05::65 > 2001:470:26:10b::3: ICMP6, echo reply, seq 2, length 64
20:13:19.034583 IP6 2001:470:26:10b::3 > 2a00:1450:4010:c05::65: ICMP6, echo request, seq 3, length 64
20:13:19.142983 IP6 2a00:1450:4010:c05::65 > 2001:470:26:10b::3: ICMP6, echo reply, seq 3, length 64


Форвардинг не нужен для lo или я что-то упускаю?
  • Вопрос задан
  • 346 просмотров
Решения вопроса 1
цепочка FORWARD работает когда из интерфейса в интерфейс, но не тот трафик, который порожден самим хостом (так же и forwarding в ядре)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы