Що я намагаюся зробити - це прокласти трафік 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 від клієнта, я не отримаю відповіді (timeout time ping). Щоб налагодити цю проблему, я використав 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 raw target (можливо, тут не так вже й багато) ip neighbour
, і ip route get
. Також, будь ласка, вкажіть, хто пінг пінг google.ca
.
POSTROUTING ... MASQUERADE
вnat
таблиці. Але я не впевнений, що розумію повністю. Ви намагаєтесь тунелювати трафік IPv6? Якщо так, чи є у вас створені відповідні засоби? Чи-p ipv6
дозволені пакети в правилах IPv4 (!)?