尝试设置 IPv6 转发后丢失 IPv6 地址

尝试设置 IPv6 转发后丢失 IPv6 地址

我基于 Ubuntu server 16.04 LTS 构建了一个路由器,它也充当我的家庭服务器。在我使用时,全新安装后ip addr,它成功为我提供了 Comcast 分配的全局 ipv6(不是看起来像 fe80:: 的本地链接)(无状态)。因此,我继续为 ipv4 连接设置 isc-dhcp-server 和 iptables 规则,这相当简单,所有指南都可以在线找到。这使我可以通过 ssh 进入并从我的办公桌上设置其余部分,使事情变得容易得多。这是我开始遇到问题的时候。所以我有两个网卡,如下所示/etc/network/interfaces

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# Generated by debian-installer.

# The loopback interface
auto lo
iface lo inet loopback

# WAN interface
auto enp37s0
iface enp37s0 inet dhcp
iface enp37s0 inet6 dhcp

# LAN interface
auto enp30s0
iface enp30s0 inet static
address 192.168.1.1
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255

网上很少有帖子详细介绍 Ubuntu 机器作为路由器直接连接到支持本机无状态 ipv6 的 ISP 调制解调器的场景。但我设法找到了一篇帖子“这里“并从一系列其他帖子中拼凑信息。我尝试过的方法包括,isc-dhcp-server6以及wide-dhcp6-client将ipv6 广告转发到网络内的其他主机。实际上,没有什么效果,我所能做的就是让我的 ubuntu 路由器分配在各种 .conf 文件中定义的 ipv6 地址。然后我意识到,即使我的 dhcp 设置有效,我也无法通过 ipv6 上网,因为我不再从调制解调器获取全局 ipv6 地址,这是我的 wan nic 的输出:dibbler-clientradvdip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
   valid_lft forever preferred_lft forever
2: enp30s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 brd 192.168.1.255 scope global enp30s0
   valid_lft forever preferred_lft forever
inet6 fe80::21b:xxxx:xxxx:xxxx/64 scope link
   valid_lft forever preferred_lft forever
3:enp37s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 71.xxx.xxx.x/22 brd 255.255.255.255 scope global enp37s0
   valid_lft forever preferred_lft forever
inet6 fe80::7285:xxxx:xxxx:xxxx/64 scope link
   valid_lft forever preferred_lft forever

如您所见,它显然缺少2001:558:6017:a0::我以前获得的带前缀的地址。此时,我基本上已经筋疲力尽了,因为我花了好几天时间尝试让我的 ubuntu 路由器为 Ipv6 做好准备。所以我只想恢复到原始状态,即 Ipv6 至少对 ubuntu 路由器本身有效,也许稍后再试。所以我停止并删除了为 ipv6“实验”安装的所有软件包。我还sysctl.conf根据以下行恢复了更改帖子1帖子2我读:

net.ipv6.conf.all.forwarding=0
net.ipv6.conf.default.forwarding=0
net.ipv6.conf.enp37s0.accept_ra =1
net.ipv6.conf.enp37s0.accept_ra_defrtr=1
net.ipv6.conf.enp37s0.accept_ra_pinfo=1
net.ipv6.conf.enp37s0.accept_ra_rtr_pref=1

不幸的是,无论我做什么,ipv6 链接都没有恢复!以下是我尝试的另外几种方法:

dmesg |grep IPv6
[   27.515582] IPv6: ADDRCONF(NETDEV_UP): enp30s0: link is not ready
[   27.565749] IPv6: ADDRCONF(NETDEV_UP): enp37s0: link is not ready
[   30.417452] IPv6: ADDRCONF(NETDEV_CHANGE): enp37s0: link becomes ready
[   32.088828] IPv6: ADDRCONF(NETDEV_CHANGE): enp30s0: link becomes ready

test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"
Running kernel is IPv6 ready

目前,我不知道该尝试什么,但我对此非常困扰。如果能提供任何建议,我将不胜感激。

相关内容