The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Difference between revisions of "Funtoo Linux Networking/pt-br"
(15 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{Note|This is a legacy translation created before the translate extension was being used on the wiki. I can be used as source material for a future official translation.}} | |||
<blockquote>Esse documento explica como configurar suas configurações de rede ao explicar a funcionalidade de configuração de rede (network configuration functionality) disponível no Funtoo Linux. Também está coberto aqui sobre configuração <tt>dhcpcd 5.x</tt>, Wi-Fi (IEEE 802.11), e o framework OpenResolv. | <blockquote>Esse documento explica como configurar suas configurações de rede ao explicar a funcionalidade de configuração de rede (network configuration functionality) disponível no Funtoo Linux. Também está coberto aqui sobre configuração <tt>dhcpcd 5.x</tt>, Wi-Fi (IEEE 802.11), e o framework OpenResolv. | ||
</blockquote> | </blockquote> | ||
== Apresentação == | == Apresentação == | ||
__TOC__ | __TOC__ | ||
Line 160: | Line 162: | ||
=== Múltiplas Configurações de Rede === | === Múltiplas Configurações de Rede === | ||
Para informações de como obter múltiplas e independente configurações de rede, por favor verifique [[Stacked Runlevels]]. | Para informações de como obter múltiplas e independente configurações de rede, por favor verifique [[Pt-br/Stacked_Runlevels|Stacked Runlevels]]. | ||
=== Configs Alternados === | === Configs Alternados === | ||
Line 216: | Line 218: | ||
Quando a interface VLAN for inicializada, ela será nomeada <tt>eth1.32</tt>. | Quando a interface VLAN for inicializada, ela será nomeada <tt>eth1.32</tt>. | ||
=== | === Nomes de VLAN Personalizados === | ||
No entanto, as vezes você pode querer desligar nomeação automática de VLAN baseada em arquivo e dar a sua interface VLAN um nome personalizado, tal como <tt>mgmt</tt>. Para fazer isso, você configuraria a interface trunk do mesmo jeito exato como descrito acima, mas ao invés de criar uma interface <tt>netif.eth1.32</tt>, você criaria uma interface <tt>netif.mgmt</tt>, e especificar <tt>vlan</tt> e <tt>trunk</tt> no arquivo config <tt>/etc/conf.d/netif.mgmt</tt>, como a seguir: | |||
<pre>template="interface" | <pre>template="interface" | ||
Line 226: | Line 228: | ||
gateway="1.2.3.1" | gateway="1.2.3.1" | ||
# etc...</pre> | # etc...</pre> | ||
Quando você especifica <tt>trunk</tt> e <tt>vlan</tt> no arquivo de configuração de interface, auto-detectador baseado em nome de trunk é desabilitado. Ambos <tt>trunk</tt> e <tt>vlan</tt> devem ser especificados -- você não pode especificar apenas um. | |||
Então você simplesmente criaria um link simbólico para a interface de rede VLAN para <tt>netif.mgmt</tt>: | |||
<console># ##i##cd /etc/init.d | <console># ##i##cd /etc/init.d | ||
# ##i##ln -s netif.tmpl netif.mgmt | # ##i##ln -s netif.tmpl netif.mgmt | ||
# ##i##rc-update add netif.mgmt default</console> | # ##i##rc-update add netif.mgmt default</console> | ||
Quando a interface VLAN for inicializada, ela será nomeada <tt>mgmt</tt>. | |||
=== Bonding | === Configuração Bonding === | ||
Bonding | Bonding lhe permite agregar múltiplas interfaces de rede dentro de uma única interface de rede lógica, permitindo para benefícios em taxa de transferência tão bem quanto resiliência no caso que uma interface individual pode cair. Esse exemplo mostra como você criaria uma interface bonding (<tt>mybond</tt>) com uma simples configuração de ip estático, contendo dois dispositivos slave (<tt>eth0</tt> e <tt>eth1</tt>). | ||
Primeiro certifique-se de que seu kernel está configurado para suportar bonding (o nome do módulo é <tt>bonding</tt>) : | |||
<console> | <console> | ||
Line 246: | Line 248: | ||
</console> | </console> | ||
Você vai querer certificar-se de que CONFIG_BONDING está configurado como "m" ou "y". Você pode encontrar essa opção de configuração do kernel em "Device Drivers" -> "Network Device Support" -> "Bonding driver support". | |||
Certifique-se de que ifenslave está instalada (emerged) (esse pacote incluso no Funtoo stage3): | |||
<console> | <console> | ||
# ##i##emerge ifenslave | # ##i##emerge ifenslave | ||
</console> | </console> | ||
Uma vez que o bonding está habilitado no kernel, você precisará escolher ao menos dois dispositivos para uni-los. Esses serão definidos como interface "slave" sem endereço IP. | |||
<console> | <console> | ||
Line 260: | Line 262: | ||
</console> | </console> | ||
Depois, configure as interfaces slave ao criar <tt>/etc/conf.d/netif.eth0</tt> e <tt>/etc/conf.d/netif.eth1</tt> com os seguintes conteúdos: | |||
<pre> | <pre> | ||
Line 266: | Line 268: | ||
</pre> | </pre> | ||
Agora, criaremos uma interface bond e tornaremos <tt>netif.eth0</tt> e <tt>netif.eth1</tt> escravas dessa interface. Note que nossa interface bond pode ter qualquer nome. Para demonstrar isso, lhe daremos o nome de "mybond" abaixo: | |||
<console> | <console> | ||
Line 273: | Line 275: | ||
</console> | </console> | ||
Agora podemos configurar "mybond" utilizando seu arquivo de configuração <tt>/etc/conf.d/netif.mybond</tt>, assim como faríamos uma interface regular, exceto que especificamos <tt>slaves</tt>: | |||
<pre> | <pre> | ||
Line 284: | Line 286: | ||
</pre> | </pre> | ||
Em uma configuração bond, é comum definir o MTU para o valor máximo possível suportado pelo hardware para to maximar a taxa de transferência. A fim de fazer isso, simplesmente defina a opção MTU em <tt>/etc/conf.d/netif.mybond</tt> para o valor máximo suportado pelo seu hardware. Os scripts de rede certificarão que essa configuração de MTU está aplicada a todas as interfaces slave: | |||
<pre> | <pre> | ||
Line 290: | Line 292: | ||
</pre> | </pre> | ||
=== Bridge | === Configuração Bridge === | ||
Quando hospedar máquinas virtuais, pdoe ser conveniente utilizar uma configuração bridge. Esse exemplo lhe mostra como vocẽ criaria uma bridge (br0) como uma simples configuração de ip estático, contendo dois dispositivos slave (eth0, tap0). | |||
Primeiro, certifiquei-se de que seu kernel está configurado para suportar bridging (o nome do módulo é <tt>bridge</tt>) : | |||
<console> | <console> | ||
Line 302: | Line 304: | ||
</console> | </console> | ||
Segundo passo, certifique-se de que você possui o software exigido instalado: | |||
<console> | <console> | ||
Line 308: | Line 310: | ||
</console> | </console> | ||
Depois, crie os links simbólicos necessários para as interfaces e adicione-as ao seu runlevel padrão : | |||
<console> | <console> | ||
Line 319: | Line 321: | ||
</console> | </console> | ||
Depois, configure a interface slave <tt>/etc/conf.d/netif.eth0</tt> : | |||
<pre> | <pre> | ||
Line 325: | Line 327: | ||
</pre> | </pre> | ||
Depois, configure a interface slave <tt>/etc/conf.d/netif.tap0</tt> - note que você necessitará somente group OU user, não ambos : | |||
<pre> | <pre> | ||
Line 334: | Line 336: | ||
</pre> | </pre> | ||
... | ... e a interface bridge <tt>/etc/conf.d/netif.br0</tt> : | ||
<pre> | <pre> | ||
Line 347: | Line 349: | ||
</pre> | </pre> | ||
Se você estiver utilizando dhcpcd, você deve certificar-se de que ele tente configurar <tt>eth0</tt> ou <tt>br0</tt> ao adicionar o seguinte ao <tt>/etc/dhcpcd.conf</tt> : | |||
<pre> | <pre> | ||
Line 354: | Line 356: | ||
</pre> | </pre> | ||
=== | === Configuração de Rede Mais Complexa === | ||
Se os templates padrões não funcionarem para as suas necessidades, simplesmente crie um novo template -- recomendo iniciar a partir do template <tt>interface</tt> para muitas das coisas: | |||
<console># ##i##cd /etc/netif.d | <console># ##i##cd /etc/netif.d | ||
# ##i##cp interface custom</console> | # ##i##cp interface custom</console> | ||
Você pode agora chamar quaisquer comandos que você precisar em <tt>/etc/netif.d/custom</tt>. As seguintes funções shell podem ser definidas em um script de rede: | |||
==== netif_create ==== | ==== netif_create ==== | ||
Em <tt>netif_create</tt>, você deve chamar quaisquer comandos para criar a interface se ela ainda não existe. | |||
==== netif_depend ==== | ==== netif_depend ==== | ||
Em <tt>netif_depend</tt>, você pode definir dependências, utilizando as funções <tt>need</tt> e <tt>use</tt>. | |||
==== netif_pre_up ==== | ==== netif_pre_up ==== | ||
Em <tt>netif_pre_up</tt>, você pode definir as ações de configuração de rede ao executar antes da interface estabelecer comunicação. Você pode também certificar-se de que certas variáveis estão especificadas ao chamar <tt>require var1 [var2...]</tt> aqui. | |||
==== netif_post_up==== | ==== netif_post_up==== | ||
Em <tt>netif_post_up</tt>, você pode definir as ações de configuração de rede para serem desempenhadas após a interface estabelecer comunicação. | |||
==== netif_pre_down ==== | ==== netif_pre_down ==== | ||
Em <tt>netif_pre_down</tt>, você pode definir as ações de configuração de rede para serem desempenhadas antes que a interface encere a conexão. | |||
==== netif_post_down ==== | ==== netif_post_down ==== | ||
Em <tt>netif_post_down</tt>, você pode definir as ações de configuração de rede para que sejam desempenhadas depois de encerrar a interface. | |||
==== netif_destroy ==== | ==== netif_destroy ==== | ||
Em <tt>netif_destroy</tt>, você pode invocar quaisquer comandos necessários para destruir/excluir a interface se ela for dinâmica (tun/tap, etc.) | |||
==== | ==== Como Funciona ==== | ||
Você não especifica uma função para na verdade estabelecer a conexão pela interface, porque o sistema baseado em template faz isso por você. O sistema baseado em template também executa todas as ações exigidas para encerrar a conexão da interface, então você somente precisa especificar ações atípicas que devem ser executadas - tal como remover interfaces child ou destruir uma bridge utilizando <tt>brctl</tt>. | |||
Quando você criar seu próprio template de configuração de rede (network configuration template), as compatibilidades a seguir ficam disponíveis para uso automaticamente, desde que as variáveis apropriadas sejam definias no arquivo <tt>/etc/conf.d/netif.<ifname></tt>, sem necessitar de quaisquer passos da sua parte: | |||
* DNS | * Configuração de DNS utilizando <tt>domain</tt> e <tt>nameservers</tt> config settings. OpenResolv é utilizando automaticamente. | ||
* VLAN | * Configuração VLAN utilizando auto-naming (<tt>netif.ethX.Y</tt>) ou via nomeação personalizada com <tt>trunk</tt> e <tt>vlan</tt> config settings. | ||
* | * Gateway IPv4 padrão e configuração de rota utilizando as configurações <tt>gateway</tt> e <tt>route</tt>. | ||
* | * Gateway IPv6 padrão e configuração de rota utilizando as configurações <tt>gateway6</tt> e <tt>route6</tt>. | ||
* MTU | * Configuração MTU utilizando <tt>mtu</tt> setting. | ||
* Auto-depend ( | * Auto-depend (e configuração de auto-MTU) de especificadas interfaces slave utilizando as configurações <tt>slaves</tt>. | ||
* | * Renomear interfaces de rede existentes (especificar endereço MAC utilizando as configurações <tt>macaddr</tt>). | ||
Para tirar vantagem dessa funcionalidade, simplesmente habilite as variáveis apropriadas. | |||
Todas as outras configurações de rede necessárias e comportamento de dependência devem ser definidas utilizando as funções <tt>netif_</tt>-prefix descritas acima. | |||
== Wireless Configuration == | == Wireless Configuration == | ||
Line 416: | Line 418: | ||
If you have a network configuration template that might be useful to others, please post it to the [http://groups.google.com/group/funtoo-dev funtoo-dev mailing list] so we can review it and possibly incorporate it into Funtoo. | If you have a network configuration template that might be useful to others, please post it to the [http://groups.google.com/group/funtoo-dev funtoo-dev mailing list] so we can review it and possibly incorporate it into Funtoo. | ||
== | == Licença == | ||
Funtoo Linux networking | Os scripts Funtoo Linux networking são liberados sob a seguinte licença: | ||
{{BSD2 Funtoo|src=http://github.com/funtoo/corenetwork}} | {{BSD2 Funtoo|src=http://github.com/funtoo/corenetwork}} | ||
[[Category:Networking]] | [[Category:Networking]] | ||
[[Category: | [[Category:pt_BR]] | ||
Latest revision as of 18:36, April 13, 2022
This is a legacy translation created before the translate extension was being used on the wiki. I can be used as source material for a future official translation.
Esse documento explica como configurar suas configurações de rede ao explicar a funcionalidade de configuração de rede (network configuration functionality) disponível no Funtoo Linux. Também está coberto aqui sobre configuração dhcpcd 5.x, Wi-Fi (IEEE 802.11), e o framework OpenResolv.
Apresentação
Funtoo Linux possui seu próprio sistema central de (core network configuration system) que difere um pouco de sistemas de configuração de rede utilizado em Gentoo Linux e em OpenRC.
Nessa documentação, explicarei as únicas adições e alterações no Funtoo network configuration e mostrar como utilizar o sistema para configurar sua rede.
Também explicarei como utilizar o dhcpcd
para gerenciar interfaces de rede em redes baseadas em DHCP, e também cobrirei a configuração do OpenRC stacked runlevel configuration, configuração Wi-Fi (IEEE 802.11), e o framework OpenResolv, que é habilitado no Funtoo Linux por padrão.
Uma breve apresentação ao Funtoo Network Configuration
Antes que eu entre em detalhes técnicos de configurar sua rede, é importante entender que o Funtoo Linux possui um número de opções diferentes disponíveis para que você configure a rede, como ainda mais recursos a serem adicionados no futuro. Cada approach é diferente e possui suas próprias forças e fraquezas, e isso, na minha opinião, uma boa coisa.
O Jeito (Dinâmico) Fácil
Quando configurar sua rede, uma opção é pular a configuração de rede tradicional e simplesmente contar depender do DHCP. Esse é de longe o método mais simples de configurar sua rede. Se você estiver em uma rede cabeada, outros passos não são tipicamente exigidos além de habilitar um DHCP client, e o Funtoo Linux inclui dhcpcd 6.x
por padrão.
Network Manager, Wicd
Se caso você for utilizar um pacote third party tal qual Network Manager ou Wicd para gerenciar sua rede, então você não precisa configurar DHCP de modo algum. Esses pacotes configuram DHCP para você. Simplesmente execute um emerge no pacote que você quer utilizar e comece a utilizá-lo.
DHCP-Only Systems
Se você não estiver planejando utilizar um pacote third-party para gerenciar suas interfaces de rede, é ainda extremamente fácil configurar rede DHCP, especialmente se você sempre utiliza DHCP para conectar às redes, que é comum para desktops ou laptops. Nesse cenário, podemos simplesmente habilitar dhcpcd
para ser executado na inicialização do sistema (system startup). Ele será executado em plano de fundo e automaticamente procurará por servidores DHCP em toda a suas interfaces de rede, e tentará to gerar o enlace de um endereço IP a partir de quaisquer servidor DHCP encontrado.
Se isso soa como o que vocẽ quer fazer, então adicione dhcpcd
á suas runlevel padrões como a seguir:
root # rc-update add dhcpcd default
Para habilitar o DHCP imediatamente, você seguiria o comando anterior com um comando rc
, que iniciaria o cliente dhcpcd
que você acabou de adicionar:
root # rc
Se você estiver em uma rede cabeada e os drivers necessários no seu kernel, então isso deve bastar para você. Para redes sem fio, mois passos são necessários para para utilizar seu hardware de rede sem fio para assim associá-lo a um access point, que terá uma cobertura mais adiante nessa documentação.
Tweaking Dhcpcd
Por hora, é importante notar que o dhcpcd 6.x
gerenciará todas as interfaces de rede disponíveis por padrão. Se você quiser executar um cliente DHCP em todas, menos uma interface, ou alguma outra subset de interfaces, você pode adicionar a denyinterfaces
apropriada ou allowinterfaces
glob pattern no /etc/dhcpcd.conf
:
# manage all interfaces but eth0 with dhcpcd (gerencia todas as interfaces, exceto a eth0 com o dhcpcd) denyinterfaces eth0
Isso pode ser realizado também ao modificar /etc/init.d/dhcpcd
diretamente e adicionar -Z ifglob
ou -z ifglob
(os parâmetros equivalentes para comando) em command_args
.
Utilizando os scripts Funtoo para o DHCP
Você pode também utilizar o Funtoo Linux networking scripts para iniciar um cliente DHCP apenas em uma interface específica. Esse acesso é melhor se você está planejando também fazer algum bridging avançado, bonding ou configuração VLAN em sua máquina com o DHCP, já que você estará utilizando o Funtoo Linux networking scripts para isso também.
Para utilizar esse acesso variante, não habilite /etc/init.d/dhcpcd
diretamente. Ao invés disso, utilize o Funtoo Linux dhcpcd
template que iniciará o dhcpcd em uma única interface. Abaixo, você verá os passos para fazer isso. Isso é muito similar a como realizamos configurações avançadas de interfaces de rede, que cobriremos mais adiante nessa documentação:
root # cd /etc/init.d root # ln -s netif.tmpl netif.eth0 root # rc-update add netif.eth0 default root # echo template=dhcpcd > /etc/conf.d/netif.eth0 root # rc
O último comando, rc
, faz com que o netif.eth0
seja habilitada.
Configuração de Rede no Servidor
Para servidores e cenários avançados em redes, Funtoo Linux oferece seu próprio sistema de configuração de rede modular baseado em template. Esse sistema oferece um monte de flexibilidade para a configuração de interfaces de rede, essencialmente servindo como um "kit de construção de interface de rede." Esse sistema pode ser utilizado por si só, ou mesmo combinado com o dhcpcd, como mostrado na seção anterior.
Aqui estão os componentes chave do sistema de configuração de rede baseado em template:
- /etc/init.d/netif.lo
- Um script init que configura a interface localhost. Esse script sempre é habilitado e é parte do processo de boot.
- /etc/netif.d
- Esse é um diretório que contem vários templates de configuração de rede. cada um desses templates é focado em configurar um tipo particular de interface de rede, tal como uma interface baseada em IP estático, uma interface bridge, uma interface bond, etc.
- /etc/init.d/netif.tmpl
- Essa é a master init script para sistema de configuração de rede baseada em template. Novas interfaces são adicionadas ao seu sistema ao criar links simbólicos a esse arquivo em /etc/init.d.
Então, se você quisesse utilizar esse sistema para configurar eth0 como um endereço de IP estático, você criaria um symlink netif.eth0 ao netif.tmpl como a seguir:
root # cd /etc/init.d root # ln -s netif.tmpl netif.eth0
Depois, você criaria um arquivo de configuração /etc/conf.d/netif.eth0 que especificaria qual template utilizar a partir do diretório /etc/netif.d:
template="interface" ipaddr="10.0.1.200/24" gateway="10.0.1.1" nameservers="10.0.1.1 10.0.1.2" domain="funtoo.org"
Para completar nossa configuração de rede por Ip estático precisaríamos:
root # rc-update add netif.eth0 default
Quando configurar seua própria interface de rede estática, um de ipaddr ou ipaddrs é exigido e deve especificar o(s) endereço(s) IP para configurar para essa interface, no formato "a.b.c.d/netmask". Parâmetros opcionais incluem gateway, que define um gateway padrão para sua rede inteira, e se configuração deve especificar o endereço de IP do gateway. Adicional, domain e nameservers (separado por espaço se mais tiver mais que uma) pode ser utilizado para especificar informação de DNS para essa interface.
Variáveis de Configurações
Variáveis de Interface
As variáveis ipaddr e ipaddrs possuem suporte as templates interface e bridge, e são utilizadas para especificar um único ou múltiplos endereços IPv4 ou IPv6 para a interface. Endereços IP devem ser especificados no formato 'IP/netmask', Tal como 10.0.0.1/24. Múltiplos endereços IP podem ser especificados delimitados com espaço em branco:
ipaddrs="10.0.0.1/24 10.0.0.2/24"
Endereços de Broadcast
Por padrão, um endereço broadcast será calculado ni endereço IP e na mascara de rede (network mask). Se você precisar de manualmente especificar um endereço broadcast, utilize o seguinte formato para o seu endereço:
ipaddrs="10.0.0.1/24;broadcast=10.0.1.255 10.0.0.2/24"
Não Especificando Um Endereço
Note que em alguns casos, você pode escolher não especificar ipaddr ou ipaddrs para um template bridge. Isso é permitido. Se você não quiser especificar um endereço IP para uma interface regular, você pode escolher utilizar o template interface sem um endereço de IP especificado no config, ou utilizar o template interface-noip ao invés disso, por questão de claridade.
Visualizando Todos os Endereços IP Configurados
Note também que se você especificar múltiplos endereços IPv4, ifconfig mostrará somente o primeiro endereço IP. Para visualizar todos os endreços IP associados a interface, utilize o comando ip addr show.
Variáveis Gerais
As variáveis a seguir são habilitadas por padrão por padrão para todos os scripts de rede, e se especificado apontará uma ação de configuração correspondente:
- nameservers
- Define DNS nameservers utilizando OpenResolv. Especifique múltiplos IPv4 ou IPv6 nameservers assim: "1.2.3.4 1.2.3.5 1.2.3.6". Note que o OpenResolv trata 127.0.0.1 especialmente, e indica que você está executado um local name resolver como dnsmasq ou bind. OpenResolv ignorará todas as outras name servers especificadas ao lado de 127.0.0.1. Veja man resolvconf e man resolvconf.conf para informações adicionais de configuração.
- search
- Define informação de busca de DNS utilizandoOpenResolv.
- domain
- Define domínio DNS utilizando OpenResolv.
- gateway
- Define umgateway IPv4 padrão nessa interface.
- gateway6
- Define um gateway IPv6 padrão nessa interface.
- route
- Especifica uma lista de routes IPV4 delimitados por um ponto e vírgula a ser aplicada quando essa interface for inicializada. Será fixado ao ip -4 route add.
- route6
- Specifica uma lista de routes IPV6 delimitado por ponto e virgula para aplicar quando essa interface for inicializada. Será fixado ao ip -6 route add.
- mtu
- Defint Maximum Transmit Unit para a interface
- mac_replace
- Substitui o endereço MAC existente especificado nessa variável.
Variáveis VLAN
O suporte a VLAN é habilitado por padrão para todos os scripts de configuração de rede. Se um script de rede possui um nome no formato netif.ethX.Y, então é presumido que seja uma interface VLAN referencing trunk ethX e VLAN ID Y. Se você deseja um nome personalizado para a sua interface VLAN, você pode nomear sua interface seja para qual nome você gostaria e especificar as seguintes variáveis em seu interface config:
- trunk
- VLAN trunk interface, e.g. "eth0"
- vlan
- VLAN id, e.g. "32"
Bridge / Variáveis Tap (Torneira)
As variáveis a seguir para configuração de uma interface bridge funcional com interfaces tap opcionais:
- slaves
- Define interfaces slave dessa interface (para bridges, etc.) Todas as slaves serão automaticamente dependentes, e também terão automaticamente suas definições mtu para aquela da interface atual, se uma mtu for especificada para a interface atual. Essa configurações são necessária para o template bond e é opcional para o template bridge.
- stp
- Habilita o protocolo Spanning Tree em uma interface bridge assim "stp=on"
- forwarding
- Habilita o forwarding em uma interface bridge ao invocar sysctl; como essa interface não existe quando sysctl for invocado pela init, fazemos isso aqui. Se essa for desabilitada, sua bridge não direcionará o tráfego de volta na rede. uso: "forwarding=1"
OpenResolv e resolv.conf
OpenResolv será utilizado para definir informação DNS fornecido pelas variáveis nameservers, domain e search quando uma interface for habilitada. o framework OpenResolv adicionará entradas ao /etc/resolv.conf, e também cuidará de remover essa entradas quando a interface for interrompida. Dessa maneira, /etc/resolv.conf deve sempre conter informações atuais e não deve precisar ser manualmente editada pelo administrador do sistema. dhcpcd utilizara o OpenResolv para a atualização de informação de DNS do sistema também.
Serviços Dependentes de Rede (Network-Dependent Services)
Uma diferença importante entre o Gentoo Linux e o Funtoo Linux é que, no Funtoo Linux, network-dependent services dependem estritamente somente de netif.lo. Isso significa que se outro serviço de rede requer que uma interface seja habilitada, tal como samba necessitado da eth0, então o administrador do sistema deve especificar essa relação ao adicionar a seguinte linha em /etc/conf.d/samba:
rc_need="netif.eth0"
Isso terá o efeito de certificar que netif.eth0 é inicializada prioridade para o samba e que o samba é interrompido is ao parar netif.eth0.
Muitos serviços de rede, especialmente aquelas que escutam em todas as interfaces de rede, não precisa de uma linha rc_need a fim de funcionar corretamente. Evitando o uso do rc_need quando exigido otimizará boot times e permitirá que mais serviços de rede estejam disponíveis quando as interfaces de rede foram habilitadas e desabilitadas/interrompidas pelo administrador do sistema.
Múltiplas Configurações de Rede
Para informações de como obter múltiplas e independente configurações de rede, por favor verifique Stacked Runlevels.
Configs Alternados
Se você precisar executar o mesmo serviço com parâmetros de configurações diferentes dependendo do runlevel, então você será feliz em sabem que você pode especificar arquivos config.d de runlevel específico ao anexar um . <runlevel> suffix. Nesse exemplo em particular, poderíamos imaginar uma situação onde teríamos dois child runlevels nomeados home e work:
/etc/conf.d/netif.eth0.home /etc/conf.d/netif.eth0.work
Note que esse recurso funciona para todos os scripts init, não somente scripts de configuração de rede.
Interface Renaming
Os scripts de rede do Funtoo agora possuem suporte a interface renaming, então você pode gerar uma interface chamada lan caso queira. Para fazer isso, simplesmente especifiquei o endereço de máquina da interface que você gostaria de renomear utilizando a variável macaddr:
macaddr="00:15:17:19:b6:a3"
se esse endereço de máquina for parte do do arquivo de configuração netif.lan, então quando essa interface inicializar, seja qual for a interface atual que tenha o endereço de máquina de 00:15:17:19:b6:a3 (i.e. eth5) será renomeado para lan prior to the interface being brought up, and will show up in ifconfig and ip commands as being an interface named lan. It is possible to combine this with the mac_replace variable to set a new MAC address, if desired.
Configuração Básica de VLAN
O template padrão interface pode suporte a VLANs. Para utilizar suporte a VLAN, primeiro certifique-se de que seu kernel foi compilado com, suporte a VLAN (o nome do módulo é 8021q) :
root # grep CONFIG_VLAN /usr/src/linux/.config CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y
Depois, configure a interface trunk utilizando o template interface-noip. Assumindo que eth1 está em trunk, você criaria o arquivo /etc/conf.d/netif.eth1 com os seguintes conteúdos:
template="interface-noip"
Depois, gere o link simbólico da interface de rede para o trunk e adicione-o ao seu runlevel padrão:
root # cd /etc/init.d root # ln -s netif.tmpl netif.eth1 root # rc-update add netif.eth1 default
Agora, assumindo que você queira configurar uma VLAN of 32,você geraria um arquivo config com o nome /etc/conf.d/netif.eth1.32 que pareça com algo assim:
template="interface" ipaddr="1.2.3.4/24" gateway="1.2.3.1"# etc...
Depois, gere um link simbólico de interface de rede VLAN e adicione-o ao seu runlevel padrão:
root # cd /etc/init.d root # ln -s netif.tmpl netif.eth1.32 root # rc-update add netif.eth1.32 default
Os scripts de configuração rede do Funtoo automaticamente reconhecerão o filename netif.eth1.32 como sendo VLAN 32 da interface trunk netif.eth1.
Quando a interface VLAN for inicializada, ela será nomeada eth1.32.
Nomes de VLAN Personalizados
No entanto, as vezes você pode querer desligar nomeação automática de VLAN baseada em arquivo e dar a sua interface VLAN um nome personalizado, tal como mgmt. Para fazer isso, você configuraria a interface trunk do mesmo jeito exato como descrito acima, mas ao invés de criar uma interface netif.eth1.32, você criaria uma interface netif.mgmt, e especificar vlan e trunk no arquivo config /etc/conf.d/netif.mgmt, como a seguir:
template="interface" vlan="32" trunk="eth1" ipaddr="1.2.3.4/24" gateway="1.2.3.1" # etc...
Quando você especifica trunk e vlan no arquivo de configuração de interface, auto-detectador baseado em nome de trunk é desabilitado. Ambos trunk e vlan devem ser especificados -- você não pode especificar apenas um.
Então você simplesmente criaria um link simbólico para a interface de rede VLAN para netif.mgmt:
root # cd /etc/init.d root # ln -s netif.tmpl netif.mgmt root # rc-update add netif.mgmt default
Quando a interface VLAN for inicializada, ela será nomeada mgmt.
Configuração Bonding
Bonding lhe permite agregar múltiplas interfaces de rede dentro de uma única interface de rede lógica, permitindo para benefícios em taxa de transferência tão bem quanto resiliência no caso que uma interface individual pode cair. Esse exemplo mostra como você criaria uma interface bonding (mybond) com uma simples configuração de ip estático, contendo dois dispositivos slave (eth0 e eth1).
Primeiro certifique-se de que seu kernel está configurado para suportar bonding (o nome do módulo é bonding) :
user $ grep CONFIG_BONDING /usr/src/linux/.config CONFIG_BONDING=m
Você vai querer certificar-se de que CONFIG_BONDING está configurado como "m" ou "y". Você pode encontrar essa opção de configuração do kernel em "Device Drivers" -> "Network Device Support" -> "Bonding driver support". Certifique-se de que ifenslave está instalada (emerged) (esse pacote incluso no Funtoo stage3):
root # emerge ifenslave
Uma vez que o bonding está habilitado no kernel, você precisará escolher ao menos dois dispositivos para uni-los. Esses serão definidos como interface "slave" sem endereço IP.
root # cd /etc/init.d/ root # ln -s netif.tmpl netif.eth0 root # ln -s netif.tmpl netif.eth1
Depois, configure as interfaces slave ao criar /etc/conf.d/netif.eth0 e /etc/conf.d/netif.eth1 com os seguintes conteúdos:
template="interface-noip"
Agora, criaremos uma interface bond e tornaremos netif.eth0 e netif.eth1 escravas dessa interface. Note que nossa interface bond pode ter qualquer nome. Para demonstrar isso, lhe daremos o nome de "mybond" abaixo:
root # ln -s netif.tmpl netif.mybond root # rc-update add netif.mybond default
Agora podemos configurar "mybond" utilizando seu arquivo de configuração /etc/conf.d/netif.mybond, assim como faríamos uma interface regular, exceto que especificamos slaves:
template="bond" ipaddr="10.0.1.200/24" gateway="10.0.1.1" nameservers="10.0.1.1 10.0.1.2" domain="funtoo.org" slaves="netif.eth0 netif.eth1"
Em uma configuração bond, é comum definir o MTU para o valor máximo possível suportado pelo hardware para to maximar a taxa de transferência. A fim de fazer isso, simplesmente defina a opção MTU em /etc/conf.d/netif.mybond para o valor máximo suportado pelo seu hardware. Os scripts de rede certificarão que essa configuração de MTU está aplicada a todas as interfaces slave:
mtu=9000
Configuração Bridge
Quando hospedar máquinas virtuais, pdoe ser conveniente utilizar uma configuração bridge. Esse exemplo lhe mostra como vocẽ criaria uma bridge (br0) como uma simples configuração de ip estático, contendo dois dispositivos slave (eth0, tap0).
Primeiro, certifiquei-se de que seu kernel está configurado para suportar bridging (o nome do módulo é bridge) :
user $ grep CONFIG_BRIDGE /usr/src/linux/.config CONFIG_BRIDGE=m CONFIG_BRIDGE_IGMP_SNOOPING=y
Segundo passo, certifique-se de que você possui o software exigido instalado:
root # emerge -av bridge-utils usermode-utilities
Depois, crie os links simbólicos necessários para as interfaces e adicione-as ao seu runlevel padrão :
root # cd /etc/init.d/ root # ln -s netif.tmpl netif.eth0 root # ln -s netif.tmpl netif.br0 root # ln -s netif.tmpl netif.tap0 root # rc-update add netif.br0 default root # rc-update add netif.tap0 default
Depois, configure a interface slave /etc/conf.d/netif.eth0 :
template="interface-noip"
Depois, configure a interface slave /etc/conf.d/netif.tap0 - note que você necessitará somente group OU user, não ambos :
template="tap" group="kvm" user="kvm" mac_addr="10:20:30:40:50:66"
... e a interface bridge /etc/conf.d/netif.br0 :
template="bridge" ipaddr="10.0.1.200/24" gateway="10.0.1.1" nameservers="10.0.1.1 10.0.1.2" domain="funtoo.org" slaves="netif.eth0 netif.tap0" stp="on" forwarding=1
Se você estiver utilizando dhcpcd, você deve certificar-se de que ele tente configurar eth0 ou br0 ao adicionar o seguinte ao /etc/dhcpcd.conf :
# don't attempt to pull an ip address for br0 or its slave device denyinterfaces eth0 br0
Configuração de Rede Mais Complexa
Se os templates padrões não funcionarem para as suas necessidades, simplesmente crie um novo template -- recomendo iniciar a partir do template interface para muitas das coisas:
root # cd /etc/netif.d root # cp interface custom
Você pode agora chamar quaisquer comandos que você precisar em /etc/netif.d/custom. As seguintes funções shell podem ser definidas em um script de rede:
netif_create
Em netif_create, você deve chamar quaisquer comandos para criar a interface se ela ainda não existe.
netif_depend
Em netif_depend, você pode definir dependências, utilizando as funções need e use.
netif_pre_up
Em netif_pre_up, você pode definir as ações de configuração de rede ao executar antes da interface estabelecer comunicação. Você pode também certificar-se de que certas variáveis estão especificadas ao chamar require var1 [var2...] aqui.
netif_post_up
Em netif_post_up, você pode definir as ações de configuração de rede para serem desempenhadas após a interface estabelecer comunicação.
netif_pre_down
Em netif_pre_down, você pode definir as ações de configuração de rede para serem desempenhadas antes que a interface encere a conexão.
netif_post_down
Em netif_post_down, você pode definir as ações de configuração de rede para que sejam desempenhadas depois de encerrar a interface.
netif_destroy
Em netif_destroy, você pode invocar quaisquer comandos necessários para destruir/excluir a interface se ela for dinâmica (tun/tap, etc.)
Como Funciona
Você não especifica uma função para na verdade estabelecer a conexão pela interface, porque o sistema baseado em template faz isso por você. O sistema baseado em template também executa todas as ações exigidas para encerrar a conexão da interface, então você somente precisa especificar ações atípicas que devem ser executadas - tal como remover interfaces child ou destruir uma bridge utilizando brctl.
Quando você criar seu próprio template de configuração de rede (network configuration template), as compatibilidades a seguir ficam disponíveis para uso automaticamente, desde que as variáveis apropriadas sejam definias no arquivo /etc/conf.d/netif.<ifname>, sem necessitar de quaisquer passos da sua parte:
- Configuração de DNS utilizando domain e nameservers config settings. OpenResolv é utilizando automaticamente.
- Configuração VLAN utilizando auto-naming (netif.ethX.Y) ou via nomeação personalizada com trunk e vlan config settings.
- Gateway IPv4 padrão e configuração de rota utilizando as configurações gateway e route.
- Gateway IPv6 padrão e configuração de rota utilizando as configurações gateway6 e route6.
- Configuração MTU utilizando mtu setting.
- Auto-depend (e configuração de auto-MTU) de especificadas interfaces slave utilizando as configurações slaves.
- Renomear interfaces de rede existentes (especificar endereço MAC utilizando as configurações macaddr).
Para tirar vantagem dessa funcionalidade, simplesmente habilite as variáveis apropriadas.
Todas as outras configurações de rede necessárias e comportamento de dependência devem ser definidas utilizando as funções netif_-prefix descritas acima.
Wireless Configuration
The recommended approach for setting up Wi-Fi under Funtoo Linux is to use NetworkManager. Steps are provided in the Wi-Fi section of the Funtoo Linux Installation Guide.
Other Network Configurations
If you have a network configuration template that might be useful to others, please post it to the funtoo-dev mailing list so we can review it and possibly incorporate it into Funtoo.
Licença
Os scripts Funtoo Linux networking são liberados sob a seguinte licença: