Linux

轉發 IPv6 流量

  • December 20, 2012

如何將 IPv6 流量從我的 tun0 介面轉發到 eth0 介面?

如果配置:

eth0      Link encap:Ethernet  HWaddr 00:16:3E:12:77:54  
         inet addr:208.111.39.160  Bcast:208.111.39.255  Mask:255.255.255.0
         inet6 addr: 2607:f740:0:3f::eda/64 Scope:Global
         inet6 addr: fe80::216:3eff:fe12:7754/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:65590 errors:0 dropped:499 overruns:0 frame:0
         TX packets:40111 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:13246038 (12.6 MiB)  TX bytes:28807669 (27.4 MiB)
         Interrupt:29 

lo        Link encap:Local Loopback  
         inet addr:127.0.0.1  Mask:255.0.0.0
         inet6 addr: ::1/128 Scope:Host
         UP LOOPBACK RUNNING  MTU:16436  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
         inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
         inet6 addr: 2607:f740:44:22::8/64 Scope:Global
         UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
         RX packets:16876 errors:0 dropped:0 overruns:0 frame:0
         TX packets:16504 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:100 
         RX bytes:2235766 (2.1 MiB)  TX bytes:7680377 (7.3 MiB)

我啟用了轉發:

[root@baobei ~]# sysctl net.ipv6.conf.all.forwarding
net.ipv6.conf.all.forwarding = 1

防火牆:

ip6tables -F INPUT
ip6tables -F FORWARD
ip6tables -F OUTPUT
ip6tables -F 

ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT

echo -n "1" >/proc/sys/net/ipv6/conf/all/forwarding
echo -n "1" >/proc/sys/net/ipv6/conf/all/proxy_ndp
echo -n "0" >/proc/sys/net/ipv6/conf/all/autoconf
echo -n "0" >/proc/sys/net/ipv6/conf/all/accept_ra
ip6tables -A INPUT -p icmpv6 -j ACCEPT
ip6tables -A FORWARD -m state --state NEW -i tun0 -o eth0 -s 2607:f740:44:22::/64 -j ACCEPT
ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

路線:

unreachable ::/96 dev lo  metric 1024  error -101
unreachable ::ffff:0.0.0.0/96 dev lo  metric 1024  error -101
unreachable 2002:a00::/24 dev lo  metric 1024  error -101
unreachable 2002:7f00::/24 dev lo  metric 1024  error -101
unreachable 2002:a9fe::/32 dev lo  metric 1024  error -101
unreachable 2002:ac10::/28 dev lo  metric 1024  error -101
unreachable 2002:c0a8::/32 dev lo  metric 1024  error -101
unreachable 2002:e000::/19 dev lo  metric 1024  error -101
2607:f740:0:3f::/64 dev eth0  proto kernel  metric 256 
2607:f740:44:22::/64 dev tun0  proto kernel  metric 256 
unreachable 3ffe:ffff::/32 dev lo  metric 1024  error -101
fe80::/64 dev eth0  proto kernel  metric 256 
fe80::/64 dev tun0  proto kernel  metric 256 
default via 2607:f740:0:3f::1 dev eth0  metric 1 

但是,到達 tun0 介面的 ipv6 數據包不會路由到 eth0 介面。感謝您的任何幫助,建議。

這是一個簡單的路由問題。您的路由表沒有任何路由可以通過 tun0 介面引導流量,因此不會以這種方式轉發任何內容。

我猜你正在使用 OpenVPN。據我目前所知,OpenVPN 的 IPv6 支持不包括 IPv6 等效redirect-gateway選項。route-ipv6您可能需要使用從伺服器推送的語句 添加自己的路由。

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