802.3ad no FreeBSD e no Linux usando cabos crossover?

6

Eu configurei um servidor NFS no FreeBSD 8.1, que servirá um cliente Linux. Cada caixa tem um cartão de fibra de 1gig de porta dupla e cada caixa é conectada diretamente ao outro através deste link. Não há mudança envolvida.

Eu suponho que minha pergunta é, já que tanto o FreeBSD quanto o Linux suportam o 802.3ad, o seguinte é o caminho certo para configurar isto, quando não estiver usando um switch? Ou há uma maneira melhor? Isso é mesmo suportado?

Com essa configuração, posso fazer ping entre os hosts, transferir arquivos via NFS, etc.

FreeBSD  em2 <-> eth2 Linux 
         em3 <-> eth3

Eu configurei em2 e em3 para 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"

E eth2 e eth3 para a ligação 802.3ad:

[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 : Descobri que, na caixa do FreeBSD, os endereços MAC de em2 e em3 são os mesmos, onde, como na caixa do Linux, os endereços MAC de eth2 e eth3 são diferente.

    
por Kyle 19.12.2010 / 17:11

2 respostas

3

Você pode fazer isso, mas não fará o que quiser. Devido a um requisito esotérico do padrão 802.11ad que requer que pacotes enviados ao mesmo host através do tronco cheguem na mesma ordem em que foram enviados, o kernel não pode carregar pacotes de balanceamento para o mesmo host através de múltiplos links - ele pode somente envia pacotes para alguns hosts através de um link, e pacotes para outros hosts sobre o outro. Como você tem apenas um host (em cada extremidade), todos os pacotes acabarão passando por um link de qualquer maneira.

    
por 08.03.2012 / 02:15
1

Sua configuração é suportada. Se houver uma alternância entre os hosts usando a agregação de links, o switch precisará estar ciente do LACP, mas se não houver um switch, não haverá problemas.

    
por 08.03.2012 / 00:00