I have setup a NFS server on FreeBSD 8.1, which will be serving one Linux client. Each box has a dual-port 1gig fiber card, and each box is directly connected to the other over this link. There is no switch involved.
I suppose that my question is, since both FreeBSD and Linux support 802.3ad, is the following the right way to configure this, when not using a switch? Or is there a better way? Is this even supported?
With this setup, I am able to ping between the hosts, transfer files over NFS, etc.
FreeBSD em2 <-> eth2 Linux em3 <-> eth3
I have configured em2 and em3 for 802.3ad (lacp):
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"
And eth2 and eth3 for 802.3ad bonding:
[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
EDIT: I've found that, on the FreeBSD box, the MAC addresses of em2 and em3 are the same, where-as on the Linux box, the MAC addresses of eth2 and eth3 are different.
Best Answer
You can do that, but it won't do what you want. Due to an esoteric requirement of the 802.11ad standard that requires packets sent to the same host over the trunk to arrive in the same order they were sent in, the kernel can not load balance packets to the same host over multiple links -- it can only send packets to some hosts over one link, and packets to some other hosts over the other. Since you only have one host ( on each end ), all of the packets will end up going over one link anyhow.