Pedro Pereira

Linux, Cisco, *BSD's, um pouco de Windows e o que mais eu achar interessante :)

Configurando bridges no CentOS


WP Greet Box icon
Olá! Se você gostou do blog, assine o feed RSS para não perder as próximas atualizações!

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.

Hardware necessário

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.

Software necessário

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.

Configuração das placas de rede do servidor

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:

  • eth0: Interface utilizada para tarefas administrativas (acesso remoto do administrador, acesso à Intra/Internet para permitir atualizações, etc);
  • eth1: Uma das interfaces da bridge;
  • eth2: A segunda interface da bridge.

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.

Configurando uma 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.

Comandos adicionais

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:

  • brctl delbr <dispositivo de bridge>: Deleta a bridge especificada;
  • brctl delif <placa de rede>: Remove uma determinada placa de rede da bridge, porém mantém a bridge e também as outras placas que façam parte dela;
  • brctl show: Mostra todas as bridges configuradas no sistema (sim, você pode ter mais de uma) e alguns detalhes básicos;
  • brctl showmacs <dispositivo de bridge>: Mostra os MACs “descobertos” pela bridge configurada na sua máquina.

Conclusão

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:

  • Em um firewall transparente, utilize sempre a chain FORWARD quando for definir o que pode passar e o que deverá ser bloqueado;
  • Se algum serviço está configurado para ouvir a bridge durante sua operação, a bridge deve ser ativada antes deste serviço;
  • É sim possível definir um IP para a bridge utilizando um comando parecido com “ip addr add <ip da bridge>/<máscara da bridge em formato CIDR> brd + dev <dispositivo de bridge>”. Não gosto muito desta solução, prefiro utilizar uma terceira placa de rede;
  • Como firewall para trabalhar com a bridge você pode fazer como citado acima e utilizar o IPTables mesmo ou pode utilizar o EBTables.

Espero que o texto seja útil! Quaisquer dúvidas, críticas ou sugestões deixe um comentário!

Compartilhe o post! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Webnews
  • Digg
  • del.icio.us
  • StumbleUpon
  • Reddit
  • Ask
  • Bloglines
  • email
  • Facebook
  • Furl
  • Google Bookmarks
  • LinkedIn
  • Live-MSN
  • Pownce
  • Print
  • Rec6
  • Slashdot
  • Technorati
  • TwitThis

Posts relacionados:

  • Configurando Syslog e NTP no Cisco IOS Quando um atacante invade um sistema, a primeira coisa que...
  • Instalando e configurando o JBoss no Linux O JBoss é um application server para aplicativos web desenvolvidos...
  • Instalação do Ocomon no CentOS 5.3 Introdução O service desk é a função mais importante da...
  • Como utilizar o RPMForge no CentOS Há alguns meses, venho utilizando a distribuição CentOS. Gosto muito...



  • 2 Comentários

    1. Bridges em linux « [WISP]tik Guy

      06|Jul|2011 1

      [...] Pedro Pereira [...]

    2. Pedro

      22|Dec|2011 2

      Viva,

      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!

    Acompanhe!

      Assine o feed RSS! Me acompanhe no Twitter! Me adicione no LinkedIn!

    Creative Commons


    Mais lidos