Я пытаюсь маршрутизировать трафик IPv6 через туннель vpn. Таким образом, я смогу использовать IPv6 в сети, которая не поддерживает IPv6.
У меня есть VPS, которому назначен блок IPv6. Часть этого блока я хочу использовать для клиентов openvpn. Я имел в виду диапазон 2001:db8::111:800:0/112
(префикс анонимный), поскольку openvpn поддерживает только / 64 и / 112 в качестве подсетей.
IPv6 через туннель уже работает, с клиента я могу пинговать сервер ( 2001:db8::111:800:1
), а также интерфейсы на сервере ( 2001:db8::111:100:100
и 2001:db8:216:3dfa:f1d4:81c0
).
Хотя, когда я пытаюсь пинговать google.com с клиента, я не получаю ответ (таймаут пинга). Чтобы устранить эту проблему, я использовал tcpdump для захвата трафика на сервере, и я вижу, что пакеты ping выходят, но ответов не возвращается. Добавление правил регистрации в ip6tables показывает то же самое, пакеты уходят, но ничего не приходит.
Я использовал онлайн-инструмент traceroute, который получает тайм-аут с моего сервера. Я также попытался установить ip непосредственно на интерфейсе, что в результате делает ip ( 2001:db8::111:800:1001
) доступным, поэтому я считаю, что это проблема маршрутизации.
Я включил пересылку через ipv6 /proc/sys/net/ipv6/conf/all/forwarding
. У ip6tables есть политика допуска для всех цепочек.
Мой вопрос заключается в том, что именно нужно для Linux, чтобы принять этот пакет для IP, который не назначен интерфейсу, и направить его дальше? Просто существующий маршрут кажется недостаточным.
Вот настройка для моего клиента и сервера. Пожалуйста, дайте ему знать, если вам нужна дополнительная информация.
клиент
# ip -6 addresses
10: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qlen 100
inet6 2001:db8::111:800:1001/112 scope global
valid_lft forever preferred_lft forever
# ip -6 routes
2001:db8::111:800:0/112 dev tun0 proto kernel metric 256
2000::/3 dev tun0 metric 1024
сервер
# ip -6 address
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2001:db8:216:3dfa:f1d4:81c0/64 scope global dynamic
valid_lft 86254sec preferred_lft 14254sec
inet6 2001:db8::111:100:100/128 scope global
valid_lft forever preferred_lft forever
12: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qlen 100
inet6 2001:db8::111:800:1/112 scope global
valid_lft forever preferred_lft forever
# ip -6 route
2001:db8::111:100:100 dev eth0 proto kernel metric 256
2001:db8::111:800:0/112 dev tun0 proto kernel metric 256
2001:db8::/64 dev eth0 proto kernel metric 256 expires 86194sec
default via fe80::230:48ff:fe94:d6c5 dev eth0 proto ra metric 1024 expires 1594sec
TRACE
целевую таблицу iptables (возможно, не так много здесь) ip neighbour
, и ip route get
. Также уточните, пожалуйста, кто пингует google.ca
.
POSTROUTING ... MASQUERADE
вnat
таблице. Но я не уверен, что полностью понимаю. Вы пытаетесь туннелировать трафик IPv6? Если да, есть ли у вас соответствующие объекты?-p ipv6
Разрешены ли пакеты в правилах IPv4 (!)?