我目前的情况是,我想将一个同质 Linux 节点网络添加到现有的 Windows 网络中。出于管理原因,Linux 节点不会添加到网络本身,但必须位于路由器后面。
出于进一步的管理原因,只有 IPv6 必须路由进出 Linux 节点的子网。
路由器是 ubuntu 14.04 TLS。它有两个接口,eth0
和eth1
。第一个连接到 windows 网络(前缀为2001:4ca0:2e10:beef::/64
)。第二个连接到 linux 网络(前缀为2001:4ca0:2e10:d00f::/64
)。
现在,我正在尝试配置radvd
以启用以下功能:
- 从 Linux 节点 ping 路由器,
- 从 Linux 路由器 ping 节点,
- 从 Linux 节点 ping Windows 网络中的机器,
- 从 Windows 节点 ping Linux 网络中的机器。
一切都仅通过 IPv6。我还没有考虑名称解析。
我添加了以下内容以/etc/radvd.conf
启用 1. 和 2.:
interface eth1
{
AdvSendAdvert on;
prefix 2001:4ca0:2e10:d00f::/64
{
AdvOnLink on;
AdvAutonomous on;
};
};
这使得 Linux 节点获得一个d00f
IP,通过该 IP 可以访问路由器。
我对路由的理解(有限)是,我必须向接口添加路由,这些路由会告诉相应接口后面的节点它们可以从哪里到达哪些 IP。因此,为了从哪个接口到达,beef
我d00f
向其后面的接口添加了一条路由d00f
。上述配置变为:
interface eth1
{
AdvSendAdvert on;
prefix 2001:4ca0:2e10:d00f::/64
{
AdvOnLink on;
AdvAutonomous on;
};
route 2001:4ca0:2e10:beef::/64
{
};
};
我希望在重启后radvd
,后面的节点能够看到该路由eth1
,并且它们能够到达网络的其余部分。但不知为何却没有——我做错了什么?