quinta-feira, 20 de junho de 2013

Criando uma Bridge (ponte) com duas placas de rede

Uma bridge, ou ponte, funciona ligando um segmento de rede a outro, numa mesma vlan. Antigamente era usada para ligar pontos distantes, pois o sinal da rede é reforçado quando passa pela bridge.

Hoje em dia, uma bridge pode ser usada para monitorar o tráfego em um determinado equipamento colocando-a entre a rede e o computador em questão. A bridge é transparente, ou seja, ela não é visível para as máquinas da rede, pois todo tráfego que entra por uma interface de rede é simplesmente direcionada para a outra interface.

Para configurar uma bridge você precisa de uma máquina com pelo menos duas interfaces de rede. No exemplo a seguir, listo as duas interfaces.

# ifconfig -a
eth0      Link encap:Ethernet  Endereço de HW 08:00:27:cd:82:9c
    inet end.: 172.20.18.51  Bcast:172.20.255.255  Masc:255.255.0.0
    endereço inet6: fe80::a00:27ff:fecd:829c/64 Escopo:Link
    UP BROADCASTRUNNING MULTICAST  MTU:1500  Métrica:1
    RX packets:119253 errors:1 dropped:0 overruns:0 frame:0
    TX packets:706 errors:0 dropped:0 overruns:0 carrier:0
    colisões:0 txqueuelen:1000
    RX bytes:12793655 (12.2 MiB)  TX bytes:54001 (52.7 KiB)
    IRQ:10 Endereço de E/S:0xd020

eth1      Link encap:Ethernet  Endereço de HW 08:00:27:6a:05:c3
    BROADCASTMULTICAST  MTU:1500  Métrica:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    colisões:0 txqueuelen:1000
    RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    IRQ:9 Endereço de E/S:0xd060


lo        Link encap:Loopback Local
     inet end.: 127.0.0.1  Masc:255.0.0.0
     endereço inet6: ::1/128 Escopo:Máquina
     UP LOOPBACKRUNNING  MTU:16436  Métrica:1
     RX packets:0 errors:0 dropped:0 overruns:0 frame:0
     TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
     colisões:0 txqueuelen:0
     RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)


#

Primeiramente, vamos instalar o  pacote bridge-utils.

# apt-get install bridge-utils
Lendo listas de pacotes... Pronto
Construindo árvore de dependências
Lendo informação de estado... Pronto
Os NOVOS pacotes a seguir serão instalados:
bridge-utils
0 pacotes atualizados, 1 pacotes novos instalados, 0 a serem removidos e 0 não atualizados.
É preciso baixar 0 B/31,2 kB de arquivos.
Depois desta operação, 111 kB adicionais de espaço em disco serão usados.
Selecionando pacote previamente não selecionado bridge-utils.
(Lendo banco de dados ... 27398 ficheiros e directórios actualmente instalados.)
Desempacotando bridge-utils (de .../bridge-utils_1.4-5_i386.deb) ...
Processando gatilhos para man-db ...
Configurando bridge-utils (1.4-5) ...
#

Vamos criar a interface virtual que representará a bridge.

# brctl addbr br0
# ifconfig -a br0
br0       Link encap:Ethernet  Endereço de HW d6:d2:b6:35:bd:29
     BROADCASTMULTICAST  MTU:1500  Métrica:1
     RX packets:0 errors:0 dropped:0 overruns:0 frame:0
     TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
     colisões:0 txqueuelen:0
     RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
#

Agora vamos adicionar as interfaces que vão fazer parte da bridge.

# brctl addif br0 eth0 eth1

Verificando a bridge...

# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.0800276a05c3 no eth0
eth1
#

Isso basta para que a bridge funcione. No entanto, você vai querer acessá-la remotamente. Então, vamos configurá-la, incluindo as linhas abaixo no arquivo /etc/networking/interfaces.

/etc/networking/interfaces.
auto br0
iface br0 inet static
     address 172.20.18.51
     netmask 255.255.0.0
     network 172.20.0.0
     broadcast 172.20.255.255
     bridge_ports eth0 eth1

Se for usar dhcp, as linhas devem ser:

/etc/networking/interfaces.
auto br0
iface br0 inet dhcp
     bridge_ports eth0 eth1

Com uma máquina simples você pode monitorar o tráfego do teu gateway sem fazer qualquer mudança na topologia, e sem fazer qualquer mudança no gateway. Basta colocar a bridge entre o gateway e o roteador da Internet.

* Esse artigo foi primeiramente publicado no site http://linuxnewmedia.com.br/blogs/rede/2013/01/30/criando-uma-bridge.