19.5. Ligação (Bridging)

Escrito por Steve Peterson.

19.5.1. Introdução

Às vezes é útil dividir uma rede física (como um segmento Ethernet) em dois segmentos sem ter que criar subredes IP e usar um roteador para conectar os segmentos. Um dispositivo que conecta duas redes juntas desta maneira é chamado de ``ligação'', ou ``ponte''. Um sistema FreeBSD com duas interfaces de rede pode atuar como uma ligação.

A ligação funciona aprendendo os endereços da camada MAC (endereços Ethernet) dos dispositivos em cada uma de suas interfaces de rede. Ela repassa o tráfego entre duas redes somente quando sua origem e destino estão em redes diferentes.

Em muitos aspectos, uma ligação é como um comutador Ethernet com muito poucas portas.

19.5.2. Situações Convenientes Para Uso de Ligação

Atualmente, existem duas situações comuns nas quais ligações são implementadas.

19.5.2.1. Alto Tráfego em um Segmento

A primeira situação é onde seu segmento de rede físico está sobrecarregado com tráfego mas você não quer, por quaisquer razões, subdividir a rede e interconectar as subredes com um roteador.

Vamos considerar um exemplo de um jornal onde os departamentos Editorial e de Produção estão na mesma subrede. Todos os usuários do Editorial usam o servidor A para servir arquivos e os usuários de Produção estão no servidor B. Uma Ethernet é usada para conectar todos os usuários e altas cargas de tráfego na rede estão degradando o desempenho.

Se o os usuários do Editorial pudessem ser segregados em um segmento de rede e os usuários da Produção em outra, ambos segmentos de rede podem ser conectados com uma ligação. Somente o tráfego destinado a interfaces no ``outro'' lado da ligação poderia ser enviado para a outra rede, reduzindo a congestão em cada segmento de rede.

19.5.2.2. Filtering/Traffic Shaping Firewall

A segunda situação comum é aquela onde a funcionalidade de firewall é necessária sem uso de mascaramento de IP (NAT).

Um exemplo é uma pequena companhia conectada via DSL ou ISDN ao seu PSI. Eles possuem 13 endereços IP de seu PSI globalmente acessíveis e 10 PCs em sua rede. Nesta situação, é difícil usar um firewall baseado em roteador por questões de divisões de subrede.

Um firewall baseado em ponte (bridge) pode ser configurado e inserido no caminho somente de entrada do roteador DSL/ISDN sem quaisquer questões de numeração IP.

19.5.3. Configurando uma Ponte (Bridge)

19.5.3.1. Seleção de Placa Interface de Rede

Uma ponte requer pelo menos duas interfaces de rede para funcionar. Infelizmente, nem todas as placas interface de rede da época do FreeBSD 4.0 suportam ligações. Leia bridge(4) para detalhes sobre placas suportadas.

Instale e teste as duas placas de rede antes de continuar.

19.5.3.2. Alterações nas Configurações do Kernel

Para ativar suporte no kernel para ligações, adicione:

options BRIDGE

ao seu arquivo de configuração do kernel e recompile o mesmo.

19.5.3.3. Suporte a Firewall

Se você estiver planejando usar a ponte como firewall, você também vai precisar adicionar a opção IPFIREWALL. Leia Seção 10.8 para informações gerais sobre configuração de ponte como firewall.

Se precisar permitir pacotes não-IP (como ARP) trafegarem através da ponte, há uma opção não documentada de firewall que precisa ser ativada. Esta opção é IPFIREWALL_DEFAULT_TO_ACCEPT. Note que isto altera a regra padrão para que o firewall aceite qualquer pacote. Certifique-se de que compreende como isto muda o sentido de seu conjunto de regras antes de ativá-la.

19.5.3.4. Suporte a Formatação de Tráfego (Traffic Shaping)

Se você desejar usar a ponte como formatador de tráfego, você vai precisar adicionar a opção DUMMYNET à sua configuração de kernel. Leia dummynet(4) para maiores informações.

19.5.4. Ativando a Ponte

Adicione a linha:

net.link.ether.bridge=1

ao /etc/sysctl.conf para ativar a ponte em tempo de execução, e a linha:

net.link.ether.bridge_cfg=if1,if2

para ativar a ligação nas interfaces especificadas (substitua if1 e if2 com os nomes de suas duas interfaces de rede). Se quiser que os pacotes de ligação sejam filtrados por ipfw(8), você também deve adicionar:

net.link.ether.bridge_ipfw=1

ao arquivo de configuração.

19.5.5. Outras Informações

Se você precisar efetuar um telnet para a ponte a partir da rede, não há problemas em se atribuir um endereço IP a uma das placas de interface de rede. O consenso é que não é boa idéia atribuir endereços a ambas as placas.

Se você tem múltiplas pontes em sua rede, não pode haver mais que um caminho entre duas estações de trabalho. Tecnicamente, isto significa que não há suporte para gerenciamento de enlaces spanning tree.

Uma ponte pode acrescentar latência ao tempo de resposta de pings, especialmente no tráfego entre segmentos.

Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.