Gentoo Logo

Aviso : Este manual foi substituído por uma versão mais nova e não é mais mantido.


[ << ] [ < ] [ Início ] [ > ] [ >> ]


3. Rede modular

Conteúdo:

3.a. Módulos de rede

Nós agora suportamos scripts de rede modulares, o que significa que nós podemos facilmente adicionar suporte para novos tipos de interface e módulos de configuração, mantendo compatibilidade com os existentes.

Os módulos carregam por padrão se o pacote de que eles precisam está instalado. Se você especificar um módulo aqui que não tem seu pacote instalado, você obtém um erro dizendo que pacote você precisa instalar. Idealmente, você só usa o ajuste de módulos quando você tem dois ou mais pacotes instalados que fornecem o mesmo serviço e você precisa escolher um no lugar do outro.

Listagem de código 1.1: Preferência de módulo

# Preferir iproute2 ao invés de ifconfig
modules=( "iproute2" )

# Você também pode especificar outros módulos para uma interface
# Neste caso nós preferimos udhcpc ao invés de dhcpcd
modules_eth0=( "udhcpc" )

# Você também pode especificar que módulos não usar - por exemplo, você pode estar
# usando um suplicante ou linux-wlan-ng para controlar a configuração wireless, mas
# você ainda quer configurar ajustes de rede por cada ESSID associado.
modules=( "!iwconfig" )

3.b. Gerenciadores de interface

Nós atualmente oferecemos dois gerenciadores de interface: ifconfig e iproute2. Você precisa de um deles para qualquer tipo de configuração de rede.

ifconfig é o padrão do Gentoo e é incluído no profile (perfil) de sistema. iproute2 é um pacote mais poderoso e flexível, mas não é incluído por padrão.

Listagem de código 2.1: Para instalar iproute2

# emerge sys-apps/iproute2

# Para preferir iproute2 ao invés de ifconfig se ambos estiverem instalados
modules=( "iproute2" )

Já que ambos ifconfig e iproute2 fazem coisas parecidas, nós precisamos que sua configuração básica funcione com os dois. Por exemplo, os dois trechos de código abaixo funcionam com qualquer módulo que você estiver usando.

Listagem de código 2.2: exemplos de ifconfig e iproute2

config_eth0=( "192.168.0.2/24" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0" )

# Também podemos especificar broadcast
config_eth0=( "192.168.0.2/24 brd 192.168.0.255" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" )

3.c. DHCP

DHCP é um meio de obter informação de rede (endereço de IP, servidores de DNS, roteador, etc) de um servidor de DHCP. Isto significa que se há um servidor de DHCP rodando na rede, você só tem que dizer a cada cliente para usar DHCP e ele irá configurar a rede sozinho. Claro, você terá que configurar outras coisas como wireless, PPP ou outras coisas se forem necessárias antes de poder usar DHCP.

DHCP pode ser fornecido por dhclient, dhcpcd, pump ou udhcpc. Cada módulo de DHCP tem seus prós e contras - aqui está uma rápida lista.

Módulo de DHCP Pacote Prós Contras
dhclient net-misc/dhcp Feito pela ISC, as mesmas pessoas por trás do software BIND DNS. Muito configurável Configuração demasiadamente complexa, software é bem inflado, não pode obter servidores de NTP do DHCP, não envia nome de host por padrão
dhcpcd net-misc/dhcpcd Padrão do Gentoo por muito tempo, não precisa de ferramentas exteriores Não é mais mantido pelos desenvolvedores, pode ser lento às vezes, não vira daemon quando o lease é infinito
pump net-misc/pump Peso leve, não precisa de ferramentas exteriores Não é mais mantido pelos desenvolvedores, não confiável, em especial com modems, não pode obter servidores de NIS do DHCP
udhcpc net-misc/udhcp Peso leve - menor cliente de DHCP existente, feito para sistemas embedded Não testado - nenhuma distribuição usa por padrão, não pode definir um timeout maior que 3 segundos

Se você tiver mais de um cliente de DHCP instalado, você precisa especificar qual usar - caso contrário o padrão é dhcpcd se disponível.

Para enviar opções específicas para o módulo de DHCP, use module_eth0="..." (troque module pelo módulo de DHCP que você está usando - por exemplo dhcpcd_eth0)

Nós tentamos e tornamos o DHCP relativamente agnóstico - assim nós suportamos os seguintes comandos usando a variável dhcp_eth0. O padrão é não usar nenhum deles.

  • release - solta o endereço de IP para novo uso
  • nodns - não sobre-escrever /etc/resolv.conf
  • nontp - não sobre-escrever /etc/ntp.conf
  • nonis - não sobre-escrever /etc/yp.conf

Listagem de código 3.1: Exemplo de configuração de DHCP em /etc/conf.d/net

# Só necessário se você tiver mais que um módulo de DHCP instalado
modules=( "dhcpcd" ) 

config_eth0=( "dhcp" )
dhcpcd_eth0="-t 10" # Desistir após 10 segundos
dhcp_eth0="release nodns nontp nonis" # Só obter um endereço

Nota: dhcpcd, udhcpc e pump enviam o nome de host atual para o servidor de DHCP por padrão, então você não precisa mais especificá-lo.

3.d. Modem ADSL

Primeiro nós precisamos instalar o software ADSL.

Listagem de código 4.1: Install the rp-pppoe package

# emerge net-dialup/rp-pppoe

Aviso: baselayout-1.11.x só suporta PPPoE
Espera-se que versões futuras suportem PPPoA

Agora nós precisamos instruir configure eth0 para ser uma interface de ADSL e digitar nosso nome de usuário.

Listagem de código 4.2: Configure eth0 para ADSL

config_eth0=( "adsl" )
adsl_user_eth0="nomedeusuario"

Finalmente você precisa definir seu nome de usuário e senha em /etc/ppp/pap-secrets.

Listagem de código 4.3: exemplo de /etc/ppp/pap-secrets

# O * é importante
"usuario"  *  "senha"

3.e. APIPA (Automatic Private IP Addressing)

APIPA tenta encontrar um endereço livre no alcance 169.254.0.0-169.254.255.255 enviando arps de endereços aleatórios no alcance da interface. Se nenhuma resposta é ouvida, nós designamos o endereço à interface.

Isto só é útil para LANs onde não há servidor de DHCP e você não conecta-se diretamente à Internet e todos outros computadores usam APIPA.

Para suporte a APIPA, faça emerge net-misc/iputils ou net-analyzer/arping.

Listagem de código 5.1: Configuração de APIPA em /etc/conf.d/net

# Tentar DHCP primeiro - se falhar, usar como alternativa APIPA
config_eth0=( "dhcp" )
fallback_eth0=( "apipa" )

# Simplesmente usar APIPA
config_eth0=( "apipa" )

3.f. Bonding (junção)

Para bonding/trunking de links, faça emerge net-misc/ifenslave

Bonding é usado para aumentar a banda da rede. Se você tem duas placas de rede usando a mesma rede, você pode fazer bond delas para que suas aplicações vejam só uma interface, mas na verdade usem as duas.

Listagem de código 6.1: configuração de bonding em /etc/conf.d/net

#Juntando interfaces
slaves_bond0="eth0 eth1 eth2"

# Você pode não querer designar um IP à interface juntada
config_bond0=( "null" )

# Depende em eth0, eth1 e eth2 já que elas podem precisar de configuração adicional
depend_bond0() {
  need net.eth0 net.eth1 net.eth2
}

3.g. Bridging (ponte) (suporte a 802.1d)

Para suporte a bridging, faça emerge net-misc/bridge-utils

Bridging é usado para unir duas redes. Por exemplo, você pode ter um servidor que conecta-se à Internet via um modem ADSL e uma placa de acesso wireless para permitir que outros computadores conectem-se à rede via o modem ADSL. Você pode criar uma ponte para unir as duas interfaces.

Listagem de código 7.1: Configuração de ponte em /etc/conf.d/net

# Configure a ponte - "man btctl" para mais detalhes
brctl_br0=( "setfd 0" "sethello 0" "stp off" )

# Para adicionar portas à ponte br0
bridge_br0="eth0 eth1"

# Você precisa configurar todas portas com valores nulos para que o dhcp não seja iniciado
config_eth0=( "null" )
config_eth1=( "null" )

# Finalmente, dê um endereço para a ponte - você pode usar DHCP também
config_br0=( "192.168.0.1/24" )

# Depender de eth0 e eth1 já que podem necessitar de configuração adicional
depend_br0() {
  need net.eth0 net.eth1
}

Importante: Para usar algumas configurações de ponte, você pode consultar a documentação de nome de variável.

3.h. Endereço de MAC

Você não precisa instalar nada para mudar o endereço MAC de sua interface se você tiver sys-apps/baselayout-1.11.14 ou mais novo e quiser mudar para um endereço de MAC específico. No entanto, se você precisa mudar para um endereço de MAC aleatório ou tem um baselayout mais antigo que a versão mencionada acima, você precisa fazer emerge de net-analyzer/macchanger para poder fazer uso desta funcionalidade.

Listagem de código 8.1: Exemplo de mudança de endereço de MAC

# Para configurar o endereço de MAC de uma interface
mac_eth0="00:11:22:33:44:55"

# Para tornar apenas os últimos 3 bytes aleatórios
mac_eth0="random-ending"

# Para tornar aleatório dentro do mesmo tipo físico de conexão (como fibra,
# cobre, wireless) , todos fabricantes
mac_eth0="random-samekind"

# Para tornar aleatório dentro de qualquer tipo físico de conexão (como fibra,
# cobre, wireless) , todos fabricantes
mac_eth0="random-anykind"

# Aleatório completo - AVISO: alguns endereços de MAC gerados assim podem
# NÃO funcionar como esperado
mac_eth0="random-full"

3.i. Tunnelling (túneis)

Você não precisa instalar nada para fazer túneis já que o gerenciador de interfaces pode fazê-lo para você.

Listagem de código 9.1: Configuração de túneis em /etc/conf.d/net

# Para túneis GRE
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"

# Para túneis IPIP
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"

# Para configurar a interface
config_vpn0=( "192.168.0.2 peer 192.168.1.1" ) 

3.j. VLAN (suporte a 802.1q)

Para suporte a VLAN, faça emerge net-misc/vconfig.

Virtual LAN é um grupo de dispositivos de rede que agem como se estivessem conectados a um único segmento de rede - embora possam não estar. Membros de VLAN só podem ser membros da mesma VLAN, mesmo que estejam dentro da mesma rede física.

Listagem de código 10.1: configuração de VLAN em /etc/conf.d/net

# Especifique os números de VLAN para interface como abaixo
# Por favor certifique-se que as IDs de VLAN NÃO sejam com zeros
vlans_eth0="1 2"

# Você também pode configurar a VLAN
# veja a página de man de vconfig para mais detalhes
vconfig_eth0=( "set_name_type VLAN_PLUS_VID_NO_PAD" )
vconfig_vlan1=( "set_flag 1" "set_egress_map 2 6" )

# Configure a interface como normalmente
config_vlan1=( "172.16.3.1 netmask 255.255.254.0" )
config_vlan2=( "172.16.2.1 netmask 255.255.254.0" )

Importante: Para usar algumas configurações de VLAN, você pode precisar consultar a documentação de nomes de variáveis.


[ << ] [ < ] [ Início ] [ > ] [ >> ]


Imprimir

View all

Atualizado 3 de janeiro de 2006

Esta tradução não é mais mantida

Resumo: O Gentoo dá a você uma rede flexível - aqui você é ensinado sobre como escolher diferentes clientes de DHCP, configurar bonding, bridging, VLANs e mais.

Sven Vermeulen
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Desenvolvedor do Gentoo x86

Tavis Ormandy
Desenvolvedor do Gentoo Alpha

Jason Huebel
Desenvolvedor do Gentoo AMD64

Guy Martin
Desenvolvedor do Gentoo HPPA

Pieter Van den Abeele
Desenvolvedor do Gentoo PPC

Joe Kallar
Desenvolvedor do Gentoo SPARC

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Grant Goodyear
Revisor

Gerald J. Normandin Jr.
Revisor

Donnie Berkholz
Revisor

Ken Nowack
Revisor

Lars Weiler
Colaborador

Enderson Maia
Tradutor Responsável

Marcelo Góes
Tradutor

Eduardo Magalhães
Tradutor

Marcelo Azambuja
Tradutor

Marcos Vinicius Buzo
Tradutor

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.