Gentoo Logo

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


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


2. Configuração avançada

Conteúdo:

2.a. Configuração avançada

A variável config_eth0 é o coração da configuração de uma interface. É uma lista de instruções de alto nível para configurar a interface (eth0 neste caso). Cada comando na lista de instruções é feito seqüencialmente. A interface é considerada OK se pelo menos um comando funcionar.

Aqui está uma lista de instruções internas.

Comando Descrição
null Não fazer nada
noop Se a interface estiver levantada e houver um endereço, abortar a configuração com sucesso
um endereço IPv4 ou IPv6 Adicionar o endereço à interfaceAdicionar o endereço à interface
dhcp, adsl ou apipa (ou comando personalizado de um módulo de terceiros) Rodar o módulo que fornece o comando. Por exemplo, dhcp irá rodar um módulo que fornece DHCP, que pode ser tanto dhcpcd, udhcpc, dhclient ou pump.

Se um comando falhar, você pode especificar uma alternativa. A alternativa tem que bater com a estrutura de configuração exatamente.

Você pode encadear estes comandos juntamente. Aqui estão alguns exemplos do mundo real.

Listagem de código 1.1: Exemplos de configuração

# Adicionando três endereços IPv4
config_eth0=(
  "192.168.0.2/24"
  "192.168.0.3/24"
  "192.168.0.4/24"
)

# Adicionando um endereço IPv4 e dois endereços IPv6
config_eth0=(
  "192.168.0.2/24"
  "4321:0:1:2:3:4:567:89ab"
  "4321:0:1:2:3:4:567:89ac"
)

# Manter nosso endereço designado pelo kernel, a menos que a interface
# caia, neste caso obter outro via DHCP. Se DHCP falhar, então adicionar um
# endereço estático determinado por APIPA
config_eth0=(
  "noop"
  "dhcp"
)
fallback_eth0=(
  "null"
  "apipa"
)

Nota: Quando usar o módulo ifconfig e adicionar mais que um endereço, aliases de interface são criados para cada endereço adicional. Com os dois exemplos acima, você obterá as interfaces eth0, eth0:1 e eth0:2. Você não pode fazer nada especial com essas interfaces, já que o kernel e outros programas irão simplesmente tratar eth0:1 e eth0:2 como eth0.

Importante: A ordem da alternativa é importante! Se você não especificar a opção null, o comando apipa só será rodado se o comando noop falhar.

Nota: APIPA e DHCP são discutidos mais tarde.

2.b. Dependências de rede

Scripts de init em /etc/init.d podem depender de uma interface de rede específica ou só net. net pode ser definido em /etc/conf.d/rc para significar diferentes coisas usando a variável RC_NET_STRICT_CHECKING.

Valor Descrição
none O serviço net é considerado como sempre funcionando
no Basicamente significa que pelo menos um serviço net.* fora net.lo deve estar funcionando. Isto pode ser usado por usuários de notebooks que têm wifi e um nic estático, e só precisam de um funcionando para que o serviço net seja visto como funcionando.
lo É igual a opção no, mas net.lo também é contado. Deve ser útil para pessoas que não se importam se alguma interface específica está funcionando durante o carregamento.
yes TODAS interfaces de rede DEVEM estar funcionando para o serviço net ser considerado como funcionando.

Mas e o net.br0 dependendo de net.eth0 e net.eth1? net.eth1 pode ser um dispositivo wireless ou ppp que precisa de configuração antes de ser adicionado à ponte. Isto não pode ser feito em /etc/init.d/net.br0 já que é um link simbólico para net.lo.

É resposta é criar sua própria função depend() em /etc/conf.d/net.

Listagem de código 2.1: dependência net.br0 em /etc/conf.d/net

# Você pode usar qualquer dependência (use, after, before) como encontradas em scripts atuais
depend_br0() {
  need net.eth0 net.eth1
}

Para uma discussão mais detalhada sobre dependência, consulte a seção Escrevendo scripts de init no Manual do Gentoo.

2.c. Nomes de variáveis e valores

Nomes de variáveis são dinâmicos. Normalmente seguem a estrutura variable_${interface|mac|essid|apmac}. Por exemplo, a variável dhcpcd_eth0 tem os valores das opções de dhcpcd para eth0 e dhcpcd_essid tem o valor das opções de dhcpcd quando qualquer interface conecta-se ao ESSID "essid".

No entanto, não existe nenhuma regra rígida e pronta que diz que nomes de interface devem ser ethx. Na verdade, muitas interfaces wireless têm nomes como wlanx, rax bem como ethx. Também, algumas intercaces definidas por usuários como pontes podem receber qualquer nome, como foo. Para tornar a vida mais interessante, pontos de acesso (AP) de wireless podem ter nomes com caracteres não alfa-numéricos neles - isto é importante porque você pode configurar parâmetros de rede por ESSID.

O ponto negativo disto é que o Gentoo usa variáveis de bash para rede - e o bash não pode usar nada fora caracteres ingleses alfa-numéricos. Para contornar esta limitação nós trocamos cada caractere que não é inglês alfa-numérico em um caractere _.

Outro ponto negativo do bash é o conteúdo das variáveis - alguns caracteres precisam de escape. Isto pode ser feito colocando o caractere \ na frente do caractere que precisa ser escapado. A seguinte lista de caracteres precisa ser escapada do seguinte jeito: ", ' e \.

Neste exemplo nós usados ESSID de wireless já que contêm o maior escopo de caracteres. Nós usaremos a ESSID My "\ NET:

Listagem de código 3.1: exemplo de nome de variável

# Isto funciona, mas o domínio é inválido
dns_domain_My____NET="My \"\\ NET"

# A parte acima configura o domínio de dns para My "\ NET quando um cartão de wireless
# conecta-se a um AP cujo ESSID é My "\ NET

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


Imprimir

View all

Atualizado 22 de dezembro de 2005

Esta tradução não é mais mantida

Resumo: Aqui nós aprendemos sobre como a configuração funciona - você precisa saber isto antes de aprendermos sobre rede modular.

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.