Networking

路由問題 IPv6 客戶端/伺服器,其中伺服器具有本地地址和隧道地址

  • September 28, 2011

我一直在嘗試讓 IPv6 在我的 Tap OpenVPN 網路上執行。伺服器已經有 IPv6,但是它只有 /64,可用的最大範圍是 /116(這會破壞 autoconf)。我從 he.net 獲得 6-in-4 /48 來為我的 VPN 提供地址。

IPv6 隧道端點

Server IPv6 Address:2001:470:xxxx:xxxx::1/64
Client IPv6 Address:2001:470:xxxx:xxxx::2/64

路由 IPv6 前綴

Routed 2001:470:yyyy::/48:

我的網路結構(網際網路 => 伺服器 => 客戶端)是:

Internet
||
OpenVPN server
eth0 (Native ipv6): 2600:3c01::xxxx:xxxx:xxxx:xxxx/64
he-ipv6 (6-in-4): 2001:470:xxxx:xxxx::2/64
tap0 (VPN): 2001:470:yyyy:zzzz::1/64
||
OpenVPN client
wlan0 (ipv4)
tap0 (VPN - autconf): 2001:470:yyyy:zzzz:wwww:wwww:wwww:wwww/64

伺服器配置:

server # ip -6 route
2001:470:xxxx:xxxx::/64 via :: dev he-ipv6  proto kernel  metric 256 
2001:470:yyyy:zzzz::/64 dev tap0  proto kernel  metric 256 
2600:3c01::xxxx:xxxx:xxxx:xxxx dev eth0  proto kernel  metric 256 
fe80::/64 dev eth0  proto kernel  metric 256 
fe80::/64 dev tap0  proto kernel  metric 256 
fe80::/64 via :: dev he-ipv6  proto kernel  metric 256 
default dev he-ipv6  metric 1024 
default via fe80::xxxx:xxxx:xxxx:xxxx dev tap0  proto kernel  metric 1024  expires 4748sec

客戶端配置:

client # ip -6 route                                           
2001:470:xxxx:xxxx::/64 via 2001:470:yyyy:zzzz::1 dev tap0  metric 1 
2001:470:yyyy:zzzz::/64 dev tap0  proto kernel  metric 256  expires 86388sec
fe80::/64 dev wlan0  proto kernel  metric 256 
fe80::/64 dev tap0  proto kernel  metric 256 
default via fe80::xxxx:xxxx:xxxx:xxxx dev tap0  proto kernel  metric 1024  expires 5383sec hoplimit 64

Ping 結果

Internet => 2600:3c01::xxxx:xxxx:xxxx:xxxx           Works
Internet => 2001:470:yyyy:zzzz::1                    Works
Internet => 2001:470:yyyy:zzzz:wwww:wwww:wwww:wwww   Timed Out

Server => 2600:3c01::xxxx:xxxx:xxxx:xxxx             Works
Server => 2001:470:yyyy:zzzz::1                      Works
Server => 2001:470:yyyy:zzzz:wwww:wwww:wwww:wwww     Works
Server => 2404:6800:4006:802::1011 (ipv6.google.com) Works

Client => 2600:3c01::xxxx:xxxx:xxxx:xxxx             Works
Client => 2001:470:yyyy:zzzz::1                      Works
Client => 2001:470:yyyy:zzzz:wwww:wwww:wwww:wwww     Works
Client => 2404:6800:4006:802::1011 (ipv6.google.com) Destination unreachable: Address unreachable

路由應該是什麼,以便客戶端可以與 ipv6 正常聯機?

我知道客戶端上應該有 dev tap0 的預設路由,但是我嘗試過的網關都沒有工作。我一直在嘗試解決這個問題(通過研究和實驗),但是我還沒有找到可行的解決方案(儘管似乎很接近)。

我最終改變了設置,所以這個問題不再適用。

但是,我認為您需要確保核心已設置為為所有設備轉發 IPv6 數據包。

您確定問題出在客戶端而不是伺服器上嗎?客戶端路線看起來不錯。到 ipv6.google.com 的跟踪路由是否到達 2001:470:yyyy:zzzz::1?如果確實如此,那麼 IPv6 流量將使用 VPN 作為其預設網關,並且您的客戶端路由已全部設置。

我認為問題可能是在伺服器上的 tap0 和 he-ipv6 之間轉發數據包。我對 OpenVPN 不是很熟悉,但通常這種事情除了路由表之外還受策略控制。

我認為 OpenVPN 使用 iptables,因此允許在兩個 ipv6 介面之間雙向轉發需要這樣的東西。

iptables -I FORWARD -i tap0 -o he-ipv6 -j ACCEPT
iptables -I FORWARD -i he-ipv6 -o tap0 -j ACCEPT

引用自:https://serverfault.com/questions/313276