我在FreeBSD 8.1上设置了一个NFS服务器,它将为一个Linux客户端提供服务.每个盒子都有一个双端口1gig光纤卡,每个盒子通过这个链接直接连接到另一个盒子.没有涉及开关.
我想我的问题是,因为FreeBSD和Linux都支持802.3ad,所以在不使用交换机的情况下,正确的配置方法如下:或者,还有更好的方法?这甚至支持吗?
通过此设置,我可以在主机之间执行ping操作,通过NFS传输文件等.
FreeBSD em2 <-> eth2 Linux em3 <-> eth3
我为802.3ad(lacp)配置了em2和em3:
lagg0: flags=8843 metric 0 mtu 1500 options=9b ether 00:04:23:c2:c2:e0 inet 192.168.0.1 netmask 0xfffffffc broadcast 192.168.0.3 media: Ethernet autoselect status: active laggproto lacp laggport: em3 flags=1c laggport: em2 flags=1c
if_lagg_load="YES" ifconfig_em2="UP" ifconfig_em3="UP" #ifconfig_lagg0="create" cloned_interfaces="lagg0" ifconfig_lagg0="laggproto lacp laggport em2 laggport em3 192.168.0.1 netmask 255.255.255.252"
以及用于802.3ad绑定的eth2和eth3:
[root@xbox ~]# ifconfig bond0 bond0 Link encap:Ethernet HWaddr 00:04:23:C2:C4:DA inet addr:192.168.0.2 Bcast:192.168.0.3 Mask:255.255.255.252 inet6 addr: fe80::204:23ff:fec2:c4da/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:140000208 errors:0 dropped:0 overruns:0 frame:0 TX packets:101560577 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3281219872 (3.0 GiB) TX bytes:3609990240 (3.3 GiB)
[root@xbox network-scripts]# cat ifcfg-bond0 DEVICE=bond0 IPADDR=192.168.0.2 NETWORK=192.168.0.0 NETMASK=255.255.255.252 USERCTL=no BOOTPROTO=none ONBOOT=yes [root@xbox network-scripts]# cat ifcfg-eth2 DEVICE=eth2 USERCTL=no ONBOOT=yes MASTER=bond0 SLAVE=yes BOOTPROTO=none [root@xbox network-scripts]# cat ifcfg-eth3 DEVICE=eth3 USERCTL=no ONBOOT=yes MASTER=bond0 SLAVE=yes BOOTPROTO=none [root@xbox network-scripts]# tail -n2 /etc/modprobde.conf alias bond0 bonding options bond0 mode=802.3ad miimon=100
编辑:我发现,在FreeBSD框中,em2和em3的MAC地址是相同的,在Linux框中,eth2和eth3的MAC地址是不同的.
解决方法:
你可以这样做,但它不会做你想要的.由于802.11ad标准的深奥要求,要求通过中继发送到同一主机的数据包按照它们发送的相同顺序到达,内核无法通过多个链路将数据包负载平衡到同一主机 – 它可以仅通过一个链路向某些主机发送数据包,而通过另一个链路向其他主机发送数据包.由于您只有一个主机(每端),所以所有数据包最终都会通过一个链接.