对于这个明显是新手的问题,我深表歉意,但我想“以正确的方式”来解决这个问题,而不是只是乱搞直到它似乎起作用,而我所拥有的文档似乎并没有解决这个问题。
目前,我正在使用的 Debian Linux 机器有以下 /etc/network/interfaces 文件:
auto lo
iface lo inet loopback
auto bond0
iface bond0 inet dhcp
pre-up modprobe bonding mode=active-backup miimon=100 primary=eth0
pre-up ip link set bond0 up
pre-up /sbin/ifenslave bond0 eth0
pre-up /sbin/ifenslave bond0 eth1
上述操作运行良好,并且基本上满足了我的要求——在启动时,盒子启动起来,两个以太网插孔用于故障转移/冗余(即,如果盒子正在工作,则使用第一个插孔进行通信,否则使用第二个插孔)。
但是,就我的目的而言,我不想使用 IPv4 或 DHCP。我希望该盒子仅使用盒子的 IPv6 自分配地址(即 fe80::whatever:it:is)而不是其他 IP 地址(嗯……环回也可以)来产生 bond0。指定它的正确方法是什么?我应该将“iface bond0 inet dhcp”更改为“iface bond0 inet6”吗?完全删除该行?还有其他方法吗?顺便说一句,理想情况下,我希望能够在多个盒子上使用完全相同的文件,而无需为每个盒子修改它。
答案1
我没有使用过您的特定绑定设备,但我在具有单个 NIC 的 Debian Lenny 上的 VM 中尝试了以下测试 ( eth0
)。在/etc/network/interfaces
:
auto eth0
iface eth0 inet manual
up /sbin/ifconfig eth0 0.0.0.0
提出之后eth0
,我从中得到以下信息/sbin/ifconfig eth0
:
eth0 Link encap:Ethernet HWaddr 08:00:27:15:8e:d7
inet6 addr: fe80::a00:27ff:fe15:8ed7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
...
因此,我有一个 IPv6 链路本地地址(从 MAC 地址派生而来),没有 IPv4 地址。我可以ping6
通过链路本地地址访问本地网络上的另一台机器,反之亦然,因此接口似乎可以正常工作。
因此,总结一下:尝试将iface
您的bond0
界面设置为:
iface bond0 inet manual
并将此行添加到其配置节的末尾:
up /sbin/ifconfig bond0 0.0.0.0
我不知道这是否是“正确的方法”,但它对我的简化情况有效。
答案2
您确实不想手动进行键控配置……而是使用可用的特定于键控的配置参数:
iface bond0 inet6 manual
slaves eth0 eth1
bond_mode active_backup
bond_miimon 100
bond_primary eth0
manual
上线的iface
意思是,将不配置该接口的IP/IPv6级别属性的显式配置。