Uma bridge nada mais é que um dispositivo que interliga duas redes com topologias distintas ou não, mas que obrigatoriamente utilizam a mesma tecnologia (como Ethernet, por exemplo). A bridge criará novos domínios de colisão, porém não fará nada em relação aos domínios de broadcast. Assim, fica claro que uma bridge não faz roteamento algum.
Bridges são úteis em vários casos como em uma VPN bem específica (como a que eu citei no post “OpenVPN se comportando como PPTP“), ao fazer um firewall transparente (virtualmente impossível de se invadir) ou quando você está configurando um sensor do Snort. Em qualquer um destes casos, uma bridge consegue aumentar um pouco mais a funcionalidade da aplicação.
Aqui vou lhe ensinar a criar uma bridge formada por duas placas de rede no CentOS, sem uma aplicação específica. Mas não se desespere! O processo para a criação de uma bridge (qualquer que seja a apliação que irá utilizá-la) é sempre o mesmo.
Quando você cria uma bridge as interfaces envolvidas passam a operar sem IP’s, apenas repassando os pacotes de um lado para outro. Portanto, se você só tiver duas placas de rede em uma máquina e adicionar ambas a uma bridge, você perderá acesso ao seu servidor. Por isso, serão necessárias três placas de rede para o seu servidor: duas delas formarão a bridge e a terceira permitirá que você acesse o servidor através da rede, utilizando o SSH, por exemplo.
No CentOS você vai precisar do pacote “bridge-utils” que irá instalar todos os componentes necessários para que você consiga gerenciar, criar e configurar uma bridge no seu servidor.
Para instalar o pacote:
# yum -y install bridge-utils
Ao final da instalação, todo o software necessário já estará disponível para seu uso. Vamos então à configuração.
Uma dúvida que pode surgir é: “Se as placas de rede da bridge não possuem IP’s, como ficaria o arquivo de configuração delas?”. Aqui, vou te mostrar os arquivos de configuração das interfaces da bridge e da interface utilizada para fins administrativos.
Na minha máquina de testes utilizei o seguinte esquema:
A configuração da eth0 será como a de qualquer outra interface de rede: você deve definir um IP, o gateway, se ela será ativada no boot ou não, etc. Um exemplo do arquivo /etc/sysconfig/network-scripts/ifcfg-eth0 é:
DEVICE=eth0
BOOTPROTO=static
HWADDR=08:00:27:8A:FD:9E
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
BROADCAST=192.168.1.255
NETWORK=192.168.1.0
A configuração das duas interfaces que farão parte de bridge serão exatamente iguais (exceto, obviamente, pela opção DEVICE que deverá conter o nome do dispositivo sendo configurado e pela opção HWADDR. Neste caso, eth1 ou eth2 e seus respectivos endereços MAC), por isso só vou colocar a configuração de uma delas aqui:
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
HWADDR=08:00:27:BC:AB:9F
Reinicie o serviço “network” para que as novas configurações passem a valer:
# service network restart
Ao digitar “ifconfig” como root no terminal, você perceberá que embora as interfaces eth1 e eth2 estejam ativas, elas não possuem IP’s. Isso é normal, é assim mesmo que ela devem ficar para que tudo funcione corretamente. Agora podemos configurar a bridge.
A configuração de bridges é, na verdade, extremamente simples. Para todas as operações relacionadas à ela você deverá utilizar o comando brctl.
Antes de adicionar as interfaces à bridge, você deve criar essa interface no sistema (você não pode adicionar interfaces à uma bridge que não existe!). Para isso, execute o seguinte comando:
# brctl addbr br0
Bridge firewalling registered
Isso criará a interface br0, que será a nossa bridge. Agora sim podemos adicionar as interfaces que formarão a bridge:
# brctl addif br0 eth1
# brctl addif br0 eth2
Ok, bridge criada e interfaces adicionadas. Agora vamos precisar ativar a bridge. Execute o seguinte comando:
# ip link set br0 up
Pronto, para todos os efeitos sua máquina Linux está agindo como um switch ethernet.
O “brctl” ainda tem algumas opções muito úteis que poderão auxiliar você caso seja necessário fazer o troubleshooting da instalação. São eles:
Uma bridge é extremamente útil em vários casos, porém também acarreta alguns problemas de segurança. Por isso, evite utilizar a bridge em um servidor que está diretamente conectado à Internet a menos que isso seja imperativo (como no caso da VPN descrita no post citado no início deste texto ou em um firewall transparente).
Algumas observações quando se está trabalhando com bridges:
Espero que o texto seja útil! Quaisquer dúvidas, críticas ou sugestões deixe um comentário!

Esta obra escrita por Pedro Augusto de Oliveira Pereira está licensiada sob a Creative Commons Atribuição-Uso Não-Comercial-Vedada a Criação de Obras Derivadas 3.0 Brasil License.
2 Comentários
Bridges em linux « [WISP]tik Guy
06|Jul|2011 1[...] Pedro Pereira [...]
Pedro
22|Dec|2011 2Viva,
Tenho uma dúvida em relação a usar uma bridge para interligar duas subnets diferentes. Tenho 3 virtual machines no Virtualbox, a primeira está na subnet 192.168.1.0 e a segunda na 192.168.2.0. Depois a terceira seria a bridge, com dois interfaces de rede virtuais. Desta forma como é que eu utilizo a terceira vm para interligar as outras duas nas subnets diferentes?
Deixe seu comentário!