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 |
config_eth0=(
"192.168.0.2/24"
"192.168.0.3/24"
"192.168.0.4/24"
)
config_eth0=(
"192.168.0.2/24"
"4321:0:1:2:3:4:567:89ab"
"4321:0:1:2:3:4:567:89ac"
)
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 |
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 |
dns_domain_My____NET="My \"\\ NET"
|
[ << ]
[ < ]
[ Início ]
[ > ]
[ >> ]
O conteúdo deste documento está licenciado pela licença Creative Commons -
Attribution / Share Alike.
|