# FreeBSD Handbook/Administração/Configuração e Ajuste/Configurando Interfaces de Rede
## 11.8 Configurando Interfaces de Redes

Contribuição de Marc Fonvieille.
Hoje não podemos pensar em um computador sem pensar em uma conexão de rede. Adicionar e configurar uma placa de rede é uma tarefa comum para qualquer administrador FreeBSD.

### 11.8.1 Encontrando o Driver Correto

Antes de começar, você deve saber o modelo da placa você tem, o chip que ele usa, e se é uma placa PCI ou ISA. O FreeBSD suporta uma ampla variedade de placas PCI e ISA. Verifique a lista de compatibilidade de hardware para sua versão para ver se sua placa é suportada.
Uma vez que tendo certeza de que sua placa é suportada, você precisa determinar o driver apropriado para ela. Os arquivos /usr/src/sys/conf/NOTES e /usr/src/sys/arch/conf/NOTES lhe darão a lista de drivers de interface de rede com algumas informações sobre os chipsets/placas suportadas. Se você tem dúvidas sobre qual driver é o correto, leia a página de manual do driver. A página de manual vai lhe dar mais informações sobre o hardware suportado e até mesmo os possíveis problemas que poderiam ocorrer.
Se você possui uma placa de rede comum, na maioria das vezes você não terá que procurar muito por um driver. Drivers para placas de rede comuns estão presentes no kernel GENERIC, então sua placa deve aparecer durante a inicialização, assim:
Neste exemplo, vemos que duas placas usando o driver dc(4) estão presentes no sistema.
Se o driver para sua placa de rede não está presente no GENERIC, você vai precisar carregar o driver apropriado para usá-la. Isto pode ser feito de duas maneiras:
* A maneira mais fácil é simplesmente carregar um módulo de kernel para sua placa de rede com kldload(8), ou automaticamente no momento da inicialização adicionando a linha apropriada no arquivo /boot/loader.conf. Nem todos os drivers estão disponíveis como módulos, exemplos notáveis de dispositivos para os quais não existem módulos são placas ISA.
* Alternativamente, você pode compilar estaticamente o suporte para sua placa no kernel. Verifique /usr/src/sys/conf/NOTES, /usr/src/sys/arch/conf/NOTES e a página de manual do driver para saber o que adicionar em seu arquivo de configuração do kernel. Para obter mais informações sobre como recompilar seu kernel, consulte o Capítulo 8. Se a sua placa foi detectada durante o boot pelo seu kernel (GENERIC) você não tem que construir um novo kernel.

#### 11.8.1.1 Usando Drivers NDIS Windows ®

Infelizmente, ainda existem muitos fabricantes que não fornecem os esquemas dos seus drivers para a comunidade de software livre, pois guardam tais informações como segredos comerciais. Em função disso, os desenvolvedores do FreeBSD e outros sistemas operacionais têm duas opções: desenvolver os drivers por um processo longo e doloroso de engenharia reversa ou usando o driver binário existente disponível para as plataformas Microsoft® Windows. A maioria dos desenvolvedores, incluindo os envolvidos com o FreeBSD, utilizaram a segunda abordagem.
Graças à contribuição de Bill Paul (wpaul) há suporte "nativo" para a Especificação de Interface de Driver de Rede (Network Driver Interface Specification - NDIS). O NDISulator do FreeBSD (também conhecido como Projeto Evil) pega um driver binário do Windows e, basicamente, o engana para que ele pense estar sendo executado no Windows. Em função do driver ndis(4) usar um binário do Windows, ele só pode ser usado em sistemas i386™ e amd64.
Nota: O driver ndis(4) é projetado para suportar, principalmente dispositivos PCI, Cardbus e PCMCIA. Dispositivos USB ainda não são suportados.
Para usar o NDISulator, você precisará de três coisas:
* Fontes do kernel
* Driver binário do Windows XP (com extensão .sys)
* Arquivo de configuração do driver do Windows XP (com extensão .inf)
Localise os arquivos da sua placa. Normalmente eles podem ser encontrados nos CDs fornecidos ou no site do fabricante. No exemplo seguinte usaremos os arquivos W32DRIVER.SYS e W32DRIVER.INF.
Nota: Você não pode usar um driver de Windows/i386 no FreeBSD/amd64, é necessário obter um driver de Windows/amd64 para que o esquema funcione corretamente.
O próximo passo é compilar o driver binário em um módulo de kernel carregável. Para isso, como root, use ndisgen(8):
O ndisgen(8) é interativo e irá pedir qualquer informação extra que precisar. Ele produzirá um módulo do kernel no diretório atual, que pode ser carregado assim:
Além do módulo de kernel gerado, você deve carregar os módulos ndis.ko e if_ndis.ko. Isso deve ser feito automaticamente quando você carregar qualquer módulo que dependa do ndis(4). Se você quiser carregá-los manualmente, use os seguintes comandos:
O primeiro comando carrega o driver de miniporta NDIS wrapper, o segundo carrega a interface de rede.
Agora, execute o dmesg(8) para ver se houve algum erro. Se tudo correu bem, você deve obter uma saída semelhante a seguinte:
A partir daí você pode tratar o dispositivo ndis0 como qualquer outra interface de rede (por exemplo, dc0).
Você pode configurar o sistema para carregar os módulos NDIS em tempo de inicialização da mesma forma que qualquer outro módulo. Primeiro, copie o módulo gerado, W32DRIVER_SYS.ko, para o diretório /boot/modules. Em seguida adicione a seguinte linha ao /boot/loader.conf:

### 11.8.2 Configurando a Placa de Rede

Depois de carregado o controlador de dispositivo (driver) correto para a placa de rede, é preciso que ela seja configurada. Assim como muitos outros itens, a placa de rede pode já ter sido configurada pelo programa sysintall no momento da instalação.
Para exibir informações sobre as interfaces de rede presentes no sistema, execute o seguinte comando:
Nota: Versões antigas do FreeBSD podem exigir que o comando ifconfig(8) seja acompanhado da opção -a. Para obter mais detalhes sobre a sintaxe correta do ifconfig(8), favor consultar a página do manual.
Neste exemplo, o comando mostra os seguintes dispositivos:
* dc0: A primeira interface Ethernet
* dc1: A segunda interface Ethernet
* plip0: A interface da porta paralela (se a porta paralela existir na máquina)
* lo0: O dispositivo de loopback
Para dar nome às placas de rede, o FreeBSD utiliza o nome do controlador (driver) seguido pela ordem na qual uma placa é detectada pelo kernel (núcleo do sistema) durante a inicialização do sistema. Por exemplo, sis2 seria a terceira placa de rede no sistema a usar o controlador sis(4)
Neste exemplo, o dispositivo dc0 está instalado e funcionando. Os principais indicadores são:
* UP significa que a placa está configurada e pronta para uso.
* A placa tem um endereço de Internet (inet) (neste caso 192.168.1.3)
* Ela possui uma máscara de sub-rede válida (netmask; 0xffffff00 é o mesmo que 255.255.255.0).
* Possui um endereço de divulgação (broadcast) válido (neste caso, 192.168.1.255).
* O endereço MAC da placa (ether) é 00:a0:cc:da:da:da