注意:

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"

From Funtoo
Jump to navigation Jump to search
 
(28 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>
{{#layout:doc}}
 
== Apresentação ==
== Apresentação ==
__TOC__
__TOC__
Line 90: Line 92:


<console># ##i##rc-update add netif.eth0 default</console>
<console># ##i##rc-update add netif.eth0 default</console>
Quando configurar seua própria interface de rede estática, um de <tt>ipaddr</tt> ou <tt>ipaddrs</tt> é exigido e deve especificar o(s) endereço(s) IP para configurar para essa interface, em &quot;a.b.c.d/netmask&quot; format. Optional parameters include <tt>gateway</tt>, which defines a default gateway for your entire network, and if set should specify the gateway's IP address. In addition, <tt>domain</tt> and <tt>nameservers</tt> (space-separated if more than one) can be used to specify DNS information for this interface.
Quando configurar seua própria interface de rede estática, um de <tt>ipaddr</tt> ou <tt>ipaddrs</tt> é exigido e deve especificar o(s) endereço(s) IP para configurar para essa interface, no formato &quot;a.b.c.d/netmask&quot;. Parâmetros opcionais incluem <tt>gateway</tt>, que define um gateway padrão para sua rede inteira, e se configuração deve especificar o endereço de IP do gateway. Adicional, <tt>domain</tt> e <tt>nameservers</tt> (separado por espaço se mais tiver mais que uma) pode ser utilizado para especificar informação de DNS para essa interface.


=== Configuration Variables ===
=== Variáveis de Configurações ===


==== Interface Variables ====
==== Variáveis de Interface ====


The <tt>ipaddr</tt> and <tt>ipaddrs</tt> variables are supported by the <tt>interface</tt> and <tt>bridge</tt> templates, and are used to specify a single or multiple  IPv4 or IPv6 address(es) for the interface. IP addresses should be specified in 'IP/netmask' format, such as <tt>10.0.0.1/24</tt>. Multiple IP addresses can be specified delimited by whitespace:
As variáveis <tt>ipaddr</tt> e <tt>ipaddrs</tt> possuem suporte as templates <tt>interface</tt> e <tt>bridge</tt>, 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 <tt>10.0.0.1/24</tt>. Múltiplos endereços IP podem ser especificados delimitados com espaço em branco:


<pre>ipaddrs=&quot;10.0.0.1/24 10.0.0.2/24&quot;</pre>
<pre>ipaddrs=&quot;10.0.0.1/24 10.0.0.2/24&quot;</pre>


===== Broadcast Address =====
===== Endereços de Broadcast =====


By default, a broadcast address will be calculated based on the IP address and network mask. If you need to manually specify a broadcast address, use the following format for your IP address:
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:


<pre>
<pre>
Line 108: Line 110:
</pre>
</pre>


===== Not Specifying An Address =====
===== Não Especificando Um Endereço =====


Note that in some cases, you may choose to '''not''' specify <tt>ipaddr</tt> or <tt>ipaddrs</tt> for a <tt>bridge</tt> template. That is allowed. If you don't want to specify an IP address for a regular interface, you can choose to use the <tt>interface</tt> template without an IP address specified in the config, or use the <tt>interface-noip</tt> template instead, for the sake of clarity.
Note que em alguns casos, você pode escolher '''não''' especificar <tt>ipaddr</tt> ou <tt>ipaddrs</tt> para um template <tt>bridge</tt>. Isso é permitido. Se você não quiser especificar um endereço IP para uma interface regular, você pode escolher utilizar o template <tt>interface</tt> sem um endereço de IP especificado no config, ou utilizar o template <tt>interface-noip</tt> ao invés disso, por questão de claridade.


===== Viewing All Configured IP Addresses =====
===== Visualizando Todos os Endereços IP Configurados =====


Also note that if you specify multiple IPv4 addresses, <tt>ifconfig</tt> will only show the first IP address. To view all IP addresses associated with the interface, use the <tt>ip addr show</tt> command.
Note também que se você especificar múltiplos endereços IPv4, <tt>ifconfig</tt> mostrará somente o primeiro endereço IP. Para visualizar todos os endreços IP associados a interface, utilize o comando <tt>ip addr show</tt>.


=== General Variables ===
=== Variáveis Gerais ===


The following variables are enabled by default for all network scripts, and if specified will trigger a corresponding configuration action:
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:


;<tt>nameservers</tt>: Set DNS nameservers using OpenResolv. Specify multiple IPv4 or IPv6 nameservers like this: &quot;1.2.3.4 1.2.3.5 1.2.3.6&quot;. Please note that OpenResolv treats <tt>127.0.0.1</tt> specially, and it indicates that you are running a local name resolver like <tt>dnsmasq</tt> or <tt>bind</tt>. OpenResolv will ignore all other name servers specified alongside <tt>127.0.0.1</tt>. See <tt>man resolvconf</tt> and <tt>man resolvconf.conf</tt> for additional setup information.
;<tt>nameservers</tt>: Define DNS nameservers utilizando OpenResolv. Especifique múltiplos IPv4 ou IPv6 nameservers assim: &quot;1.2.3.4 1.2.3.5 1.2.3.6&quot;. Note que o OpenResolv trata <tt>127.0.0.1</tt> especialmente, e indica que você está executado um local name resolver como <tt>dnsmasq</tt> ou <tt>bind</tt>. OpenResolv ignorará todas as outras name servers especificadas ao lado de <tt>127.0.0.1</tt>. Veja <tt>man resolvconf</tt> e <tt>man resolvconf.conf</tt> para informações adicionais de configuração.
;<tt>search</tt>: Set DNS search information using OpenResolv.
;<tt>search</tt>: Define informação de busca de DNS utilizandoOpenResolv.
;<tt>domain</tt>: Set DNS domain using OpenResolv.
;<tt>domain</tt>: Define domínio DNS utilizando OpenResolv.
;<tt>gateway</tt>: Define a default IPv4 gateway on this interface.
;<tt>gateway</tt>: Define umgateway IPv4 padrão nessa interface.
;<tt>gateway6</tt>: Define a default IPv6 gateway on this interface.
;<tt>gateway6</tt>: Define um gateway IPv6 padrão nessa interface.
;<tt>route</tt>: Specify a semi-colon delimited list of IPv4 routes to apply when this interface is brought up. Will be appended to <tt>ip -4 route add</tt>.
;<tt>route</tt>: Especifica uma lista de routes IPV4 delimitados por um ponto e vírgula a ser aplicada quando essa interface for inicializada. Será fixado ao <tt>ip -4 route add</tt>.
;<tt>route6</tt>: Specify a semi-colon delimited list of IPv6 routes to apply when this interface is brought up. Will be appended to <tt>ip -6 route add</tt>.
;<tt>route6</tt>: Specifica uma lista de routes IPV6 delimitado por ponto e virgula para aplicar quando essa interface for inicializada. Será fixado ao <tt>ip -6 route add</tt>.
;<tt>mtu</tt>: Set Maximum Transmit Unit for the interface
;<tt>mtu</tt>: Defint Maximum Transmit Unit para a interface
;<tt>mac_replace</tt>: Replace existing MAC address with MAC address specified in this variable.
;<tt>mac_replace</tt>: Substitui o endereço MAC existente especificado nessa variável.


==== VLAN Variables ====
==== Variáveis VLAN ====


VLAN support is enabled by default for all network configuration scripts. If a network script has a name in the format <tt>netif.ethX.Y</tt>, then it is assumed to be a VLAN interface referencing trunk <tt>ethX</tt> and VLAN ID <tt>Y</tt>. If you desire a custom name for your VLAN interface, you can name your interface whatever you'd like and specify the following variables in your interface config:
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 <tt>netif.ethX.Y</tt>, então é presumido que seja uma interface VLAN referencing trunk <tt>ethX</tt> e VLAN ID <tt>Y</tt>. 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:


;<tt>trunk</tt>: VLAN trunk interface, e.g. &quot;eth0&quot;
;<tt>trunk</tt>: VLAN trunk interface, e.g. &quot;eth0&quot;
;<tt>vlan</tt>: VLAN id, e.g. &quot;32&quot;
;<tt>vlan</tt>: VLAN id, e.g. &quot;32&quot;


==== Bridge / Tap Variables ====
==== Bridge / Variáveis Tap (Torneira) ====


The following variables for configuring a functional bridge interface with optional tap interfaces:
As variáveis a seguir para configuração de uma interface bridge funcional com interfaces tap opcionais:


;<tt>slaves</tt>: Set slave interfaces of this interface (for bridges, etc.) All slaves will automatically be depended upon, and will also automatically have their <tt>mtu</tt> set to that of the current interface, if an <tt>mtu</tt> is specified for the current interface. This setting is required for the <tt>bond</tt> template and optional for the <tt>bridge</tt> template.
;<tt>slaves</tt>: Define interfaces slave dessa interface (para bridges, etc.) Todas as slaves serão automaticamente dependentes, e também terão automaticamente suas definições <tt>mtu</tt> para aquela da interface atual, se uma <tt>mtu</tt> for especificada para a interface atual. Essa configurações são necessária para o template <tt>bond</tt> e é opcional para o template <tt>bridge</tt>.
;<tt>stp</tt>: Enables Spanning Tree Protocol on a bridge interface like this &quot;stp=on&quot;
;<tt>stp</tt>: Habilita o protocolo Spanning Tree em uma interface bridge assim &quot;stp=on&quot;
;<tt>forwarding</tt>: Enables forwarding on a bridge interface by calling sysctl; as this interface does not exist when sysctl is called by init, we do it here. If this is disabled, your bridge will not forward traffic back out onto the network. useage: &quot;forwarding=1&quot;
;<tt>forwarding</tt>: 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: &quot;forwarding=1&quot;


=== OpenResolv and resolv.conf ===
=== OpenResolv e resolv.conf ===


OpenResolv will be used to set DNS information provided by the <tt>nameservers</tt>, <tt>domain</tt> and <tt>search</tt> variables when an interface is brought up. The OpenResolv framework will add entries to <tt>/etc/resolv.conf</tt>, and will also handle removing these entries when the interface is brought down. This way, <tt>/etc/resolv.conf</tt> should always contain current information and should not need to be manually edited by the system administrator. <tt>dhcpcd</tt> will use OpenResolv for updating system DNS information as well.
OpenResolv será utilizado para definir informação DNS fornecido pelas variáveis <tt>nameservers</tt>, <tt>domain</tt> e <tt>search</tt> quando uma interface for habilitada. o framework OpenResolv adicionará entradas ao <tt>/etc/resolv.conf</tt>, e também cuidará de remover essa entradas quando a interface for interrompida. Dessa maneira, <tt>/etc/resolv.conf</tt> deve sempre conter informações atuais e não deve precisar ser manualmente editada pelo administrador do sistema. <tt>dhcpcd</tt> utilizara o OpenResolv para a atualização de informação de DNS do sistema também.


=== Network-Dependent Services ===
=== Serviços Dependentes de Rede (Network-Dependent Services) ===


One important difference between Gentoo Linux and Funtoo Linux is that, in Funtoo Linux, network-dependent services only strictly depend on <tt>netif.lo</tt>. This means that if another network service requires an interface to be up, such as <tt>samba</tt> requiring <tt>eth0</tt>, then the system administrator must specify this relationship by adding the following line to <tt>/etc/conf.d/samba</tt>:
Uma diferença importante entre o Gentoo Linux e o Funtoo Linux é que, no Funtoo Linux, network-dependent services dependem estritamente somente de <tt>netif.lo</tt>. Isso significa que se outro serviço de rede requer que uma interface seja habilitada, tal como <tt>samba</tt> necessitado da <tt>eth0</tt>, então o administrador do sistema deve especificar essa relação ao adicionar a seguinte linha em <tt>/etc/conf.d/samba</tt>:


<pre>rc_need=&quot;netif.eth0&quot;</pre>
<pre>rc_need=&quot;netif.eth0&quot;</pre>
This will have the effect of ensuring that <tt>netif.eth0</tt> is started prior to <tt>samba</tt> and that <tt>samba</tt> is stopped prior to stopping <tt>netif.eth0</tt>.
Isso terá o efeito de certificar que <tt>netif.eth0</tt> é inicializada prioridade para o <tt>samba</tt> e que o <tt>samba</tt> é interrompido is ao parar <tt>netif.eth0</tt>.


Many network services, especially those that listen on all network intefaces, don't need an <tt>rc_need</tt> line in order to function properly. Avoiding the use of <tt>rc_need</tt> when required will optimize boot times and allow more network services to remain available when network interfaces are brought up and down by the system administrator.
Muitos serviços de rede, especialmente aquelas que  escutam em todas as interfaces de rede, não precisa de uma linha <tt>rc_need</tt> a fim de funcionar corretamente. Evitando o uso do <tt>rc_need</tt> 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.


=== Multiple Network Configurations ===
=== Múltiplas Configurações de Rede ===


For information on how to have multiple, independent network configurations, please see [[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]].


=== Alternate Configs ===
=== Configs Alternados ===
If you need to run the same service with different configuration parameters depending upon runlevel, then you'll be happy to know that you can specify runlevel-specific conf.d files by appending a <tt>.
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 <tt>.
&lt;runlevel&gt;</tt> suffix. In this particular example, we could imagine a situation where we had two child runlevels named <tt>home</tt> and <tt>work</tt>:
&lt;runlevel&gt;</tt> suffix. Nesse exemplo em particular, poderíamos imaginar uma situação onde teríamos dois child runlevels nomeados <tt>home</tt> e <tt>work</tt>:


<pre>/etc/conf.d/netif.eth0.home
<pre>/etc/conf.d/netif.eth0.home
/etc/conf.d/netif.eth0.work</pre>Note that this feature works for all init scripts, not just network configuration scripts.
/etc/conf.d/netif.eth0.work</pre>Note que esse recurso funciona para todos os scripts init, não somente scripts de configuração de rede.


=== Interface Renaming ===
=== Interface Renaming ===


Funtoo network scripts now support interface renaming, so you can create an interface called <tt>lan</tt> if you would like. To do this, simply specify the MAC address of the interface you would like to rename using the <tt>macaddr</tt> variable:
Os scripts de rede do Funtoo agora possuem suporte a interface renaming, então você pode gerar uma interface chamada <tt>lan</tt> caso queira. Para fazer isso, simplesmente especifiquei o endereço de máquina da interface que você gostaria de renomear utilizando a variável <tt>macaddr</tt>:
<pre>macaddr=&quot;00:15:17:19:b6:a3&quot;</pre>If this MAC address is part of the <tt>netif.lan</tt> configuration file, then when this interface starts, whatever interface currently has the MAC address of 00:15:17:19:b6:a3 (i.e. <tt>eth5</tt>) will be renamed to <tt>lan</tt> prior to the interface being brought up, and will show up in <tt>ifconfig</tt> and <tt>ip</tt> commands as being an interface named <tt>lan</tt>. It is possible to combine this with the <tt>mac_replace</tt> variable to set a new MAC address, if desired.
<pre>macaddr=&quot;00:15:17:19:b6:a3&quot;</pre> se esse endereço de máquina for parte do do arquivo de configuração <tt>netif.lan</tt>, 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. <tt>eth5</tt>) será renomeado para <tt>lan</tt> prior to the interface being brought up, and will show up in <tt>ifconfig</tt> and <tt>ip</tt> commands as being an interface named <tt>lan</tt>. It is possible to combine this with the <tt>mac_replace</tt> variable to set a new MAC address, if desired.


=== Basic VLAN Configuration ===
=== Configuração Básica de VLAN ===


The standard <tt>interface</tt> template supports VLANs. To use VLAN support, first ensure that your kernel was compiled with VLAN support (the module name is <tt>8021q</tt>) :
O template padrão <tt>interface</tt> 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 é <tt>8021q</tt>) :


<console>
<console>
Line 184: Line 186:
</console>
</console>


Then, configure the trunk interface using the <tt>interface-noip</tt> template. Assuming <tt>eth1</tt> is trunked, you would create the file <tt>/etc/conf.d/netif.eth1</tt> with the following contents:
Depois, configure a interface trunk utilizando o template <tt>interface-noip</tt>. Assumindo que <tt>eth1</tt> está em trunk, você criaria o arquivo <tt>/etc/conf.d/netif.eth1</tt> com os seguintes conteúdos:


<pre>template=&quot;interface-noip&quot;</pre>
<pre>template=&quot;interface-noip&quot;</pre>


Then, create a network interface symlink for the trunk and add it to your default runlevel:
Depois, gere o link simbólico da interface de rede para o trunk e adicione-o ao seu runlevel padrão:


<console>
<console>
Line 196: Line 198:
</console>
</console>


Now, assuming you wanted to configure a VLAN of 32, you would create a config file named <tt>/etc/conf.d/netif.eth1.32</tt> that looks something like this:
Agora, assumindo que você queira configurar uma VLAN of 32,você geraria um arquivo config com o nome <tt>/etc/conf.d/netif.eth1.32</tt> que pareça com algo assim:


<pre>
<pre>
Line 204: Line 206:
</pre>
</pre>


Then, create a VLAN network interface symlink and add it to your default runlevel:
Depois, gere um link simbólico de interface de rede VLAN e adicione-o ao seu runlevel padrão:


<console>
<console>
Line 212: Line 214:
</console>
</console>


The Funtoo network configuration scripts will automatically recognize the filename <tt>netif.eth1.32</tt> as being VLAN 32 of trunk interface <tt>netif.eth1</tt>.
Os scripts de configuração rede do Funtoo automaticamente reconhecerão o filename <tt>netif.eth1.32</tt> como sendo VLAN 32 da interface trunk <tt>netif.eth1</tt>.


When the VLAN interface is brought up, it will be named <tt>eth1.32</tt>.
Quando a interface VLAN for inicializada, ela será nomeada <tt>eth1.32</tt>.


=== Custom VLAN Names ===
=== Nomes de VLAN Personalizados ===


However, sometimes you may want to turn off automatic file-based VLAN naming and give your VLAN interface a custom name, such as <tt>mgmt</tt>. To do this, you would set up the trunk interface in the exact same way as described above, but instead of creating a <tt>netif.eth1.32</tt> interface, you would create a <tt>netif.mgmt</tt> interface, and specify <tt>vlan</tt> and <tt>trunk</tt> in the <tt>/etc/conf.d/netif.mgmt</tt> config file, as follows:
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=&quot;interface&quot;
<pre>template=&quot;interface&quot;
Line 226: Line 228:
gateway=&quot;1.2.3.1&quot;
gateway=&quot;1.2.3.1&quot;
# etc...</pre>
# etc...</pre>
When you specify <tt>trunk</tt> and <tt>vlan</tt> in the interface config file, filename-based auto-detecting of VLAN ID and trunk is disabled. Both <tt>trunk</tt> and <tt>vlan</tt> must be specified -- you can't specify just one.
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.


Then you would simply create a VLAN network interface symlink for <tt>netif.mgmt</tt>:
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>
When the VLAN interface is brought up, it will be named <tt>mgmt</tt>.
Quando a interface VLAN for inicializada, ela será nomeada <tt>mgmt</tt>.


=== Bonding Configuration ===
=== Configuração Bonding ===


Bonding allows you to aggregate multiple network interfaces into a single logical network interface, allowing for benefits in throughput as well as resiliency in the case that an individual interface may go down. This example shows how you would create a bonding interface (<tt>mybond</tt>) with a simple static ip setup, containing two slave devices (<tt>eth0</tt> and <tt>eth1</tt>).
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>).


First, ensure that your kernel is configured to support bonding (the module name is <tt>bonding</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>


You'l want to ensure that CONFIG_BONDING is set to "m" or "y". You can find this kernel configuration option tucked under "Device Drivers" -> "Network Device Support" -> "Bonding driver support".
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".
Be sure that ifenslave is emerged (this package included in Funtoo stage3):
Certifique-se de que ifenslave está instalada (emerged) (esse pacote incluso no Funtoo stage3):


<console>
<console>
# ##i##emerge ifenslave
# ##i##emerge ifenslave
</console>
</console>
Once bonding is enabled in the kernel, you will need to choose at least two devices to bond together. These will be set up as "slave" interfaces with no IP address.
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>


Then, configure the slave interfaces by creating <tt>/etc/conf.d/netif.eth0</tt> and <tt>/etc/conf.d/netif.eth1</tt> with the following contents:
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>


Now, we will create the bond interface and make <tt>netif.eth0</tt> and <tt>netif.eth1</tt> slaves of this interface. Note that our bond interface can have any name. To demonstrate this, we will give it the name of "mybond" below:
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>


Now we can configure "mybond" using its configuration file <tt>/etc/conf.d/netif.mybond</tt>, just as we would a regular interface, except that we specify <tt>slaves</tt>:
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>


In a bonded configuration, it is common to set the MTU to the maximum possible value supported by hardware to maximize throughput. In order to do this, simply set the MTU option in <tt>/etc/conf.d/netif.mybond</tt> to the maximum value supported by your hardware. The network scripts will ensure that this MTU setting is applied to all slave interfaces:
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 Configuration ===
=== Configuração Bridge ===


When hosting virtual machines, it can be convenient to use a bridge setup. This example shows how you would create a bridge (br0) with a simple static ip setup, containing two slave devices (eth0, tap0).
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).


First, ensure that your kernel is configured to support bridging (the module name is <tt>bridge</tt>) :
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>


Second, make sure you have the required software installed:
Segundo passo, certifique-se de que você possui o software exigido instalado:


<console>
<console>
Line 308: Line 310:
</console>
</console>


Then, create the necessary symlinks for the interfaces and add them to your default runlevel :
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>


Then, configure the slave interface <tt>/etc/conf.d/netif.eth0</tt> :
Depois, configure a interface slave <tt>/etc/conf.d/netif.eth0</tt> :


<pre>
<pre>
Line 325: Line 327:
</pre>
</pre>


Then, configure the slave interface <tt>/etc/conf.d/netif.tap0</tt> - note you only require group OR user, not both :
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>


... and the bridge interface <tt>/etc/conf.d/netif.br0</tt> :
... e a interface bridge <tt>/etc/conf.d/netif.br0</tt> :


<pre>
<pre>
Line 347: Line 349:
</pre>
</pre>


If you are using dhcpcd, you should ensure that it does not attempt to configure <tt>eth0</tt> or <tt>br0</tt> by adding the following to <tt>/etc/dhcpcd.conf</tt> :
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>


=== More Complex Network Configuration ===
=== Configuração de Rede Mais Complexa ===


If the standard templates don't work for your needs, simply create a new template -- I recommend starting from the <tt>interface</tt> template for most things:
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>
You can now call whatever commands you need to <tt>/etc/netif.d/custom</tt>. The following shell functions can be defined in a network script:
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 ====


In <tt>netif_create</tt>, you should call any commands to create the interface if it does not yet exist.
Em <tt>netif_create</tt>, você deve chamar quaisquer comandos para criar a interface se ela ainda não existe.


==== netif_depend ====
==== netif_depend ====


In <tt>netif_depend</tt>, you can define dependencies, using the functions <tt>need</tt> and <tt>use</tt>.
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 ====


In <tt>netif_pre_up</tt>, you can define network configuration actions to perform prior to bringing the interface up. You can also ensure certain variables are specified by calling <tt>require var1 [var2...]</tt> here.
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====


In <tt>netif_post_up</tt>, you can define network configuration actions to perform after bringing the interface 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 ====


In <tt>netif_pre_down</tt>, you can define network configuration actions to perform prior to bringing the interface 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 ====


In <tt>netif_post_down</tt>, you can define network configuration actions to perform after bringing the interface 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 ====


In <tt>netif_destroy</tt>, you can call any commands necessary to destroy/delete the interface if it is dynamic in nature (tun/tap, etc.)
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.)


==== How It Works ====
==== Como Funciona ====


You do not specify a function for actually bringing up the interface, because the template-based system does this for you. The template-based system also performs all normal actions required to bring an interface down, so you only need to specify atypical actions that must be performed - such as removing child interfaces or destroying a bridge using <tt>brctl</tt>.
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>.


When you create your own network configuration template, the following capabilities are available for use automatically, as long as the appropriate variables are set in the <tt>/etc/conf.d/netif.&lt;ifname&gt;</tt> file, without requiring any explicit steps on your part:
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.&lt;ifname&gt;</tt>, sem necessitar de quaisquer passos da sua parte:


* DNS configuration using <tt>domain</tt> and <tt>nameservers</tt> config settings. OpenResolv is used automatically.
* Configuração de DNS utilizando <tt>domain</tt> e <tt>nameservers</tt> config settings. OpenResolv é utilizando automaticamente.
* VLAN configuration using auto-naming (<tt>netif.ethX.Y</tt>) or via custom naming with <tt>trunk</tt> and <tt>vlan</tt> config settings.
* 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.
* Default IPv4 gateway and route configuration using the <tt>gateway</tt> and <tt>route</tt> settings.
* Gateway IPv4 padrão e configuração de rota utilizando as configurações <tt>gateway</tt> e <tt>route</tt>.
* Default IPv6 gateway and route configuration using the <tt>gateway6</tt> and <tt>route6</tt> settings.
* Gateway IPv6 padrão e configuração de rota utilizando as configurações <tt>gateway6</tt> e <tt>route6</tt>.
* MTU configuration using the <tt>mtu</tt> setting.
* Configuração MTU utilizando <tt>mtu</tt> setting.
* Auto-depend (and auto-MTU configuration) of slave interfaces specified using <tt>slaves</tt> setting.
* Auto-depend (e configuração de auto-MTU) de especificadas interfaces slave utilizando as configurações <tt>slaves</tt>.
* Renaming of existing network interface (specify MAC address using <tt>macaddr</tt> setting).
* Renomear interfaces de rede existentes (especificar endereço MAC utilizando as configurações <tt>macaddr</tt>).


To take advantage of this functionality, simply enable the appropriate variables.
Para tirar vantagem dessa funcionalidade, simplesmente habilite as variáveis apropriadas.


All other necessary network configuration and dependency behavior should be defined using the <tt>netif_</tt>-prefix functions described above.
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.


== License ==
== Licença ==


Funtoo Linux networking scripts are released under the following license:
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:HOWTO]]
[[Category:Projects]]
[[Category:Networking]]
[[Category:Networking]]
[[Category:Install]]
[[Category:pt_BR]]
[[Category:Funtoo features]]
[[Category:Official Documentation]]

Latest revision as of 18:36, April 13, 2022

   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.

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:

Template:BSD2 Funtoo