我有一个 Ubuntu 14.04 盒子,用作我的家庭路由器。我的 ISP 已为我分配了 IPv6 /64,我正在使用 RA 和 WIDE DHCPv6 客户端来配置 IPv6。除了未设置默认路由外,一切运行正常。如果我习惯radvdump
在我的 WAN 接口上查看 RA 包并使用它来手动设置默认路由,则一切都运行正常。
我可以(目前我确实这样做了)将此手动路由规范作为WAN 接口的up
命令/etc/network/interfaces
,但这并不理想 - 似乎每次我的 ISP 进行维护时,路由器的地址都会发生变化,我必须重新配置它。我想从 RA 获取路由,但我似乎无法设置它。我遗漏了什么吗?
eth1
是我的 WAN 接口,eth0
是 LAN。
sysctl 设置
root@nix $ grep ipv6 /etc/sysctl.conf
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.eth1.accept_ra=2 # The WAN interface
net.ipv6.conf.eth1.accept_ra_defrtr=1
net.ipv6.conf.eth0.accept_ra=0 # The LAN interface
net.ipv6.conf.all.accept_redirects = 0
宽配置
interface eth1 # WAN
{
send ia-na 1;
send ia-pd 1;
request domain-name-servers;
request domain-name;
script "/etc/wide-dhcpv6/dhcp6c-script"; # does resolvconf work
};
id-assoc pd 1 {
prefix-interface eth0 { # LAN
sla-id 0;
ifid 1;
sla-len 0;
};
};
id-assoc na 1 {
};
radvd 配置
interface eth0
{
AdvManangedFlag off;
AdvOtherConfigFlag off;
AdvSendAdvert on;
AdvLinkMTU 1280;
prefix ::/64
{
AdvOnLink on;
AdvAutonomous on;
};
};
/etc/网络/接口
# The loopback network interface
auto lo
iface lo inet loopback
# The LAN interface
auto eth0
iface eth0 inet static
address 172.20.0.1
netmask 255.255.255.0
# The WAN interface
auto eth1
iface eth1 inet dhcp
iface eth1 inet6 auto
# My current workaround:
up ip -6 route add default via fe80::21b:edff:feb2:d481 dev eth1
任何帮助,将不胜感激!
答案1
启用转发后, Linux 将关闭accept_ra
。要强制在上游接口(假设eth0
)上启用转发,可以使用net.ipv6.conf.eth0.accept_ra = 2
。这会强制接口接受路由器通告,即使启用了转发也是如此。