Mini-COMO FAZER Bridging
  Christopher Cole,  cole@lynkmedia.com
  v1.10, 13 de novembro 1997

  Este documento descreve como configurar uma Bridge em uma rede
  Ethernet. O que é uma Bridge Ethernet? É um dispositivo que controla
  os pacotes de dados dentro de uma sub-rede, na tentativa de reduzir a
  quantidade de tráfego entre redes. Uma Bridge é usualmente colocada
  entre dois grupos separados de computadores que conversam entre si,
  mas não entre computadores de outros grupos. Um bom exemplo disto é
  considerar um grupo de equipamentos Macintosh e um grupo de máquinas
  Unix. Os dois grupos de máquinas tendem a ter bastante tráfego entre
  si e o tráfego que produzem internamente em cada grupo causa colisões
  com outras máquinas que estejam tentando falar umas com as outras. Uma
  Bridge seria colocada entre estes grupos de computadores, isolando o
  tráfego local de cada sub-rede. O trabalho da Bridge é então examinar
  o destino dos pacotes de dados, um de cada vez e decidir se deve ou
  não repassá-los para o outro lado do segmento da Ethernet. O resultado
  é uma rede mais rápida com menos colisões.
  ______________________________________________________________________

  Índice geral


  1. Configuração

  2. Problemas comuns



  ______________________________________________________________________

  11..  CCoonnffiigguurraaççããoo


  1. Obter um arquivo de configuração de Bridges em:

       <ftp://shadow.cabi.net/pub/Linux/BRCFG.tgz>.



  2. Obter e ler o COMO FAZER ``Múltiplas Placas Ethernet":

       <ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/mini/Multiple-Ethernet>.



  3.

     Habilitar os múltiplos dispositivos Ethernet da máquina pelo
     acréscimo destes ao arquivo /etc/lilo.conf e reexecução do programa
     lilo:


       append = "ether=0,0,eth1"





  Caso se tenha três interfaces na Bridge, deve-se então utilizar a
  seguinte configuração:




  append = "ether=0,0,eth1 ether=0,0,eth2"





  Mais interfaces podem ser encontradas pelo acréscimo de mais
  parâmetros ether. Por padrão a inicialização do kernel do Linux testa
  uma única placa Ethernet, e uma vez que ela seja encontrada o exame
  cessa. A configuração acima indica para o kernel que ele deve
  continuar testando mais dispositivos Ethernet, mesmo após a
  localização do primeiro.

  Alternativamente o parâmetro de inicialização pode ser usado da
  seguinte forma:


       linux ether=0,0,eth1





  Ou, com 3 interfaces, pode ser utilizado:


       linux ether=0,0,eth1 ether=0,0,eth2






  4. O kernel deve ser recompilado com a opção BRIDGING habilitada.

  5. Uma Bridge não deve ter um endereço IP. Ela PODE tê-lo, porém uma
     Bridge simplesmente não precisa de um. Para remover o endereço IP
     da Bridge, deve-se ir para o diretório /etc/sysconfig/network-
     scripts/ (em um sistema Conectiva Linux ou RedHat) e copiar o
     ifcfg-lo0 para ifcfg-eth0 & ifcfg-eth1. Nestes 2 arquivos eth, deve
     ser mudada a linha que contém ``DEVICE=lo'' para ``DEVICE=eth0" e
     ``DEVICE=eth1''. Outras distribuições podem divergir desta, sendo
     necessárias configurações similares. Caso haja mais que 2
     interfaces para esta Bridge, certifique-se de fazer todas as
     configurações correspondentes às interfaces adicionais.

  6. A seguir o sistema deve ser reinicializado para uso do novo kernel
     com a funcionalidade de "Bridge" habilitada e para certificar-se
     que os endereços IP não estão ligados às interfaces da rede.

  7. Uma vez que tenha sido realizada a cópia de segurança do sistema,
     deve-se configurar as placas Ethernet para o modo promíscuo, para
     que elas examinem todos os pacotes que passem pela sua interface,
     através do seguinte comando:


       ifconfig promisc eth0 ; ifconfig promisc eth1






  Todas as interfaces que forem conectadas aos segmentos da rede que
  devem ser interligados via Bridge, devem ser colocadas no modo
  promíscuo.
  8. Deve-se ativar a Bridge através do programa brcfg:


       brcfg -ena






  9. Deve-se então verificar se existe tráfego diferente em cada
     interface:


       tcpdump -i eth0      (em uma janela)
       tcpdump -i eth1      (em uma segunda janela)






  10.
     A seguir deve ser executado um programa sniffer (apresenta o
     tráfego passante da rede) ou tcpdump numa outra máquina para
     verificar se a Bridge está separando corretamente o tráfego de cada
     segmento.

  22..  PPrroobblleemmaass ccoommuunnss


  1.

     PPeerrgguunnttaa
        Foi recebida a mensagem:


          ioctl(SIOCGIFBR) falhou: Pacote não instalado





     O que isto significa?

     RReessppoossttaa
        Não existe a funcionalidade de Bridge disponível no kernel.
        Deve-se obter um kernel 2.0 ou superior e recompilá-lo com a
        opção BRIDGING ativada.


  2.

     PPeerrgguunnttaa
        As máquinas de um lado da Bridge não conseguem contactar as do
        outro lado!

     RReessppoossttaa

     ·  A conexão foi ativada através do comando ``brcfg -ena''?
        (brcfg, ou seja ``a conexão está CAPACITADA'')

     ·  As interfaces foram colocadas no modo promíscuo? Utilize o
        comando ``ifconfig''. O indicador ``PROMISC''deve estar ligado
        para as duas interfaces.

     ·  Caso se utilize adaptadores de interface de múltipla mídia,
        certifique-se de que a interface correta está habilitada. Pode
        ser necessário usar o programa de configuração que acompanha a
        placa de rede.


  3.

     PPeerrgguunnttaa
        Não é possível executar o comando telnet/ftp a partir da Bridge!
        Por quê?

     RReessppoossttaa
        Isto é devido ao fato de não haver um endereço IP ligado a
        quaisquer interfaces da Bridge. Uma Bridge deve ser parte
        transparente da rede.


  4.

     PPeerrgguunnttaa
        O que é necessário para configurar o roteamento?

     RReessppoossttaa
        Nada! Toda a inteligência do roteamento é dirigida pelo código
        de conexão no kernel. Para ver como os endereços Ethernet são
        aprendidos pela Bridge, deve ser utilizado o programa brcfg no
        modo de depuração:


          brcfg -deb






  5.

     PPeerrgguunnttaa
        A Bridge parece funcionar, mas por que o ``traceroute'' não
        mostra a Bridge como uma parte do caminho?

     RReessppoossttaa
        Devido a natureza da Bridge, um ``traceroute'' NÃO deve mostrar
        a Bridge como uma parte do caminho. Uma Bridge é um componente
        transparente da rede.


  6.

     PPeerrgguunnttaa
        É necessário compilar IP_FORWARD no kernel?

     RReessppoossttaa
        Não. O código de conexão no kernel cuida do transporte do
        pacote. IP_FORWARD é utilizado em um roteamento que utilize
        endereços IP ligados às interfaces.


  7.

     PPeerrgguunnttaa
        Por que os endereços físicos da Ethernet para porta 1 e porta 2
        são os mesmos de acordo com o programa ``brcfg''?  Não deveriam
        ser diferentes?
     RReessppoossttaa
        Não. Todas as portas numa Bridge são designadas intencionalmente
        com o mesmo endereço físico da Ethernet pelo código de conexão
        do kernel.


  8.

     PPeerrgguunnttaa
        Bridging não aparece como uma opção quando se executa um "make
        config" do kernel. Como se pode capacitá-la?

     RReessppoossttaa
        Durante a configuração do kernel, responda 'S' para pergunta,
        ``Perguntar por módulos em desenvolvimento e/ou
        códigos/programas de controle incompletos (CONFIG_EXPERIMENTAL)
        [S/n/?]''.


  9.

     PPeerrgguunnttaa
        Muitos hubs (4 ou mais) se encadearam um após o outro (em
        série), o que causa problemas de sincronização na Ethernet. Que
        efeito tem uma Bridge numa sub-rede que esteja disposta em hubs?

     RReessppoossttaa
        Uma Bridge reajusta as regras dos 3/4/5 hubs. Uma Bridge não
        lida com pacotes da maneira que um hub faz e por isso não
        contribui para problemas de sincronização numa rede.


  10.

     PPeerrgguunnttaa
        Pode uma interface Bridge ter segmentos tanto de 10 Mb como 100
        Mb? Tal configuração pode desacelerar o resto do tráfego do lado
        de alta velocidade?

     RReessppoossttaa
        Sim, uma Bridge pode vincular um segmento de 10 Mb com um de 100
        Mb, contanto que o placa da rede do lado da rede rápida da
        Bridge tenha capacidade de 100 Mb. O TCP cuidará do resto.
        Enquanto seja verdadeiro que os pacotes de uma máquina da rede
        de 100 Mb se comunicam com uma máquina de rede de 10 Mb e se
        movem a somente 10Mb/s, o restante do tráfego na Ethernet rápida
        não é desacelerado.