将流量从隧道接口路由到 Internet DSLite

将流量从隧道接口路由到 Internet DSLite

我正在 Ubuntu 机器上设置 DSLite AFTR。

我能够在 Rpi(B4) 和 Ubuntu(AFTR) 之间建立隧道。隧道类型为 IPv4inIPv6。我在 Ubuntu 上运行 Dibbler 服务器,在 RPi 上运行 dibbler 客户端以获取全局 IPv6 地址。

整体设置如下所示(修正从 tun0 到 wlp3s0 的图像路由):

整体设置如下所示

我可以看到从 B4 到 AFTR 的隧道流量。AFTR(tun0)上的解封装数据包。

那么我该如何将流量从隧道接口(tun0)路由到wlp3s0(连接到互联网)以便我可以访问互联网。

root@AFTR:~$ tcpdump -i tun0  
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode  
listening on tun0, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes  
 IP 10.0.0.150.59143 > 95.211.158.137.domain: 59131+     
IP 10.0.0.150 > bom07s33-in-f3.1e100.net: ICMP echo request, id 1, seq 1610, length 40  
IP 10.0.0.150 > bom07s33-in-f3.1e100.net: ICMP echo request, id 1, seq 1611, length 40  
IP 10.0.0.150.53907 > 95.211.158.137.domain: 38519+ A? dns.msftncsi.com. (34)  
IP 10.0.0.150.53907 > 82.163.142.9.domain: 38519+ A? dns.msftncsi.com. (34)  
IP 10.0.0.150 > bom07s33-in-f3.1e100.net: ICMP echo request, id 1, seq 1612, length 40  
IP 10.0.0.150 > bom07s33-in-f3.1e100.net: ICMP echo request, id 1, seq 1613, length 40  

AFTR_script 创建隧道并添加 IP 规则:

ip link add name tun0 type ip6tnl local 2001:db8:1111:ff01::30 remote 2001:db8:1114:0:aa967:aa0e:d13e:c0cc mode ipip6 encaplimit none  
# bring up the tunnel interface  
ip link set tun0 up  

ip -6 addr add 2001:db8:1111:ff01::10 dev tun0  


iptables -t nat -A POSTROUTING -o wlp3s0 -j MASQUERADE #(wlp3s0 is the Internet side network card)  
echo "1 tun0" >> /etc/iproute2/rt_tables  
ip route add default dev tun0 table tun0  
iptables -t mangle -A PREROUTING -i tun0 -j MARK --set-mark 1  
iptables -t mangle -A POSTROUTING -j CONNMARK --save-mark  
iptables -t mangle -I PREROUTING -j CONNMARK --restore-mark  
ip rule add fwmark 1 iif wlp3s0 table tun0  

我做错了什么?如何通过 wlp3s0 将流量从隧道(tun0)路由到互联网。

AFTR 隧道的输出 ifconfig: root@AFTR:~$ ifconfig tun0
tun0 链路封装:UNSPEC HWaddr 20-01-0D-B8-11-11-FF-01-00-00-00-00-00-00-00-00
inet addr:192.0.0.1 PtP:192.0.0.1 掩码:255.255.255.255
inet6 addr:2001:db8:1111:ff01::10/128 范围:全局
inet6 addr:fe80::4c9:4eff:feb6:91da/64 范围:链路
UP POINTOPOINT RUNNING NOARP MTU:1452 度量:1
RX 数据包:102 错误:0 丢弃:0 超限:0 帧:0
TX 数据包:0 错误:2 丢弃:2溢出:0 载体:0
碰撞:0 txqueuelen:1000
RX字节:20025(20.025 KiB)TX字节:0(0.0 B)

root@AFTR:~$ iptables -n -L -t nat
Chain PREROUTING (策略接受)
目标 prot opt 源 目标

链输入(策略接受)
目标保护选择源目标

链输出(策略接受)目标保护选择源目标

链 POSTROUTING(策略接受)
目标协议选择源目标
MASQUERADE 全部 -- 0.0.0.0/0 0.0.0.0/0
root@AFTR:~$ iptables -n -L -t mangle
链 PREROUTING(策略接受)
目标协议选择源目标
CONNMARK 全部 -- 0.0.0.0/0 0.0.0.0/0 CONNMARK 恢复
MARK 全部 -- 0.0.0.0/0 0.0.0.0/0 MARK 设置 0x1

链输入(策略接受)
目标保护选择源目标

链转发(策略接受)目标保护选择源目标

链输出(策略接受)
目标保护选择源目标

链 POSTROUTING(策略接受)
目标协议选择源目标
CONNMARK 全部 -- 0.0.0.0/0 0.0.0.0/0 CONNMARK 保存

默认网关:
root@AFTR:~$ ip route
default via 192.168.0.1 dev wlp3s0 proto static metric 600
169.254.0.0/16 dev wlp3s0 scope link metric 1000
192.168.0.0/24 dev wlp3s0 proto kernel scope link src 192.168.0.20 metric 600

相关内容