IPv6 的好处不多说,在有 IPv6 的网络环境下当然是能用则用。但是很多情况下,由于种种原因,经常会有 IPv6 的情况。比如使用 DHCPv6 分配地址,且不支持 PD。这样的话路由器就没法分配子网,路由器下的设备就没法使用 IPv6。下面介绍一种在路由器下进行 IPv6 穿透的方法,可以较好地支持 IPv6。
在 WAN 和 LAN 之间搭建一个网桥,过滤 IPv4 连接,只允许 IPv6 通过。即在 IPv6 下处于交换机模式,这样连接到路由器的设备的 IPv6 环境相当于与路由器同等,就可以自行获得地址了。
步骤(以梅林固件为例)#
设 WAN 口的网卡名叫 vlan2
,
1
2
| # ebtables -t broute -A BROUTING -i vlan2 -p ! ipv6 -j DROP
# brctl addif br0 vlan2
|
此后将其设置为开机启动即可。
补充:梅林双线路下的处理 / IPv6 专线#
如果已经开启了梅林的双线路模式,则无法直接对 WAN 口进行桥接。这时可以单独使用一条网线作为传输 IPv6 的专线。
将一个 LAN 口设置为 IPv6 WAN#
比如将 LAN1
设置为 IPv6 的 WAN 接口,网卡名起作 vlan4
:
1
2
3
4
| # nvram set vlan1ports="2 3 4 5*"
# nvram set vlan4ports="0 5"
# nvram set vlan4hwname=et0
# nvram commit
|
重启后生效。
设置网桥的脚本#
1
2
3
4
5
6
7
8
9
10
11
12
13
| #!/bin/sh
if [ -f /tmp/ipv6-vlan ]; then
echo "already set up ipv6 via vlan"
else
ifconfig vlan4 up
ebtables -A INPUT -i vlan4 -p ! ipv6 -j DROP
ebtables -A FORWARD -i vlan4 -p ! ipv6 -j DROP
ebtables -A INPUT --in-interface vlan4 --protocol ipv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP
ebtables -A FORWARD --out-interface vlan4 --protocol ipv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP
brctl addif br0 vlan4
touch /tmp/ipv6-vlan
fi
|
添加到开机启动即可。
参考教程#