在 LAN 上的 Linux 机器之间测试 IPv6

Rob*_*b H 5 linux ubuntu ssh ipv6

我正在尝试建立一个 IPv6 测试平台。非常基本:只有两个 Ubuntu Linux 机器通过 LAN 相互通信。两个盒子都有可用的 IPv4 连接,但我没有通过 IPv6 使用 SSH。按照这个HOWTO,我已经给出了站点本地范围 (fec0::) 中的两台机器地址。在第一个盒子上,我跑了:

sudo ifconfig eth0 inet6 add fec0::1/64
Run Code Online (Sandbox Code Playgroud)

第二,我跑了:

sudo ifconfig eth0 inet6 add fec0::2/64
Run Code Online (Sandbox Code Playgroud)

然后我检查了路由表,每个表似乎都有一条通过 eth0 接口到达该网络的路由。接下来,我添加了一个/etc/hosts从第二个框指向第一个框的条目。但是,当我尝试从第二个盒子通过 SSH 连接到第一个盒子时,SSH 客户端只是挂起。没有错误或任何东西。如果我tcpdump在客户端上运行,则根本看不到 IPv6 流量。这是怎么回事?

请注意,如果我通过 SSH 连接到ip6-localhost从服务器机器到自身的地址,它工作正常,所以它似乎不是 SSH 问题。非常感谢任何帮助。

mpo*_*llo 3

首先,如果您已经ufw安装,请检查/etc/default/ufwIPV6=no选项是否已设置。您必须将其设置yesufw默认防火墙所有 IPv6 流量。

完成此操作后,尝试一些在学习 IPv6 时应该了解的基本诊断方法。

您应该做的第一件事是安装该ndisc6软件包,然后尝试进行邻居请求。(这相当于在 IPv4 中进行 ARP 请求)

sudo apt-get install ndisc6
Run Code Online (Sandbox Code Playgroud)

请注意,您需要universe为此启用存储库。

然后,从您的第一台机器:

ndisc6 fec0::2 eth0
Run Code Online (Sandbox Code Playgroud)

这将确保您可以找到 的 MAC 地址fec0::2

(请注意,该ndisc6软件包还附带了一个方便的实用程序rdisc6,如果您的网络上有 IPv6 路由器,该实用程序会很有用;它将检查路由器是否正确响应。)

验证邻居发现有效后,下一步尝试ping6 fec0::2

如果您仍然遇到问题,您可能需要发布其他诊断信息:

/sbin/ip -6 addr
/sbin/ip -6 neigh
/sbin/ip -6 route
sudo /sbin/ip6tables -L
Run Code Online (Sandbox Code Playgroud)