Краткое вступление можно не читать - не интересно.
Машина получает доступ в интернет через туннель и для неё ещё выделена небольшая подсеть. Мне нужно запустить несколько тестовых сайтов на разных 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 или я что-то упускаю?