我有一台机器 (hostname foo
),它有两个有线网络接口,eth0 和 eth1。当我将另一台主机连接bar
到其中一个 (eth0) 时,我可以在任一主机的 NetworkManager 中看到它正在使用“仅本地链路”模式:
ping foo.local
这很有效——我只需使用或即可在两个主机之间立即进行通信ping bar.local
。
但是,当我将第二台主机插入 eth1 时,foo.local
由于bar.local
现在有多个重叠的 169.254.0.0/16 路由,彼此之间无法访问。我该如何修复此问题永久这样我就不需要ip
在每次连接主机时都重复一些咒语,并且还可以最大限度地减少我必须进行的静态 IP 配置量(我想用最零配置网络-ish 方式可能吗?FWIW 所有机器都运行 Ubuntu 12.04。
答案1
唯一简单的方法是桥两个以太网接口(基本上让您的计算机充当交换机)。然后您将只有一个通过网桥的路由br0
,并且它将使用学习到的 MAC 地址来决定每个主机使用哪个以太网端口。
如果您想将接口分开,实际上没有任何好的解决方案。 IPv6 使这变得更容易一些,因为解析器(Avahi)还可以将接口(范围 ID)作为 AF_INET6 地址的一部分返回...不幸的是,glibc 的 getaddrinfo() 默认会丢弃它。