23 Rede básica #
O Linux oferece os recursos e as ferramentas de rede necessários para a integração em todos os tipos de estruturas de rede. É possível configurar o acesso a rede usando uma placa de rede com o YaST. A configuração também pode ser feita manualmente. Neste capítulo, são abordados apenas os mecanismos fundamentais e os arquivos de configuração de rede relevantes.
Linux e outros sistemas operacionais Unix usam o protocolo TCP/IP. Não é um protocolo de rede único, mas uma família de protocolos de rede que oferece vários serviços. Os protocolos listados na Vários protocolos na família de protocolos TCP/IP são oferecidos para trocar dados entre duas máquinas por meio do TCP/IP. As redes combinadas por TCP/IP compõem uma rede mundial também chamada de “Internet”.
RFC significa Request for Comments. Os RFCs são documentos que descrevem os procedimentos de implementação e protocolos da Internet para o sistema operacional e seus aplicativos. Os documentos RFC descrevem a configuração dos protocolos da Internet. Para obter mais informações sobre RFCs, visite https://datatracker.ietf.org/.
- TCP
Transmission Control Protocol: um protocolo seguro orientado por conexão. Os dados a serem transmitidos são enviados primeiramente pelo aplicativo como fluxo de dados e convertidos no formato adequado ao sistema operacional. Os dados chegam ao respectivo aplicativo no host de destino com o formato original de fluxo de dados no qual foram inicialmente enviados. O TCP determina se algum dado foi perdido ou embaralhado durante a transmissão. O TCP é implementado onde a sequência de dados for necessária.
- UDP
User Datagram Protocol: um protocolo inseguro, não baseado em conexão. Os dados a serem transmitidos são enviados na forma de pacotes gerados pelo aplicativo. A ordem em que os dados chegam ao destinatário não é garantida, havendo possibilidade de perda dos dados. O UDP é adequado para aplicativos orientados por registro. Ele possui um período de latência menor que o TCP.
- ICMP
Internet Control Message Protocol: não se trata de um protocolo para o usuário final, mas de um protocolo de controle especial que emite relatórios de erros e pode controlar o comportamento de máquinas que participam da transferência de dados TCP/IP. Além disso, ele fornece um modo de eco especial, que pode ser visualizado usando o programa ping.
- IGMP
Internet Group Management Protocol: esse protocolo controla o comportamento da máquina na implementação de multicast IP.
Conforme mostrado na Figura 23.1, “Modelo simplificado de camadas para TCP/IP”, a troca de dados ocorre em camadas diferentes. A camada de rede real é a transferência de dados insegura por IP (Internet protocol). Acima do IP, o TCP garante, até certo ponto, a segurança na transferência de dados. A camada IP é suportada pelo protocolo base dependente do hardware, como a Ethernet.
O diagrama fornece um ou dois exemplos para cada camada. As camadas são organizadas de acordo com os níveis de abstração. A camada mais baixa fica próxima ao hardware. A camada mais alta é quase completamente abstraída do hardware. Todas as camadas possuem suas funções especiais próprias. As funções especiais de cada camada estão implícitas em suas descrições. A vinculação de dados e as camadas físicas representam a rede física usada, como a Ethernet.
Quase todos os protocolos de hardware funcionam em uma base orientada por pacotes. Os dados a serem transmitidos são reunidos em pacotes (não podem ser enviados todos de uma vez). O tamanho máximo de um pacote TCP/IP é de aproximadamente 64 KB. Os pacotes são normalmente menores, já que o hardware da rede pode ser um fator de limitação. O tamanho máximo de um pacote de dados na Ethernet é de aproximadamente 1.500 bytes. O tamanho de um pacote TCP/IP limita-se a esse valor quando os dados são enviados por Ethernet. Se mais dados forem transferidos, mais pacotes de dados precisarão ser enviados pelo sistema operacional.
Para que as camadas executem suas respectivas funções, informações adicionais referentes a cada uma delas devem ser gravadas no pacote de dados. Isso ocorre no cabeçalho do pacote. Todas as camadas anexam um pequeno bloco de dados, chamado cabeçalho do protocolo, à frente de cada pacote emergente. Veja uma demonstração de pacote de dados TCP/IP passando por um cabo Ethernet na Figura 23.2, “Pacote Ethernet TCP/IP”. A soma de teste está localizada no final do pacote e não no início. Isso torna as coisas mais simples para o hardware de rede.
Quando um aplicativo envia dados por uma rede, eles passam por cada camada, todas implementadas no kernel do Linux, exceto a camada física. Cada camada cuida da preparação dos dados para que eles possam ser transmitidos para a camada seguinte. A camada mais baixa é a responsável pelo envio de dados. Todo o processo é invertido quando os dados são recebidos. Como camadas de uma cebola, em cada uma os cabeçalhos de protocolo são removidos dos dados transportados. Por fim, a camada de transporte disponibiliza os dados para uso pelos aplicativos no destino. Dessa forma, cada camada se comunica somente com a camada diretamente acima ou abaixo dela. Para os aplicativos, é irrelevante se os dados são transmitidos por uma conexão com ou sem fio. Da mesma forma, é irrelevante para a linha de dados os tipos de dados que são transmitidos, se os pacotes estiverem no formato correto.
23.1 Roteamento e endereços IP #
Esta seção limita-se à abordagem de redes IPv4. Para obter informações sobre o protocolo IPv6, sucessor do IPv4, consulte a Seção 23.2, “IPv6: a Internet de última geração”.
23.1.1 Endereços IP #
Todo computador na Internet possui um endereço de 32 bits exclusivo. Os 32 bits (ou 4 bytes) normalmente são gravados conforme ilustrado na segunda linha em Exemplo 23.1, “Gravando endereços IP”.
IP Address (binary): 11000000 10101000 00000000 00010100 IP Address (decimal): 192. 168. 0. 20
Na forma decimal, os quatro bytes são gravados no sistema de números decimais, separados por pontos. O endereço IP é designado a um host ou a uma interface de rede. Ele pode ser usado apenas uma vez em todo o mundo. Há exceções a essa regra, mas não são relevantes para as passagens a seguir.
Os pontos nos endereços IP indicam o sistema hierárquico. Até os anos 90, os endereços IP eram estritamente categorizados em classes. Entretanto, esse sistema demonstrou ser excessivamente inflexível e foi desativado. Agora, o CIDR (Classless Interdomain Routing — Roteamento Interdomínio sem Classes) é usado.
23.1.2 Máscaras de rede e roteamento #
As máscaras de rede são usadas para definir a faixa de endereços de uma sub-rede. Se dois hosts estiverem na mesma sub-rede, eles poderão acessar um ao outro diretamente. Se não estiverem na mesma sub-rede, eles precisarão do endereço de um gateway que manipule todo o tráfego da sub-rede. Para verificar se dois endereços IP estão em uma mesma sub-rede, basta “E” os dois endereços com a máscara de rede. Se o resultado for idêntico, os dois endereços IP estarão na mesma rede local. Se houver diferenças, o endereço IP remoto e, portanto, a interface remota, só poderão ser localizados através de um gateway.
Para compreender como as máscaras de rede funcionam, consulte o Exemplo 23.2, “Vinculando endereços IP à máscara de rede”. A máscara de rede consiste em 32 bits que identificam o quanto um endereço IP pertence à rede. Todos os bits 1
marcam o bit correspondente no endereço IP como pertencente à rede. Todos os bits 0
marcam os bits dentro da sub-rede. Isso significa que quanto maior a quantidade de bits 1
, menor será o tamanho da sub-rede. Como a máscara de rede sempre consiste em vários bits 1
sucessivos, também é possível contar o número de bits da máscara de rede. Na Exemplo 23.2, “Vinculando endereços IP à máscara de rede”, a primeira rede com 24 bits também pode ser gravada como 192.168.0.0/24
.
IP address (192.168.0.20): 11000000 10101000 00000000 00010100 Netmask (255.255.255.0): 11111111 11111111 11111111 00000000 --------------------------------------------------------------- Result of the link: 11000000 10101000 00000000 00000000 In the decimal system: 192. 168. 0. 0 IP address (213.95.15.200): 11010101 10111111 00001111 11001000 Netmask (255.255.255.0): 11111111 11111111 11111111 00000000 --------------------------------------------------------------- Result of the link: 11010101 10111111 00001111 00000000 In the decimal system: 213. 95. 15. 0
Outro exemplo: todas as máquinas conectadas ao mesmo cabo Ethernet normalmente estão localizadas na mesma sub-rede e são diretamente acessíveis. Mesmo quando a sub-rede é dividida fisicamente por switches ou pontes, esses hosts ainda assim podem ser diretamente localizados.
Endereços IP fora da sub-rede local só poderão ser localizados se um gateway for configurado para a rede de destino. Nos casos mais comuns, há somente um gateway que controla todo o tráfego externo. Entretanto, também é possível configurar vários gateways para sub-redes diferentes.
Se um gateway tiver sido configurado, todos os pacotes IP externos serão enviados para o gateway apropriado. Esse gateway tentará então encaminhar os pacotes da mesma forma (de host para host) até acessar o host de destino ou até o TTL (time to live) do pacote expirar.
- Endereço de Rede Base
Essa é a máscara de rede E qualquer endereço na rede, conforme mostrado na Exemplo 23.2, “Vinculando endereços IP à máscara de rede” em
Result
. Esse endereço não pode ser designado a nenhum host.- Endereço de broadcast
Isso pode ser parafraseado como: “Acessar todos os hosts nesta sub-rede.” Para gerar isso, a máscara de rede é invertida no formato binário e vinculada ao endereço de rede base com um OU lógico. Portanto, o exemplo acima resulta em 192.168.0.255. Esse endereço não pode ser atribuído a nenhum host.
- Host Local
O endereço
127.0.0.1
é designado ao “dispositivo loopback” em cada host. É possível configurar uma conexão com sua própria máquina usando esse endereço e todos os endereços da rede de loopback127.0.0.0/8
completa, conforme definido com IPv4. Com o IPv6, existe apenas um endereço de loopback (::1
).
Como os endereços IP precisam ser exclusivos em qualquer parte do mundo, não é possível selecionar endereços aleatoriamente. Há três domínios de endereços a serem usados para configurar uma rede baseada em IP privado. Eles não conseguem se conectar ao restante da Internet, pois não podem ser transmitidos através dela. Esses domínios de endereço são especificados no RFC 1597 e listados na Tabela 23.1, “Domínios de endereços IP privados”.
Rede/máscara de rede |
Domínio |
---|---|
|
|
|
|
|
|
23.2 IPv6: a Internet de última geração #
Devido ao surgimento da World Wide Web (WWW), a Internet teve um crescimento massivo com um número cada vez maior de computadores se comunicando por TCP/IP nos últimos 15 anos. Desde que Tim Berners-Lee da CERN (https://public.web.cern.ch) inventou a WWW em 1990, o número de hosts da Internet cresceu de poucos milhares para centenas de milhões deles.
Conforme mencionado, um endereço IPv4 consiste em apenas 32 bits. Além disso, alguns endereços IP são perdidos. Eles não podem ser usados devido à forma como as redes são organizadas. O número de endereços disponíveis na sua sub-rede é dois elevado à potência do número de bits, menos dois. Uma sub-rede tem, por exemplo, 2, 6 ou 14 endereços disponíveis. Para conectar 128 hosts à Internet, por exemplo, você precisa de uma sub-rede com 256 endereços IP, dos quais apenas 254 são utilizáveis, visto que são necessários dois endereços IP para a estrutura da própria sub-rede: o endereço de broadcast e o endereço de rede base.
No protocolo IPv4 atual, DHCP ou NAT (Network Address Translation — Conversão de Endereços de Rede) são os mecanismos comuns usados para contornar a grande falta de endereços. Combinado à convenção de manter endereços públicos e privados separados por espaços, esses métodos podem certamente reduzir a falta de endereços. Para configurar um host em uma rede IPv4, você precisa de vários itens de endereço, como o próprio endereço IP do host, a máscara de sub-rede, o endereço de gateway e talvez um endereço de servidor de nomes. Todos esses itens precisam ser conhecidos e não podem ser derivados de outro lugar.
Com o IPv6, tanto a falta de endereços quanto as configurações complicadas passariam a ser problemas do passado. As seções a seguir oferecem mais informações sobre os aprimoramentos e benefícios trazidos pelo IPv6 e sobre a transição do protocolo antigo para o novo.
23.2.1 Vantagens #
A melhoria mais importante e visível oferecida pelo protocolo IPv6 é a expansão enorme do espaço disponível para endereços. Um endereço IPv6 é composto por valores de 128 bits, em vez dos 32 bits tradicionais. Ele é capaz de fornecer 'quatrilhões' de endereços IP.
Entretanto, os endereços IPv6 não diferem de seus antecessores apenas em relação ao comprimento. Também possuem uma estrutura interna diferente, que pode conter mais informações específicas sobre os sistemas e as redes a que pertencem. Leia mais detalhes sobre eles na Seção 23.2.2, “Estrutura e tipos de endereço”.
Veja a seguir uma lista de outras vantagens do protocolo IPv6:
- Configuração automática
O IPv6 torna apto o “plug and play” da rede, o que significa que um sistema recém-configurado é integrado à rede (local) sem qualquer configuração manual. O novo host usa seu mecanismo de configuração automática para derivar seu próprio endereço a partir das informações disponibilizadas pelos roteadores vizinhos, com base em um protocolo chamado ND (Neighbor Discovery — descoberta de vizinho). Esse método não exige nenhuma intervenção por parte do administrador e não há necessidade de manter um servidor central para alocação de endereços; uma vantagem adicional em relação ao IPv4, cuja alocação automática de endereços exige um servidor DHCP.
No entanto, se houver um roteador conectado a um switch, ele deverá enviar anúncios periódicos com flags avisando os hosts de uma rede como eles devem interagir entre si. Para obter mais informações, consulte o RFC 2462, a página de manual de
radvd.conf(5)
e o RFC 3315.- Mobilidade
O IPv6 torna possível a atribuição de vários endereços a uma interface de rede ao mesmo tempo. Isso permite que usuários acessem várias redes facilmente, o que é comparado aos serviços de roaming internacionais oferecidos pelas empresas de celulares. Quando você viaja com seu celular, ele automaticamente se conecta a um serviço interurbano, ao entrar na área correspondente. Dessa forma, você pode ser localizado no mesmo número de celular em qualquer lugar e pode fazer ligações como se estivesse em sua cidade.
- Comunicação segura
Com o IPv4, a segurança da rede é uma função adicional. O IPv6 inclui IPsec como um de seus recursos principais, permitindo que sistemas se comuniquem por um túnel seguro, para evitar a intromissão de estranhos na Internet.
- Compatibilidade Retroativa
De forma realista, seria impossível mudar toda a Internet de IPv4 para IPv6 de uma só vez. Portanto, é essencial que ambos os protocolos possam coexistir na Internet, mas também em um sistema. Isso é garantido ao usar endereços compatíveis (endereços IPv4 podem facilmente ser convertidos em endereços IPv6) e vários túneis. Consulte a Seção 23.2.3, “Coexistência de IPv4 e IPv6”. Da mesma forma, os sistemas podem se basear em uma técnica IP de pilha dupla para suportar os dois protocolos ao mesmo tempo, significando que eles têm duas pilhas de rede separadas, de tal forma que não há interferência entre as duas versões de protocolos.
- Serviços adaptados e personalizados através de multicasting
Com o IPv4, determinados serviços, como SMB, precisam transmitir seus pacotes para todos os host na rede local. O IPv6 oferece uma abordagem muito mais refinada, permitindo que os servidores direcionem hosts por multicasting, ou seja, direcionando vários hosts como partes de um grupo. Esse procedimento é diferente de direcionar todos os hosts por meio de broadcasting ou cada host individualmente por unicasting. Os hosts enviados como grupos talvez dependam do aplicativo concreto. Há grupos predefinidos específicos para endereçar todos os servidores de nomes (o grupo multicast de servidores de nomes), por exemplo, ou todos os roteadores (o grupo multicast de todos os roteadores).
23.2.2 Estrutura e tipos de endereço #
Conforme mencionado, o protocolo IP atual tem duas limitações importantes: os endereços IP estão cada vez mais escassos e a configuração de rede com manutenção de tabelas de rotina está se tornando uma tarefa cada vez mais complexa e trabalhosa. O IPv6 soluciona o primeiro problema expandindo o espaço dos endereços para 128 bits. O segundo problema é amenizado com a introdução de uma estrutura hierárquica de endereços, combinada com técnicas sofisticadas para alocar endereços de rede e com multihoming (a capacidade de atribuir vários endereços a um dispositivo, concedendo acesso a diversas redes).
Ao utilizar o IPv6, é útil saber que há três tipos diferentes de endereços:
- Unicast
Endereços desse tipo são associados com exatamente uma interface de rede. Pacotes com esse tipo de endereço são entregues em apenas um destino. Da mesma forma, os endereços unicast são usados para transferir pacotes para hosts individuais na rede local ou na Internet.
- Multicast
Endereços desse tipo estão relacionados a um grupo de interfaces de rede. Pacotes com esse tipo de endereço são entregues a todos os destinos pertencentes ao grupo. Endereços multicast são usados, principalmente, por certos tipos de serviços de rede para se comunicarem com determinados grupos de host de forma bem direcionada.
- Anycast
Endereços desse tipo estão relacionados a um grupo de interfaces. Pacotes com esse tipo de endereço são entregues ao membro do grupo mais próximo do remetente, de acordo com os princípios do protocolo de roteamento subjacente. Endereços anycast são usados para que hosts possam descobrir mais facilmente servidores que oferecem certos serviços na área da rede determinada. Todos os servidores do mesmo tipo possuem o mesmo endereço anycast. Sempre que um host solicita um serviço, ele recebe uma resposta do servidor com o local mais próximo, conforme determinado pelo protocolo de roteamento. Caso ocorra alguma falha com esse servidor, o protocolo selecionará automaticamente o segundo servidor mais próximo, depois o terceiro e assim por diante.
Um endereço IPv6 é constituído de oito campos de quatro dígitos, cada um representando 16 bits, gravados em notação hexadecimal. Eles são separados por dois-pontos (:
). Quaisquer zero bytes iniciais em um determinado campo podem ser descartados, mas zeros dentro ou no final do campo não podem ser descartados. Outra convenção é a de que mais de quatro zero bytes consecutivos podem retornar como dois-pontos duplos. Entretanto, apenas um separador do tipo ::
é permitido por endereço. Esse tipo de notação reduzida é mostrado no Exemplo 23.3, “Amostra de endereço IPv6”, em que todas as três linhas representam o mesmo endereço.
fe80 : 0000 : 0000 : 0000 : 0000 : 10 : 1000 : 1a4 fe80 : 0 : 0 : 0 : 0 : 10 : 1000 : 1a4 fe80 : : 10 : 1000 : 1a4
Cada parte de um endereço IPv6 possui uma função definida. Os primeiros bytes formam o prefixo e especificam o tipo de endereço. A parte central é a porção do endereço na rede, mas pode não ser utilizada. O final do endereço forma a parte do host. Com o IPv6, a máscara de rede é definida indicando o comprimento do prefixo depois de uma barra no final do endereço. Um endereço, como mostrado no Exemplo 23.4, “Endereço IPv6 que especifica o comprimento do prefixo”, contém as informações de que os primeiros 64 bits formam a parte da rede do endereço e que os últimos 64 formam a parte do host. Em outras palavras, 64
significa que a máscara de rede está preenchida com 64 valores de 1 bit a partir da esquerda. Como no IPv4, o endereço IP é combinado com E, com os valores da máscara de rede, para determinar se o host está localizado na mesma sub-rede ou em outra.
fe80::10:1000:1a4/64
O IPv6 conhece vários tipos de prefixos predefinidos. Alguns estão exibidos na Prefixos IPv6.
00
Endereços IPv4 e endereços de compatibilidade de IPv4 sobre IPv6. Esses são usados para manter a compatibilidade com IPv4. O seu uso ainda exige um roteador capaz de converter pacotes IPv6 em pacotes IPv4. Vários endereços especiais, como o do dispositivo loopback, também possuem esse prefixo.
2
ou3
como o primeiro dígitoEndereços unicast globais agregativos. Como no caso do IPv4, uma interface pode ser atribuída para fazer parte de determinada sub-rede. Atualmente, existem os seguintes espaços de endereço:
2001::/16
(espaço de endereço de qualidade de produção) e2002::/16
(espaço de endereço 6to4).fe80::/10
Endereços locais de links. Endereços com este prefixo não devem ser roteados e, portanto, só devem ser encontrados na mesma sub-rede.
fec0::/10
Endereços locais de sites. Esses podem ser roteados, mas somente na rede da organização a que pertencem. Na verdade, eles são o equivalente IPv6 do espaço de endereço de rede privada atual, como
10.x.x.x
.ff
Esses são endereços multicast.
Um endereço unicast consiste em três componentes básicos:
- Topologia pública
A primeira parte (que também contém um dos prefixos mencionados acima) é usada para rotear pacotes através da Internet pública. Ela inclui informações sobre a empresa ou instituição que fornece o acesso à Internet.
- Topologia do site
A segunda parte contém informações de roteamento sobre a sub-rede à qual o pacote deve ser entregue.
- ID de interface
A terceira parte identifica a interface à qual o pacote deve ser entregue. Isso também permite que o MAC faça parte do endereço. Como MAC é um identificador fixo globalmente exclusivo codificado no dispositivo pelo fabricante do hardware, o procedimento de configuração é simplificado. Na verdade, os primeiros 64 bits de endereço são consolidados para formar o token
EUI-64
, com os últimos 48 bits obtidos do MAC e os 24 bits restantes contendo informações especiais sobre o tipo de token. Isso também possibilita atribuir um tokenEUI-64
a interfaces que não têm MAC, como aquelas baseadas no protocolo PPP.
No topo dessa estrutura básica, o IPv6 faz distinção entre cinco tipos de endereços unicast:
::
(não especificado)Esse endereço é usado pelo host como seu endereço de origem durante a primeira inicialização da interface (momento em que o endereço ainda não pode ser determinado por outros meios).
::1
(loopback)O endereço do dispositivo loopback.
- Endereços compatíveis com IPv4
O endereço IPv6 é formado pelo endereço IPv4 e um prefixo consistindo em 96 zero bits. Esse tipo de endereço de compatibilidade é usado para um túnel (consulte a Seção 23.2.3, “Coexistência de IPv4 e IPv6”) para permitir que os hosts IPv4 e IPv6 se comuniquem com outros que estejam operando em um ambiente IPv4 puro.
- Endereços IPv4 mapeados para IPv6
Esse tipo de endereço especifica um endereço IPv4 puro em uma notação IPv6.
- Endereços locais
Há dois tipos de endereços para uso local:
- link-local
Este tipo de endereço só pode ser usado na sub-rede local. Pacotes com endereço de origem ou de destino desse tipo não devem ser roteados para a Internet nem para outras sub-redes. Esses endereços contêm um prefixo especial (
fe80::/10
) e o ID da interface da placa de rede, com a parte do meio consistindo em zero byte. Endereços desse tipo são usados durante a configuração automática para se comunicarem com outros hosts pertencentes à mesma sub-rede.- site-local
Pacotes com este tipo de endereço podem ser roteados para outras sub-redes, mas não para a Internet mais ampla. Eles devem permanecer dentro da própria rede da organização. Tais endereços são usados para intranets e equivalem ao espaço de endereço privado definido pelo IPv4. Eles contêm um prefixo especial (
fec0::/10
), o ID da interface e um campo de 16 bits que especifica o ID da sub-rede. Novamente, o restante é preenchido com bytes zero.
Como um recurso novo, introduzido com o IPv6, cada interface de rede normalmente obtém vários endereços IP, com a vantagem de que diversas redes podem ser acessadas através da mesma interface. Uma dessas redes pode ser configurada de forma automática usando o MAC e um prefixo conhecido, resultando na possibilidade de todos os hosts na rede local serem encontrados quando o IPv6 é habilitado (usando o endereço link-local). Com o MAC fazendo parte disso, qualquer endereço IP usado no mundo será exclusivo. As únicas partes variáveis do endereço são aquelas que indicam a topologia do site e a topologia pública, dependendo da rede real na qual o host estiver operando no momento.
Para que um host avance e retroceda entre duas redes diferentes ele precisa de, pelo menos, dois endereços. Um deles, o endereço pessoal, contém não só o ID de interface, como também um identificador da rede doméstica a que ele normalmente pertence (e o prefixo correspondente). O endereço pessoal é um endereço estático e, portanto, normalmente não se modifica. Mesmo assim, todos os pacotes destinados ao host móvel podem ser entregues a ele, independentemente de ele operar na rede doméstica ou em outro local externo. Isso é possível devido aos recursos novos introduzidos com o IPv6, como configuração automática sem estado e descoberta de vizinho. Além do endereço residencial, um host móvel obtém um ou mais endereços adicionais pertencentes às redes interurbanas com roaming. Eles são chamados endereços care-of. A rede doméstica tem um recurso que encaminha qualquer pacote destinado ao host quando ele está em roaming. Em um ambiente IPv6, essa tarefa é executada pelo agente local, que retransmite todos os pacotes destinados ao endereço residencial através de um túnel. Esses pacotes destinados ao endereço care-of são diretamente transferidos para o host móvel sem nenhum desvio especial.
23.2.3 Coexistência de IPv4 e IPv6 #
A migração de todos os hosts conectados à Internet do IPv4 para o IPv6 é um processo gradual. Os dois protocolos podem coexistir durante um determinado tempo. A coexistência deles em um sistema é garantida onde houver uma implementação de pilha dupla de ambos os protocolos. Ainda resta a dúvida de como um host habilitado para IPv6 deve se comunicar com um host IPv4 e como os pacotes do IPv6 devem ser transportados pelas redes atuais, que são predominantemente baseadas no IPv4. As melhores soluções oferecem endereços de compatibilidade e túnel (consulte a Seção 23.2.2, “Estrutura e tipos de endereço”).
Os hosts IPv6 que estiverem isolados na rede IPv4 (mundial) podem se comunicar por túneis: os pacotes IPv6 são encapsulados como pacotes IPv4 para que sejam transmitidos por uma rede IPv4. Tal conexão entre dois hosts IPv4 é chamada de túnel. Para que isso ocorra, os pacotes devem incluir o endereço IPv6 de destino (ou o prefixo correspondente) e o endereço IPv4 do host remoto na extremidade de recepção do túnel. Um túnel básico pode ser configurado manualmente, de acordo com um contrato entre os administradores dos hosts. Também é chamado de túnel estático.
Entretanto, a configuração e manutenção de túneis estáticos é normalmente muito trabalhosa para ser usada diariamente em comunicações. Portanto, o IPv6 fornece três métodos de túneis dinâmicos:
- 6over4
Os pacotes IPv6 são automaticamente encapsulados como pacotes IPv4 e enviados por uma rede IPv4 com capacidade multicast. O IPv6 é induzido a considerar toda a rede (Internet) como uma rede local (LAN). Com isso, é possível determinar automaticamente o destino final do túnel IPv4. Entretanto, esse método não faz um dimensionamento bom e também é limitado porque o multicasting IP não é tão difundido na Internet. Portanto, ele apenas fornece uma solução para redes corporativas ou institucionais menores, em que o multicast pode ser habilitado. As especificações para esse método estão descritas no RFC 2529.
- 6to4
Com esse método, os endereços IPv4 são automaticamente gerados a partir de endereços IPv6, habilitando a comunicação de hosts IPv6 isolados através de uma rede IPv4. Entretanto, vários problemas foram relatados em relação à comunicação entre esses hosts IPv6 isolados e a Internet. O método está descrito no RFC 3056.
- Controlador do túnel IPv6
Esse método se baseia em servidores especiais que fornecem túneis dedicados para hosts IPv6. É descrito no RFC 3053.
23.2.4 Configurando o IPv6 #
Para configurar o IPv6, normalmente não é necessário fazer mudanças nas estações de trabalho individuais. O IPv6 é habilitado por padrão. Para desabilitar ou habilitar o IPv6 em um sistema instalado, use o módulo modprobe
-i ipv6
como root
. É impossível descarregar o módulo IPv6 depois de carregado.
Devido ao conceito de configuração automática do IPv6, um endereço é designado à placa de rede na rede link-local. Normalmente, nenhum gerenciamento de tabela de roteamento é feito em uma estação de trabalho. Os roteadores de rede podem ser consultados pela estação de trabalho, usando o protocolo de anúncios do roteador, para o qual devem ser implementados um prefixo e gateways. O programa radvd pode ser usado para configurar um roteador IPv6. Esse programa informa às estações de trabalho o prefixo que deve ser usado para os endereços IPv6 e os roteadores. Outra opção é usar FRR(consulte https://frrouting.org/) para a configuração automática dos dois endereços e para roteamento.
Para obter informações sobre como configurar vários tipos de túneis usando os arquivos /etc/sysconfig/network
, consulte a página de manual de ifcfg-tunnel
(man ifcfg-tunnel
).
23.2.5 Mais informações #
A visão geral acima não abrange totalmente o tópico do IPv6. Para conhecer melhor o novo protocolo, consulte os manuais e a documentação online a seguir:
- https://www.ipv6.org/
O ponto de partida para tudo relativo ao IPv6.
- http://www.ipv6day.org
Todas as informações necessárias para iniciar sua própria rede IPv6.
- http://www.ipv6-to-standard.org/
A lista de produtos habilitados para IPv6.
- https://www.bieringer.de/linux/IPv6/
O Linux IPv6-HOWTO e muitos links relacionados ao tópico.
- RFC2460
Informações fundamentais do RFC sobre o IPv6.
- IPv6 Essentials
Um livro que descreve todos os aspectos importantes do tópico é o IPv6 Essentials de Silvia Hagen (ISBN 0-596-00125-8).
23.3 Resolução de nome #
O DNS ajuda na designação de um endereço IP a um ou mais nomes e na designação de um nome a um endereço IP. No Linux, essa conversão normalmente é executada por um tipo especial de software chamado bind. A máquina responsável por essa conversão é chamada de servidor de nomes. Os nomes criam um sistema hierárquico, no qual cada componente do nome é separado um ponto. A hierarquia de nomes é, entretanto, independente da hierarquia de endereços IP descrita acima.
Considere um nome completo, como jupiter.example.com
, gravado no formato hostname.domain
. Um nome completo, denominado Nome de Domínio Completo e Qualificado (FQDN, Fully Qualified Domain Name), consiste em um nome de host e um nome de domínio (example.com
). O último também inclui o TLD (Top Level Domain — Domínio de Nível Superior) (com
).
A designação TLD tornou-se bastante confusa por razões históricas. Tradicionalmente, nomes de domínio com três letras são usados nos EUA. No resto do mundo, os códigos nacionais ISO de duas letras são o padrão. Além disso, TLDs mais longos foram introduzidos em 2000, representando certas esferas de atividades (por exemplo, .info
, .name
, .museum
).
Nos primóridos da Internet (antes de 1990), o arquivo /etc/hosts
era usado para armazenar os nomes de todas as máquinas representadas na Internet. Isso rapidamente se tornou impraticável, devido ao crescente número de computadores conectados à Internet. Por essa razão, um banco de dados descentralizado foi desenvolvido para armazenar nomes de host de uma forma amplamente distribuída. Esse banco de dados, semelhante ao servidor de nomes, não tem os dados pertencentes a todos os hosts disponíveis na Internet, mas pode encaminhar solicitações a outros servidores de nomes.
A parte superior da hierarquia é ocupada pelos servidores de nomes raiz. Esses servidores de nomes raiz gerenciam os domínios de nível superior e são executados pelo NIC (Network Information Center). Cada servidor de nomes raiz conhece os servidores de nomes responsáveis por um determinado domínio de nível superior. Para obter informações sobre NICs de domínio superior, vá para https://www.internic.net.
O DNS pode fazer mais do que resolver nomes de host. O servidor de nomes também distingue qual host recebe e-mails para um domínio inteiro: o MX (servidor de correio).
Para sua máquina resolver um endereço IP, ela precisa pelo menos conhecer um servidor de nomes e seu respectivo endereço IP. Especifique facilmente esse tipo de servidor de nomes usando o YaST.
O protocolo whois
está intimamente relacionado ao DNS. Com esse programa, encontre rapidamente o responsável por um determinado domínio.
O domínio de nível superior .local
é tratado como domínio link-local pelo resolver. As solicitações de DNS são enviadas como solicitações de DNS multicast, em vez de solicitações de DNS normal. Se você já usa o domínio .local
em sua configuração de servidor de nomes, deverá desativar essa opção em /etc/host.conf
. Para obter mais informações, consulte a página de manual de host.conf
.
Para desativar o MDNS durante a instalação, use nomdns=1
como parâmetro de boot.
Para obter mais informações sobre DNS de multicast, consulte http://www.multicastdns.org.
23.4 Configurando uma conexão de rede com o YaST #
Há muitos tipos de redes suportadas no Linux. A maioria delas usa nomes de dispositivos diferentes e os arquivos de configuração se espalham por vários locais no sistema de arquivos. Para obter uma visão geral detalhada dos aspectos da configuração manual de rede, consulte a Seção 23.6, “Configurando uma conexão de rede manualmente”.
No SUSE Linux Enterprise Desktop, em que o NetworkManager está ativo por padrão, todas as placas de rede estão configuradas. Se o NetworkManager não estiver ativo, apenas a primeira interface com link ativo (com cabo de rede conectado) será configurada automaticamente. Hardwares adicionais podem ser configurados a qualquer momento no sistema instalado. As seguintes seções descrevem a configuração de rede para todos os tipos de conexões de rede suportadas pelo SUSE Linux Enterprise Desktop.
23.4.1 Configurando a placa de rede com o YaST #
Para configurar a placa Ethernet ou Wi-Fi/Bluetooth no YaST, selecione
› . Após iniciar o módulo, o YaST exibirá a caixa de diálogo com quatro guias: , , e .A guia Seção 23.4.1.1, “Configurando as opções globais de rede”.
permite definir opções gerais de rede, como método de configuração de rede, IPv6 e opções gerais de DHCP. Para obter mais informações, consulte aA guia Seção 23.4.1.3, “Configurando uma placa de rede não detectada”. Para mudar a configuração de uma placa que já está configurada, consulte a Seção 23.4.1.2, “Mudando a configuração de uma placa de rede”.
contém informações sobre interfaces de rede instaladas e configurações. Ela lista os nomes de todas as placas de rede detectadas corretamente. Nessa caixa de diálogo, você pode configurar manualmente novas placas, bem como remover ou mudar suas configurações. Para configurar manualmente uma placa que não foi detectada automaticamente, consulte aA guia Seção 23.4.1.4, “Configurando nome de host e DNS”.
permite definir o nome de host da máquina e nomear os servidores que serão usados. Para obter mais informações, consulte aA guia Seção 23.4.1.5, “Configurando o roteamento” para obter mais informações.
é usada para a configuração do roteamento. Consulte a23.4.1.1 Configurando as opções globais de rede #
A guia
do módulo do YaST permite definir opções globais de rede importantes, como o uso do NetworkManager, o IPv6 e opções de cliente DHCP. Essas configurações são aplicáveis a todas as interfaces de rede.
Em nm-applet
deverá ser usado para configurar opções de rede, e as guias , e do módculo estarão desabilitadas. Para obter mais informações sobre o NetworkManager, consulte o Capítulo 31, Usando o NetworkManager.
Em
, escolha se é para usar o protocolo IPv6. É possível usar o IPv6 juntamente com o IPv4. Por padrão, IPv6 está habilitado. Contudo, nas redes que não usam o protocolo IPv6, os tempos de resposta podem ser acelerados com o protocolo IPv6 desabilitado. Para desabilitá-lo, desmarque . Se o IPv6 for desabilitado, o kernel não carregará mais o módulo IPv6 automaticamente. Esta configuração será aplicada após a reinicialização.Nas
, configure as opções do cliente DHCP. O deve ser diferente para cada cliente DHCP na mesma rede. Se ficar vazio, assumirá como padrão o endereço de hardware da interface da rede. Entretanto, se você tiver várias máquinas virtuais em execução na mesma interface de rede e, portanto, com o mesmo endereço de hardware, especifique aqui um identificador exclusivo.
O AUTO
para enviar o nome de host atual (ou seja, o que está definido em /etc/HOSTNAME
). Deixe o campo da opção vazio para não enviar nenhum nome de host.
Para não mudar a rota padrão de acordo com as informações do DHCP, desmarque
.23.4.1.2 Mudando a configuração de uma placa de rede #
Para mudar a configuração de uma placa de rede, selecione-a na lista de placas detectadas em
› no YaST e clique em . A caixa de diálogo é exibida, na qual é possível ajustar a configuração da placa usando as guias , e .23.4.1.2.1 Configurando endereços IP #
Você pode definir o endereço IP da placa de rede ou o modo como seu endereço IP é determinado na guia
da caixa de diálogo Há suporte para endereços IPv4 e IPv6. A placa de rede pode ser (útil para dispositivos de vinculação), ter um (IPv4 ou IPv6) ou um atribuído por , ou ambos.Ao usar um
, selecione se deseja usar (para IPv4), (para IPv6) ou .Se possível, a primeira placa de rede com link que estiver disponível durante a instalação será configurada automaticamente para usar a configuração automática de endereço via DHCP. No SUSE Linux Enterprise Desktop, em que o NetworkManager está ativo por padrão, todas as placas de rede estão configuradas.
Também será necessário usar o DHCP se você estiver usando uma linha DSL sem nenhum IP estático atribuído pelo ISP (Internet Service Provider — Provedor de Serviços de Internet). Se você decidir usar o DHCP, configure os detalhes em
na guia da caixa de diálogo do módulo de configuração de placa de rede do YaST. Se você tiver uma configuração de host virtual, em que hosts diferentes se comunicam pela mesma interface, será necessário um para diferenciá-las.O DHCP é uma boa opção para a configuração de clientes, mas não é a ideal para a configuração de servidores. Para definir um endereço IP estático, faça o seguinte:
Selecione uma placa na lista de placas detectadas na guia
do módulo de configuração de placa de rede do YaST e clique em .Na guia
, escolha .Digite o
. Podem ser usados endereços IPv4 e IPv6. Digite a máscara de rede em . Se for usado o endereço IPv6, use para um comprimento do prefixo no formato/64
.Se preferir, digite um
completo para esse endereço, que será gravado no arquivo de configuração/etc/hosts
.Clique em
.Para ativar a configuração, clique em
.
Durante a ativação de uma interface de rede, o wicked
verifica a existência de uma operadora e apenas aplica a configuração de IP depois que um link foi detectado. Se você precisa aplicar a configuração independentemente do status do link (por exemplo, quando você deseja testar um serviço que escuta determinado endereço), pode ignorar a detecção de link adicionando a variável LINK_REQUIRED=no
ao arquivo de configuração da interface em /etc/sysconfig/network/ifcfg
.
Você também pode usar a variável LINK_READY_WAIT=5
para especificar o tempo de espera de um link em segundos.
Para obter mais informações sobre os arquivos de configuração ifcfg-*
, consulte a Seção 23.6.2.5, “/etc/sysconfig/network/ifcfg-*
” e o man 5 ifcfg
.
Se você usa o endereço estático, os servidores de nomes e o gateway padrão não são configurados automaticamente. Para configurar servidores de nomes, proceda conforme descrito na Seção 23.4.1.4, “Configurando nome de host e DNS”. Para configurar um gateway, proceda conforme descrito na Seção 23.4.1.5, “Configurando o roteamento”.
23.4.1.2.2 Configurando vários endereços #
Um único dispositivo de rede pode ter vários endereços IP chamados álias ou rótulos.
Os álias ou rótulos funcionam apenas com IPv4. O uso de interfaces de rede iproute2
torna possível ter um ou mais endereços.
Para definir mais endereços para sua placa de rede usando o YaST, faça o seguinte:
Selecione uma placa na lista de placas detectadas na guia
da caixa de diálogo do YaST e clique em .Na guia
› , clique em .Digite o
, o e a . Observe que os álias de IP devem ser adicionados com a máscara de rede/32
. Não inclua o nome da interface no nome do álias.Para ativar a configuração, confirme as definições.
23.4.1.2.3 Mudando o nome de dispositivo e as regras de udev #
É possível mudar o nome de dispositivo da placa de rede quando ela for usada. Também é possível determinar se a placa de rede deve ser identificada pelo udev usando o endereço (MAC) de hardware ou o ID do barramento. A última opção é preferencial em servidores grandes para simplificar o hotplug de placas. Para definir essas opções com o YaST, faça o seguinte:
Selecione uma placa na lista de placas detectadas na guia
da caixa de diálogo do YaST e clique em .Vá até a guia
. O nome de dispositivo atual é mostrado em . Clique em .Selecione se o udev deve identificar a placa por seu
ou . O endereço MAC e o ID do barramento atuais da placa são mostrados na caixa de diálogo.Para mudar o nome de dispositivo, marque a opção
e edite o nome.Para ativar a configuração, confirme as definições.
23.4.1.2.4 Mudando o driver do kernel da placa de rede #
Para algumas placas de rede, pode haver vários drivers de kernel disponíveis. Se a placa já estiver configurada, o YaST permitirá selecionar um driver do Kernel para uso na lista de drivers compatíveis disponíveis. Também é possível especificar opções para o driver de kernel. Para definir essas opções com o YaST, faça o seguinte:
Selecione uma placa na lista de placas detectadas na guia
do módulo Configurações de Rede do YaST e clique em .Vá até a guia
.Selecione o driver de kernel a ser usado em
. Insira quaisquer opções para o driver selecionado em , no formato=
=VALUE. Se forem usadas mais opções, elas deverão ser separadas por espaços.Para ativar a configuração, confirme as definições.
23.4.1.2.5 Ativando o dispositivo de rede #
Se você usar o método com o wicked
, poderá configurar seu dispositivo para ser iniciado durante o boot, na conexão a cabo, ao detectar a placa, manualmente ou nunca. Para mudar a inicialização do dispositivo, faça o seguinte:
No YaST, selecione uma placa na lista de placas detectadas em
› e clique em .Na guia
, selecione a entrada desejada em .Escolha
para iniciar o dispositivo durante o boot do sistema. Com a opção , a interface é monitorada quanto a qualquer conexão física existente. Com a opção , a interface é definida ao ficar disponível. Ela é semelhante à opção , a única diferença é que não ocorre nenhum erro quando a interface não está presente no momento da inicialização. Escolha para controlar a interface manualmente comifup
. Escolha para não iniciar o dispositivo. A opção é similar a , mas a interface não é encerrada com o comandosystemctl stop network
. O serviçonetwork
também se encarregará do serviçowicked
se owicked
estiver ativo. Use-a se você estiver usando um sistema de arquivos raiz NFS ou iSCSI.Para ativar a configuração, confirme as definições.
Em sistemas (sem disco) nos quais a partição raiz é montada por rede como compartilhamento NFS, você precisa ter cuidado ao configurar o dispositivo de rede pelo qual o compartilhamento NFS pode ser acessado.
Ao encerrar ou reinicializar o sistema, a ordem de processamento padrão é desativar as conexões de rede e, na sequência, desmontar a partição raiz. Com a raiz NFS, essa ordem causa problemas, já que a partição raiz não pode ser completamente desmontada porque a conexão de rede com o compartilhamento NFS já não está ativada. Para impedir que o sistema desative o dispositivo de rede relevante, abra a guia de configuração do dispositivo de rede, conforme descrito na Seção 23.4.1.2.5, “Ativando o dispositivo de rede”, e escolha no painel .
23.4.1.2.6 Configurando o tamanho da unidade máxima de transferência #
Você pode definir uma unidade máxima de transferência (MTU) para a interface. A MTU refere-se ao maior tamanho de pacote permitido, em bytes. Uma MTU maior proporciona melhor eficiência da largura de banda. No entanto, pacotes grandes podem bloquear uma interface lenta por algum tempo, aumentando a latência dos pacotes seguintes.
No YaST, selecione uma placa na lista de placas detectadas em
› e clique em .Na guia
, selecione a entrada desejada na lista .Para ativar a configuração, confirme as definições.
23.4.1.2.7 Dispositivos multifuncionais PCIe #
Dispositivos multifuncionais que suportam LAN, iSCSI e FCoE são permitidos. O cliente FCoE do YaST (yast2 fcoe-client
) mostra flags particulares em colunas adicionais para permitir que o usuário selecione o dispositivo destinado ao FCoE. O módulo de rede do YaST (yast2 lan
) exclui os “dispositivos apenas de armazenamento” da configuração de rede.
23.4.1.2.8 Configuração de Infiniband para IP sobre InfiniBand (IPoIB) #
No YaST, selecione o dispositivo InfiniBand em
› e clique em .Na guia
, selecione um dos modos IPoIB ( – InfiniBand sobre IP): (conectado, que é o padrão) ou (datagrama).Para ativar a configuração, confirme as definições.
Para obter mais informações sobre o InfiniBand, consulte /usr/src/linux/Documentation/infiniband/ipoib.txt
.
23.4.1.2.9 Configurando o firewall #
Sem precisar efetuar a configuração de firewall detalhada, como descrito na Section 23.4, “firewalld
”, você pode determinar a configuração de firewall básica para seu dispositivo como parte da configuração dele. Proceda da seguinte maneira:
Abra o módulo
› do YaST. Na guia , selecione uma placa na lista de placas detectadas e clique em .Acesse a guia
da caixa de diálogo .Determine a
à qual sua interface deve ser atribuída. As seguintes opções estão disponíveis:- Firewall Desabilitado
Essa opção estará disponível apenas se o firewall estiver desabilitado, sem entrar em execução. Use esta opção apenas se a sua máquina pertencer a uma rede maior protegida por um firewall externo.
- Zona Atribuída Automaticamente
Essa opção fica disponível apenas quando o firewall está habilitado. O firewall está em execução e a interface é atribuída automaticamente a uma zona de firewall. Para uma interface como essa, será usada a zona que contiver a palavra-chave
any
ou a zona externa.- Zona Interna (Não Protegida)
O firewall está em execução, mas não assegura o uso obrigatório de nenhuma regra para proteger a interface. Use esta opção se a sua máquina pertencer a uma rede maior protegida por um firewall externo. Ela também é útil para as interfaces conectadas à rede interna, quando a máquina possui mais interfaces de rede.
- Zona Desmilitarizada
Zona desmilitarizada é uma linha de defesa adicional situada na frente de uma rede interna e da Internet (hostil). Os hosts designados a essa zona podem ser acessados a partir da rede interna e a Internet, mas não podem acessar a rede interna.
- Zona Externa
O firewall está em execução nesta interface e a protege totalmente contra outros tráfegos de rede (provavelmente hostis). Ela é a opção padrão.
Para ativar a configuração, confirme as definições.
23.4.1.3 Configurando uma placa de rede não detectada #
Se uma placa de rede não for detectada corretamente, ela não será incluída na lista de placas detectadas. Se você tiver certeza de que o sistema contém um driver para sua placa, poderá configurá-la manualmente. Se for possível, configure também tipos especiais de dispositivos de rede, como ponte, ligação, TUN ou TAP. Para configurar uma placa de rede não detectada (ou um dispositivo especial), faça o seguinte:
Na caixa de diálogo
› › no YaST, clique em .Na caixa de diálogo
, defina o da interface entre as opções disponíveis e o . Se a placa de rede for um dispositivo USB, ative a respectiva caixa de seleção e saia dessa caixa de diálogo clicando em . Caso contrário, você pode definir o do kernel para ser usado para a placa e as respectivas , se necessário.Em
, você pode definir as opções deethtool
usadas peloifup
para a interface. Para obter informações sobre as opções disponíveis, consulte a página de manual doethtool
.Se a string da opção começar com um
-
(por exemplo,-K INTERFACE_NAME rx on
), a segunda palavra na string será substituída pelo nome da interface atual. Do contrário, (por exemplo,autoneg off speed 10
)ifup
adicionará-s INTERFACE_NAME
ao início.Clique em
.Configure quaisquer opções que forem necessárias, como o endereço IP, a ativação do dispositivo ou a zona de firewall da interface nas guias Seção 23.4.1.2, “Mudando a configuração de uma placa de rede”.
, e Para obter mais informações sobre as opções de configuração, consulteSe você selecionou
como o tipo de dispositivo da interface, configure a conexão wireless na próxima caixa de diálogo.Para ativar a nova configuração de rede, confirme as definições.
23.4.1.4 Configurando nome de host e DNS #
Se você não mudou a configuração de rede durante a instalação e a placa Ethernet já estava disponível, um nome de host foi gerado automaticamente para o seu computador e o DHCP foi ativado. O mesmo se aplica às informações de serviço de nomes de que o host necessita para se integrar a um ambiente de rede. Se o DHCP for usado para a configuração de endereços de rede, a lista de servidores de nomes de domínio será preenchida automaticamente com os dados adequados. Se uma configuração estática for preferencial, defina esses valores manualmente.
Para mudar o nome do seu computador e ajustar a lista de pesquisa do servidor de nomes, faça o seguinte:
Vá para a guia
› no módulo no YaST.Insira o
. Observe que o nome de host é global e aplica-se a todas as interfaces de rede.Se você estiver usando o DHCP para obter um endereço IP, o nome de host do seu computador será definido automaticamente pelo servidor DHCP. Convém desabilitar esse comportamento se você se conecta a outras redes, já que elas podem atribuir nomes de host diferentes, e a mudança de nome de host em tempo de execução pode confundir a área de trabalho gráfica. Para desabilitar o uso do DHCP para obter um endereço IP, desmarque
.Em
, selecione o modo como a configuração do DNS (servidores de nomes, lista de pesquisa, conteúdo do arquivo/run/netconfig/resolv.conf
) é modificada.Se a opção
for selecionada, a configuração será gerenciada pelo scriptnetconfig
, que funde os dados definidos estaticamente (com o YaST ou nos arquivos de configuração) com os dados obtidos dinamicamente (do cliente DHCP ou do NetworkManager). Essa política padrão geralmente é suficiente.Se a opção
for selecionada,netconfig
não terá permissão para modificar o arquivo/run/netconfig/resolv.conf
. Entretanto, esse arquivo pode ser editado manualmente.Se a opção
for selecionada, deverá ser especificada uma string de definindo a política de fusão. A string consiste em uma lista de nomes de interface separados por vírgula, considerada como fonte válida de configurações. Além dos nomes completos de interface, também são permitidos curingas básicos para corresponder a várias interfaces. Por exemplo,eth* ppp?
encontrará primeiro todas as interfaces eth e, depois, todas as interfaces de ppp0 a ppp9. Existem dois valores de política especiais que indicam como aplicar as configurações estáticas definidas no arquivo/etc/sysconfig/network/config
:STATIC
É necessário fundir as configurações estáticas com as configurações dinâmicas.
STATIC_FALLBACK
As configurações estáticas são usadas apenas quando não há nenhuma configuração dinâmica disponível.
Para obter mais informações, consulte a página de manual do
netconfig
(8) (man 8 netconfig
).Digite os
e preencha a lista Servidores de nomes devem ser especificados por endereços IP, como 192.168.1.116, e não por nomes de host. Os nomes especificados na guia são nomes de domínio usados para resolver nomes de host sem um domínio especificado. Se for usada mais de uma , separe os domínios por vírgulas ou espaços.Para ativar a configuração, confirme as definições.
É possível também editar o nome de host usando o YaST da linha de comando. As mudanças feitas pelo YaST entram em vigor imediatamente (o que não acontece quando se edita o arquivo /etc/HOSTNAME
manualmente). Para mudar o nome de host, use o seguinte comando:
#
yast dns edit hostname=HOSTNAME
Para mudar os servidores de nomes, use os seguintes comandos:
#
yast dns edit nameserver1=192.168.1.116#
yast dns edit nameserver2=192.168.1.117#
yast dns edit nameserver3=192.168.1.118
23.4.1.5 Configurando o roteamento #
Para que sua máquina se comunique com outras máquinas e redes, é necessário fornecer informações de roteamento para que o tráfego de rede siga o caminho correto. Se o DHCP for usado, essas informações serão fornecidas automaticamente. Se uma configuração estática for usada, esses dados deverão ser adicionados manualmente.
No YaST, vá para
› .Digite o endereço IP do
(IPv4 e IPv6, se necessário). O gateway padrão corresponde a todos os destinos possíveis, mas se houver uma entrada da tabela de roteamento que corresponda ao endereço exigido, ela será usada no lugar da rota padrão, pelo Gateway Padrão.É possível digitar mais entradas na
. Digite o endereço IP do , o endereço IP do e a . Selecione o pelo qual será roteado o tráfego para a rede definida (o sinal de menos significa qualquer dispositivo). Para omitir qualquer um desses valores, use o sinal de menos-
. Para inserir um gateway padrão na tabela, usedefault
no campo .Nota: Priorização de rotaSe forem usadas mais rotas padrão, será possível especificar a opção métrica para determinar qual rota possui a prioridade mais alta. Para especificar a opção métrica, digite
- metric NUMBER
em . A menor métrica possível é 0. A rota com a métrica mais baixa tem a prioridade mais alta e é usada como padrão. Se o dispositivo de rede for desconectado, sua rota será removida e o dispositivo seguinte será usado.Se o sistema for um roteador, habilite
e em , conforme necessário.Para ativar a configuração, confirme as definições.
23.5 NetworkManager #
O NetworkManager é a solução ideal para laptops e outros computadores portáteis. Com o NetworkManager, não é necessário preocupar-se em configurar interfaces de rede e alternar entre redes quando você estiver em trânsito.
O NetworkManager é suportado apenas pelo SUSE para cargas de trabalho de desktop com SLED ou a Workstation Extension. Todas as certificações de servidor são feitas com a ferramenta de configuração de rede wicked
, e o uso do NetworkManager pode invalidá-las. O NetworkManager não é suportado pelo SUSE para cargas de trabalho de servidor.
23.5.1 NetworkManager e wicked
#
Entretanto, como o NetworkManager não é uma solução adequada para todos os casos, você ainda pode escolher entre o método de gerenciamento de conexões de rede controlado pelo wicked
e o NetworkManager. Para gerenciar sua conexão de rede com o NetworkManager, habilite-o no módulo Configurações de Rede do YaST, conforme descrito na Seção 31.2, “Habilitando ou desabilitando o NetworkManager”, e configure suas conexões de rede com o NetworkManager. Para ver uma lista dos casos de uso e uma descrição detalhada de como configurar e usar o NetworkManager, consulte o Capítulo 31, Usando o NetworkManager.
Algumas diferenças entre o wicked e o NetworkManager:
- Privilégios de
root
Se você usa o NetworkManager para configurar a rede, poderá alternar, parar ou iniciar com facilidade a conexão de rede, a qualquer momento, de dentro do ambiente de área de trabalho usando um applet. O NetworkManager também permite mudar e configurar conexões de placa wireless sem exigir privilégios de
root
. Por esse motivo, o NetworkManager é a solução ideal para uma estação de trabalho móvel.O
wicked
também oferece algumas maneiras de alternar, parar ou iniciar a conexão com ou sem a intervenção do usuário, como os dispositivos gerenciados pelo usuário. No entanto, privilégios deroot
sempre são exigidos para mudar ou configurar um dispositivo de rede. Isso normalmente é um problema para a computação móvel, na qual não é possível pré-configurar todas as possibilidades de conexão.- Tipos de conexões de rede
Tanto o
wicked
quanto o NetworkManager podem gerenciar conexões com uma rede wireless (com acesso WEP, WPA-PSK e WPA-Enterprise) e redes com fio usando a configuração DHCP e estática. Eles também suportam conexão por discagem e VPN. Com o NetworkManager, é possível também conectar um modem de banda larga móvel (3G) ou configurar uma conexão DSL, o que não é possível com a configuração tradicional.O NetworkManager tenta manter o computador conectado o tempo todo usando a melhor conexão disponível. Se o cabo da rede for desconectado por acidente, ele tentará reconectar. Ele é capaz de localizar a rede que tiver a melhor intensidade de sinal na lista de conexões wireless e usá-la automaticamente para uma conexão. Para obter a mesma funcionalidade com o
wicked
, são necessárias mais configurações.
23.5.2 Funcionalidade e arquivos de configuração do NetworkManager #
As configurações individuais de conexão de rede criadas com o NetworkManager são armazenadas em perfis de configuração. As conexões do sistema configuradas com o NetworkManager ou o YaST são gravadas em /etc/NetworkManager/system-connections/*
ou em /etc/sysconfig/network/ifcfg-*
. No GNOME, todas as conexões definidas pelo usuário são armazenadas no GConf.
Caso não haja nenhum perfil configurado, o NetworkManager criará um automaticamente com o nome Auto $INTERFACE-NAME
. Isso é uma tentativa de fazer funcionar sem qualquer configuração para tantos casos quanto forem possíveis (com segurança). Se os perfis criados automaticamente não atenderem às suas necessidades, use as caixas de diálogo de configuração da conexão de rede, fornecidas pelo GNOME, para modificá-los conforme desejado. Para obter mais informações, consulte a Seção 31.3, “Configurando conexões de rede”.
23.5.3 Controlando e bloqueando recursos do NetworkManager #
Em máquinas administradas centralmente, determinados recursos do NetworkManager podem ser controlados ou desabilitados com o PolKit, por exemplo, se um usuário tiver permissão para modificar as conexões definidas pelo administrador ou para definir as próprias configurações de rede. Para ver ou mudar as respectivas políticas do NetworkManager, inicie a ferramenta gráfica Chapter 18, The Polkit authentication framework.
para o PolKit. Na árvore do lado esquerdo, elas se encontram abaixo da entrada Para ver uma introdução ao PolKit e saber detalhes de como usá-lo, consulte o23.6 Configurando uma conexão de rede manualmente #
A configuração manual do software de rede deve ser a última alternativa. É recomendável usar o YaST. Entretanto, essas informações de base sobre a configuração de rede também podem ajudar você na utilização do YaST.
23.6.1 Configuração de rede com wicked
#
A ferramenta e biblioteca chamada wicked
dispõe de uma nova estrutura para configuração de rede.
Um dos desafios do gerenciamento de interface de rede tradicional é que as diferentes camadas de gerenciamento de rede são misturadas desorganizadamente em um único script ou, no máximo, em dois scripts diferentes. Esses scripts interagem entre si de maneira mal definida. Isso leva a problemas imprevisíveis, restrições e convenções obscuras etc. Várias camadas de hacks especiais para muitos cenários diferentes aumentam a carga de manutenção. Estão sendo usados protocolos de configuração de endereço que são implementados por meio de daemons como o dhcpcd, que pouco se interagem com o restante da infraestrutura. Esquemas de nomeação de interface ruins que exigem suporte pesado a udev são introduzidos para obter identificação persistente das interfaces.
A ideia do wicked é analisar o problema de várias maneiras. Nenhuma delas é totalmente inovadora, mas esperamos que, ao tentar reunir ideias de diferentes projetos, seja criada uma solução global melhor.
Uma abordagem é usar um modelo de cliente/servidor. Dessa forma, o wicked pode definir recursos padronizados para ações como configuração de endereço que se integrem bem à estrutura geral. Por exemplo, ao usar a configuração de um endereço específico, o administrador pode solicitar que uma interface seja configurada por DHCP ou IPv4 zeroconf. Nesse caso, o serviço de configuração de endereço simplesmente obtém o aluguel do servidor e o transfere para o processo do servidor wicked, que instala os endereços e as rotas solicitados.
A outra abordagem para analisar o problema é impor o aspecto de organização em camadas. Para qualquer tipo de interface de rede, é possível definir um serviço dbus que configure a camada do dispositivo da interface de rede: VLAN, ponte, ligação ou dispositivo paravirtualizado. Uma funcionalidade comum, como a configuração de endereço, é implementada por serviços de junção, que são colocados em camadas sobre esses serviços específicos do dispositivo, sem ter que implementá-los especificamente.
A estrutura do wicked implementa esses dois aspectos usando uma variedade de serviços dbus, que são anexados a uma interface de rede de acordo com o seu tipo. Veja a seguir uma visão geral simples da hierarquia de objeto no wicked.
Cada interface de rede é representada por um objeto filho de /org/opensuse/Network/Interfaces
. O nome do objeto filho é dado por seu ifindex. Por exemplo, a interface de loopback, que geralmente tem ifindex 1, é /org/opensuse/Network/Interfaces/1
, a primeira interface Ethernet registrada é /org/opensuse/Network/Interfaces/2
.
Cada interface de rede tem uma “classe” associada, que é usada para selecionar as interfaces dbus suportadas. Por padrão, cada interface de rede pertence à classe netif
, e o wickedd
anexa automaticamente todas as interfaces compatíveis com essa classe. Na implementação atual, isso inclui as seguintes interfaces:
- org.opensuse.Network.Interface
Funções de interface de rede genéricas, como mover o link para cima ou para baixo, atribuir uma MTU, etc
- org.opensuse.Network.Addrconf.ipv4.dhcp, org.opensuse.Network.Addrconf.ipv6.dhcp, org.opensuse.Network.Addrconf.ipv4.auto
Serviços de configuração de endereço para DHCP, IPv4 zeroconf, etc
Além disso, as interfaces de rede podem exigir ou oferecer mecanismos de configuração especiais. Para um dispositivo Ethernet, por exemplo, você deve controlar a velocidade do link, descarregar o checksum etc. Para fazer isso, os dispositivos Ethernet têm uma classe própria chamada netif-ethernet
, que é uma subclasse de netif
. Como consequência, as interfaces dbus atribuídas a uma interface Ethernet incluem todos os serviços relacionados anteriormente e mais o org.opensuse.Network.Ethernet
, um serviço disponível apenas para os objetos pertencentes à classe netif-ethernet
.
Semelhantemente, existem classes para tipos de interface como pontes, VLANs, ligações ou infinibands.
Como você interage com uma interface do tipo da VLAN (que é realmente uma interface de rede virtual sobre um dispositivo Ethernet) que precisa ser criada pela primeira vez? Para isso, o wicked define interfaces de fábrica, como org.opensuse.Network.VLAN.Factory
. Esse tipo de interface de fábrica oferece uma única função que permite criar uma interface do tipo solicitado. Essas interfaces de fábrica são anexadas ao nó da lista /org/opensuse/Network/Interfaces
.
23.6.1.1 Arquitetura e recursos do wicked
#
O serviço wicked
é composto por várias partes, conforme mostrado em Figura 23.4, “Arquitetura do wicked
”.
wicked
#
O wicked
suporta o seguinte:
Back ends de arquivo de configuração para analisar os arquivos
/etc/sysconfig/network
no estilo SUSE.Um back end de configuração interno para representar a configuração da interface de rede em XML.
Ativação e encerramento de interfaces de rede “normais”, como Ethernet ou InfiniBand, VLAN, ponte, ligações, tun, tap, dummy, macvlan, macvtap, hsi, qeth, iucv e dispositivos wireless (com limite de uma rede wpa-psk/eap).
Um cliente DHCPv4 e um cliente DHCPv6 incorporados.
O daemon nanny (habilitado por padrão) ajuda a ativar automaticamente as interfaces configuradas quando o dispositivo está disponível (hot plug de interface) e definir a configuração de IP quando um link (operadora) é detectado. Consulte a Seção 23.6.1.3, “Nanny” para obter mais informações.
O
wicked
foi implementado como um grupo de serviços DBus que estão integrados ao systemd. Dessa forma, os comandos comuns dosystemctl
são aplicados aowicked
.
23.6.1.2 Usando wicked
#
No SUSE Linux Enterprise, o wicked
é executado por padrão. Para saber o que está habilitado no momento e se está em execução, chame:
systemctl status network
Se o wicked
estiver habilitado, você verá alguma indicação nestas linhas:
wicked.service - wicked managed network interfaces Loaded: loaded (/usr/lib/systemd/system/wicked.service; enabled) ...
Se algo diferente estiver em execução (por exemplo, o NetworkManager), e você quiser alterar para o wicked
, primeiro interrompa o que estiver em execução e, em seguida, habilite o wicked
:
systemctl is-active network && \ systemctl stop network systemctl enable --force wicked
Isso habilita os serviços do wicked, cria o link do álias network.service
com o álias wicked.service
e inicia a rede na próxima inicialização.
Iniciando o processo do servidor:
systemctl start wickedd
Esse procedimento inicia o wickedd
(o servidor principal) e os suplicantes associados:
/usr/lib/wicked/bin/wickedd-auto4 --systemd --foreground /usr/lib/wicked/bin/wickedd-dhcp4 --systemd --foreground /usr/lib/wicked/bin/wickedd-dhcp6 --systemd --foreground /usr/sbin/wickedd --systemd --foreground /usr/sbin/wickedd-nanny --systemd --foreground
Em seguida, ative a rede:
systemctl start wicked
Se preferir, use o álias network.service
:
systemctl start network
Estes comandos usam as fontes de configuração padrão ou do sistema, conforme definido em /etc/wicked/client.xml
.
Para habilitar a depuração, defina WICKED_DEBUG
em /etc/sysconfig/network/config
, por exemplo:
WICKED_DEBUG="all"
Ou para omiti-la:
WICKED_DEBUG="all,-dbus,-objectmodel,-xpath,-xml"
Use o utilitário cliente para exibir as informações de todas as interfaces ou da interface especificada com IFNAME:
wicked show all wicked show IFNAME
Na saída XML:
wicked show-xml all wicked show-xml IFNAME
Ativando uma interface:
wicked ifup eth0 wicked ifup wlan0 ...
Como não há nenhuma fonte de configuração especificada, o cliente do wicked verifica suas fontes de configuração padrão definidas em /etc/wicked/client.xml
:
firmware:
iBFT (iSCSI Boot Firmware Table)Arquivos
compat:
ifcfg
, implementados para compatibilidade
O que o wicked
obtiver destas fontes para determinada interface será aplicado. A ordem de importância desejada é firmware
e depois compat
, o que pode ser mudado no futuro.
Para obter mais informações, consulte a página de manual de wicked
.
23.6.1.3 Nanny #
Nanny é um daemon orientado por eventos e políticas que é responsável por cenários assíncronos ou não solicitados, como dispositivos de hot plug. Portanto, o daemon nanny ajuda a iniciar ou reiniciar dispositivos atrasados ou temporariamente ausentes. O Nanny monitora as mudanças em dispositivos e links e integra novos dispositivos definidos pelo conjunto de políticas atual. O Nanny continua a configuração, mesmo que o ifup
já tenha saído por causa das restrições de tempo de espera especificadas.
Por padrão, o daemon nanny está ativo no sistema. Ele é habilitado no arquivo de configuração /etc/wicked/common.xml
:
<config> ... <use-nanny>true</use-nanny> </config>
Essa configuração faz com que o ifup e o ifreload apliquem uma política com a configuração efetiva ao daemon nanny. Depois disso, o nanny configura o wickedd
e, dessa forma, garante o suporte a hot plug. Ele aguarda por eventos ou mudanças (como novos dispositivos ou ativação de operadora) em segundo plano.
23.6.1.4 Ativando várias interfaces #
Para ligações e pontes, convém definir a topologia inteira do dispositivo em um arquivo (ifcfg-bondX) e ativá-la de uma vez. Na sequência, o wicked poderá ativar a configuração inteira, se você especificar os nomes das interfaces de nível superior (da ponte ou da ligação):
wicked ifup br0
Esse comando configura automaticamente a ponte e suas dependências na ordem apropriada, sem necessidade de listar as dependências (portas e outras) separadamente.
Para ativar várias interfaces em um comando:
wicked ifup bond0 br0 br1 br2
Ou também todas as interfaces:
wicked ifup all
23.6.1.5 Usando túneis com o wicked #
O TUNNEL_DEVICE
é usado quando você precisa utilizar túneis com Wicked. Ele permite especificar um nome de dispositivo opcional para vincular o túnel ao dispositivo. Os pacotes tunneled apenas são roteados por meio desse dispositivo.
Para obter mais informações, consulte o man 5 ifcfg-tunnel
.
23.6.1.6 Processando mudanças incrementais #
Com o wicked
, não há necessidade de desativar uma interface para reconfigurá-la (exceto se exigido pelo kernel). Por exemplo, para adicionar outro endereço IP ou rota a uma interface de rede estaticamente configurada, adicione o endereço IP à definição da interface e execute outra operação “ifup”. O servidor tentará de tudo para atualizar apenas as configurações que foram mudadas. Isso vale para as opções no nível do link, como a MTU do dispositivo ou o endereço MAC, e para as configurações no nível da rede, como endereços, rotas ou até mesmo o modo de configuração de endereço (por exemplo, ao mover de uma configuração estática para DHCP).
Claro que as coisas se tornam mais complicadas quando há interfaces virtuais combinadas a vários dispositivos reais, como pontes ou ligações. Para dispositivos acoplados, é impossível mudar determinados parâmetros enquanto o dispositivo está ativado. Se você fizer isso, haverá erro.
No entanto, o que ainda deve funcionar é a adição ou remoção dos dispositivos filho de uma ligação ou ponte, ou a escolha de uma interface principal da ligação.
23.6.1.7 Extensões do wicked: configuração de endereço #
O wicked
foi desenvolvido para ser extensível com scripts shell. É possível definir as extensões no arquivo config.xml
.
Atualmente, há várias classes de extensões suportadas:
configuração de link: são scripts responsáveis por configurar a camada de link do dispositivo de acordo com a configuração fornecida pelo cliente e por desconfigurá-la novamente.
configuração de endereço: são scripts responsáveis por gerenciar a configuração de endereço de um dispositivo. Geralmente, a configuração de endereço e o DHCP são gerenciados pelo próprio
wicked
, mas podem ser implementados por meio de extensões.extensão de firewall: estes scripts podem aplicar regras de firewall.
Normalmente, as extensões possuem um comando de início e parada, um “arquivo pid” opcional e um conjunto de variáveis de ambiente que são passadas para o script.
Para ilustrar como isso deve funcionar, observe a extensão de firewall definida em etc/server.xml
:
<dbus-service interface="org.opensuse.Network.Firewall"> <action name="firewallUp" command="/etc/wicked/extensions/firewall up"/> <action name="firewallDown" command="/etc/wicked/extensions/firewall down"/> <!-- default environment for all calls to this extension script --> <putenv name="WICKED_OBJECT_PATH" value="$object-path"/> <putenv name="WICKED_INTERFACE_NAME" value="$property:name"/> <putenv name="WICKED_INTERFACE_INDEX" value="$property:index"/> </dbus-service>
A extensão está anexada à tag <dbus-service>
e define comandos a serem executados para as ações dessa interface. Além disso, a declaração pode definir e inicializar as variáveis de ambiente passadas para as ações.
23.6.1.8 Extensões do wicked: arquivos de configuração #
É possível estender a administração de arquivos de configuração também com scripts. Por exemplo, as atualizações DNS dos aluguéis são definitivamente administradas pelo script extensions/resolver
, com o comportamento configurado em server.xml
:
<system-updater name="resolver"> <action name="backup" command="/etc/wicked/extensions/resolver backup"/> <action name="restore" command="/etc/wicked/extensions/resolver restore"/> <action name="install" command="/etc/wicked/extensions/resolver install"/> <action name="remove" command="/etc/wicked/extensions/resolver remove"/> </system-updater>
Quando uma atualização é lançada no wickedd
, as rotinas do atualizador do sistema analisam o aluguel e chamam os comandos apropriados (backup
, install
etc.) no script do resolver. Isso, por sua vez, define as configurações de DNS usando /sbin/netconfig
ou manualmente gravando /run/netconfig/resolv.conf
como fallback.
23.6.2 Arquivos de configuração #
Esta seção fornece uma visão geral dos arquivos de configuração de rede e explica sua finalidade e formato usado.
23.6.2.1 /etc/wicked/common.xml
#
O arquivo /etc/wicked/common.xml
inclui definições comuns que devem ser usadas por todos os aplicativos. Ele é originado/incluído por outros arquivos de configuração nesse diretório. Você pode usar esse arquivo para habilitar a depuração em todos os componentes do wicked
, mas recomendamos usar o arquivo /etc/wicked/local.xml
para essa finalidade. Você poderá perder suas mudanças após a aplicação de atualizações de manutenção, pois o /etc/wicked/common.xml
talvez seja sobregravado. O arquivo /etc/wicked/common.xml
inclui o /etc/wicked/local.xml
na instalação padrão, portanto, você normalmente não precisa modificar o /etc/wicked/common.xml
.
Para desabilitar o nanny
definindo <use-nanny>
como false
, reinicie o wickedd.service
e execute o seguinte comando para aplicar todas as configurações e políticas:
>
sudo
wicked ifup all
Os programas wickedd
, wicked
ou nanny
tentarão ler o /etc/wicked/common.xml
se não existir um arquivo de configuração próprio.
23.6.2.2 /etc/wicked/server.xml
#
O arquivo /etc/wicked/server.xml
é lido pelo processo de servidor wickedd
na inicialização. O arquivo armazena as extensões no /etc/wicked/common.xml
. Além do mais, esse arquivo configura o processamento de um resolver e o recebimento de informações dos suplicantes addrconf
, por exemplo, DHCP.
É recomendável adicionar as mudanças necessárias para esse arquivo a um arquivo /etc/wicked/server-local.xml
separado, que é incluído por /etc/wicked/server.xml
. Usando um arquivo separado, você evita sobregravar as mudanças feitas durante as atualizações de manutenção.
23.6.2.3 /etc/wicked/client.xml
#
O /etc/wicked/client.xml
é usado pelo comando wicked
. O arquivo especifica o local de um script usado durante a descoberta de dispositivos gerenciados pelo ibft e define os locais das configurações de interface de rede.
É recomendável adicionar as mudanças necessárias para esse arquivo a um arquivo /etc/wicked/client-local.xml
separado, que é incluído por /etc/wicked/server.xml
. Usando um arquivo separado, você evita sobregravar as mudanças feitas durante as atualizações de manutenção.
23.6.2.4 /etc/wicked/nanny.xml
#
O /etc/wicked/nanny.xml
configura tipos de camadas de link. É recomendável adicionar a configuração específica a um arquivo separado: /etc/wicked/nanny-local.xml
para evitar perda das mudanças durante as atualizações de manutenção.
23.6.2.5 /etc/sysconfig/network/ifcfg-*
#
Estes arquivos contêm as configurações tradicionais das interfaces de rede.
wicked
e os arquivos ifcfg-*
O wicked
lerá esses arquivos se você especificar o prefixo compat:
. De acordo com a configuração padrão do SUSE Linux Enterprise Desktop no /etc/wicked/client.xml
, o wicked
tenta esses arquivos antes dos arquivos de configuração XML em /etc/wicked/ifconfig
.
O switch --ifconfig
é fornecido basicamente para fins de teste. Se especificado, as fontes de configuração padrão definidas em /etc/wicked/ifconfig
não serão aplicadas.
Os arquivos ifcfg-*
incluem informações como o modo de início e o endereço IP. Os parâmetros possíveis são descritos na página de manual de ifup
. Além disso, a maioria das variáveis dos arquivos dhcp
e wireless
poderá ser usada nos arquivos ifcfg-*
se uma configuração geral for usada para apenas uma interface. No entanto, a maioria das variáveis /etc/sysconfig/network/config
é global e não pode ser substituída nos arquivos ifcfg
. Por exemplo, as variáveis NETCONFIG_*
são globais.
Para configurar as interfaces do macvlan
e do macvtab
, consulte as páginas de manual ifcfg-macvlan
e ifcfg-macvtap
. Por exemplo, para a interface macvlan, insira ifcfg-macvlan0
com as seguintes configurações:
STARTMODE='auto' MACVLAN_DEVICE='eth0' #MACVLAN_MODE='vepa' #LLADDR=02:03:04:05:06:aa
Para o ifcfg.template
, consulte Seção 23.6.2.6, “/etc/sysconfig/network/config
, /etc/sysconfig/network/dhcp
e /etc/sysconfig/network/wireless
”.
23.6.2.6 /etc/sysconfig/network/config
, /etc/sysconfig/network/dhcp
e /etc/sysconfig/network/wireless
#
O arquivo config
contém configurações gerais para o comportamento de ifup
, ifdown
e ifstatus
. O dhcp
contém configurações para DHCP, e o wireless
para placas LAN wireless. Nos três arquivos de configuração, as variáveis estão em forma de comentário. Algumas variáveis de /etc/sysconfig/network/config
também podem ser usadas nos arquivos ifcfg-*
, em que recebem uma prioridade mais alta. O arquivo /etc/sysconfig/network/ifcfg.template
lista as variáveis que podem ser especificadas para cada interface. No entanto, a maioria das variáveis /etc/sysconfig/network/config
é global e não pode ser substituída nos arquivos ifcfg. Por exemplo, as variáveis NETWORKMANAGER
ou NETCONFIG_*
são globais.
No SUSE Linux Enterprise 11, o DHCPv6 costumava funcionar mesmo nas redes em que os RAs (Router Advertisements – Anúncios de Roteador) IPv6 não estavam configurados apropriadamente. A partir do SUSE Linux Enterprise 12, o DHCPv6 exige que pelo menos um dos roteadores na rede envie RAs indicando que a rede é gerenciada por DHCPv6.
Para as redes nas quais o roteador não pode ser configurado corretamente, a opção ifcfg
permite ao usuário anular esse comportamento especificando DHCLIENT6_MODE='managed'
no arquivo ifcfg
. É possível também ativar essa correção alternativa com um parâmetro de boot no sistema de instalação:
ifcfg=eth0=dhcp6,DHCLIENT6_MODE=managed
23.6.2.7 /etc/sysconfig/network/routes
e /etc/sysconfig/network/ifroute-*
#
O roteamento estático de pacotes TCP/IP é determinado pelos arquivos /etc/sysconfig/network/routes
e /etc/sysconfig/network/ifroute-*
. Todas as rotas estáticas exigidas pelas várias tarefas do sistema podem ser especificadas em /etc/sysconfig/network/routes
: rotas para um host, rotas para um host via gateway e rotas para uma rede. Para cada interface que necessite de um roteamento individual, defina um arquivo de configuração adicional: /etc/sysconfig/network/ifroute-*
. Substitua o curinga (*
) pelo nome da interface. As entradas nos arquivos de configuração de roteamento terão esta aparência:
# Destination Gateway Netmask Interface Options
O destino da rota está na primeira coluna. Essa coluna pode conter o endereço IP de uma rede ou host ou, no caso de servidores de nomes acessíveis, o nome completo da rede ou do host. A rede deve ser gravada em notação CIDR (endereço com o comprimento do prefixo de roteamento associado), como 10.10.0.0/16 para rotas IPv4 ou fc00::/7 para rotas IPv6. A palavra-chave default
indica que a rota é o gateway padrão na mesma família de endereços do gateway. Para dispositivos sem gateway, use destinos explícitos 0.0.0.0/0 ou ::/0.
A segunda coluna contém o gateway padrão ou um gateway por meio do qual um host ou uma rede podem ser acessados.
A terceira coluna foi descontinuada; ela antes incluía a máscara de rede IPv4 do destino. Para rotas IPv6, rota padrão ou ao usar o comprimento do prefixo (notação CIDR) na primeira coluna, digite um traço (-
) aqui.
A quarta coluna contém o nome da interface. Se você a deixar vazia usando um traço (-
), poderá provocar um comportamento não intencional em /etc/sysconfig/network/routes
. Para obter mais informações, consulte a página de manual de routes
.
Uma quinta coluna (opcional) pode ser usada para inserir opções especiais. Para obter detalhes, consulte a página de manual de routes
.
# --- IPv4 routes in CIDR prefix notation: # Destination [Gateway] - Interface 127.0.0.0/8 - - lo 204.127.235.0/24 - - eth0 default 204.127.235.41 - eth0 207.68.156.51/32 207.68.145.45 - eth1 192.168.0.0/16 207.68.156.51 - eth1 # --- IPv4 routes in deprecated netmask notation" # Destination [Dummy/Gateway] Netmask Interface # 127.0.0.0 0.0.0.0 255.255.255.0 lo 204.127.235.0 0.0.0.0 255.255.255.0 eth0 default 204.127.235.41 0.0.0.0 eth0 207.68.156.51 207.68.145.45 255.255.255.255 eth1 192.168.0.0 207.68.156.51 255.255.0.0 eth1 # --- IPv6 routes are always using CIDR notation: # Destination [Gateway] - Interface 2001:DB8:100::/64 - - eth0 2001:DB8:100::/32 fe80::216:3eff:fe6d:c042 - eth0
23.6.2.8 /var/run/netconfig/resolv.conf
#
O domínio ao qual o host pertence está especificado em /var/run/netconfig/resolv.conf
(palavra-chave search
). É possível especificar até seis domínios com um total de 256 caracteres com a opção search
. Durante a resolução de um nome incompleto, uma tentativa de gerar um nome será feita anexando as entradas de search
individuais. É possível especificar até três servidores de nomes com a opção nameserver
, cada um em sua própria linha. Os comentários são precedidos por cerquilha ou ponto e vígula (#
ou ;
). Como um exemplo, consulte o Exemplo 23.6, “/var/run/netconfig/resolv.conf
”.
Entretanto, o /etc/resolv.conf
não deve ser editado manualmente. Ele é gerado pelo script netconfig
e é um link simbólico para /run/netconfig/resolv.conf
. Para definir uma configuração DNS estática sem usar o YaST, edite as variáveis apropriadas manualmente no arquivo /etc/sysconfig/network/config
:
NETCONFIG_DNS_STATIC_SEARCHLIST
lista de nomes de domínios DNS usados para pesquisa de nomes de host
NETCONFIG_DNS_STATIC_SERVERS
lista de endereços IP de servidor de nomes usados para pesquisa de nomes de host
NETCONFIG_DNS_FORWARDER
o nome do encaminhador de DNS que precisa ser configurado, por exemplo
bind
ouresolver
NETCONFIG_DNS_RESOLVER_OPTIONS
opções arbitrárias que serão gravadas em
/var/run/netconfig/resolv.conf
, por exemplo:debug attempts:1 timeout:10
Para obter mais informações, consulte a página de manual de
resolv.conf
.NETCONFIG_DNS_RESOLVER_SORTLIST
lista com até 10 itens, por exemplo:
130.155.160.0/255.255.240.0 130.155.0.0
Para obter mais informações, consulte a página de manual de
resolv.conf
.
Para desabilitar a configuração do DNS usando o netconfig, defina NETCONFIG_DNS_POLICY=''
. Para obter mais informações sobre o netconfig
, consulte a página de manual do netconfig(8)
(man 8 netconfig
).
/var/run/netconfig/resolv.conf
## Our domain search example.com # # We use dns.example.com (192.168.1.116) as nameserver nameserver 192.168.1.116
23.6.2.9 /sbin/netconfig
#
O netconfig
é uma ferramenta modular destinada a gerenciar configurações de rede adicionais. Ele funde as configurações definidas estaticamente com as configurações fornecidas pelos mecanismos de configuração automática, como DHCP ou PPP, de acordo com uma política predefinida. As mudanças necessárias são aplicadas ao sistema chamando-se os módulos do netconfig responsáveis pela modificação de um arquivo de configuração e pela reinicialização de um serviço ou uma ação semelhante.
O netconfig
reconhece três ações principais. Os comandos netconfig modify
e netconfig remove
são usados por daemons, como DHCP ou PPP, para inserir ou remover configurações do netconfig. Apenas o comando netconfig update
está disponível para o usuário:
modify
O comando
netconfig modify
modifica as configurações dinâmicas específicas de interface e de serviço atuais, além de atualizar a configuração da rede. O netconfig lê as configurações da entrada padrão ou de um arquivo especificado pela opção--lease-file FILENAME
e as armazena internamente até a reinicialização do sistema (ou a próxima ação modify ou remove). As configurações que já existirem para a mesma combinação de interface e serviço serão sobregravadas. A interface é especificada pelo parâmetro-i INTERFACE_NAME
. O serviço é especificado pelo parâmetro-s SERVICE_NAME
.remove
O comando
netconfig remove
remove as configurações dinâmicas fornecidas por uma ação de edição para a combinação de interface e serviço especificada e atualiza a configuração da rede. A interface é especificada pelo parâmetro-i INTERFACE_NAME
. O serviço é especificado pelo parâmetro-s SERVICE_NAME
.update
O comando
netconfig update
atualiza a configuração da rede usando as configurações atuais. Isso é útil quando a política ou a configuração estática é mudada. Use o parâmetro-m MODULE_TYPE
para atualizar apenas um serviço especificado (dns
,nis
ountp
).
A política do netconfig e as configurações estáticas são definidas manualmente ou por meio do YaST no arquivo /etc/sysconfig/network/config
. As configurações dinâmicas fornecidas pelas ferramentas de configuração automática, como DHCP ou PPP, são entregues diretamente por essas ferramentas com as ações netconfig
modify
e netconfig remove
. Quando o NetworkManager está habilitado, o netconfig (no modo de política auto
) usa apenas as configurações do NetworkManager, ignorando as configurações de qualquer outra interface configurada pelo método tradicional ifup. Se o NetworkManager não fornecer nenhuma configuração, as configurações estáticas serão usadas como fallback. Não há suporte para a utilização mista do NetworkManager e do método wicked
.
Para obter mais informações sobre o netconfig
, consulte o man 8
netconfig
.
23.6.2.10 /etc/hosts
#
Neste arquivo, mostrado em Exemplo 23.7, “/etc/hosts
”, os endereços IP foram atribuídos a nomes de host. Se nenhum servidor de nomes for implementado, todos os hosts nos quais uma conexão IP for configurada precisarão ser listados aqui. Para cada host, digite uma linha no arquivo com o endereço IP, o nome completo do host e o nome de host. O endereço IP precisa estar no início da linha e as entradas separadas por espaços vazios e guias. Comentários são sempre precedidos pelo sinal #
.
/etc/hosts
#127.0.0.1 localhost 192.168.2.100 jupiter.example.com jupiter 192.168.2.101 venus.example.com venus
23.6.2.11 /etc/networks
#
Aqui, os nomes de rede são convertidos em endereços de rede. O formato é semelhante ao do arquivo hosts
, exceto que os nomes de rede precedem os endereços. Consulte o Exemplo 23.8, “/etc/networks
”.
/etc/networks
#loopback 127.0.0.0 localnet 192.168.0.0
23.6.2.12 /etc/host.conf
#
Resolução de nomes — a conversão de nomes de host e de rede através da biblioteca resolver é controlada por esse arquivo. Esse arquivo é usado somente para programas vinculados a libc4 ou libc5. Para programas glibc atuais, consulte as configurações em /etc/nsswitch.conf
. Cada parâmetro deve ser sempre digitado em uma linha separada. Os comentários são precedidos por um sinal #
. Tabela 23.2, “Parâmetros para /etc/host.conf” mostra os parâmetros disponíveis. Uma amostra do /etc/host.conf
é mostrada no Exemplo 23.9, “/etc/host.conf
”.
order hosts, bind |
Especifica em que ordem os serviços são acessados para a resolução de nomes. Os argumentos disponíveis são (separados por espaços vazios ou vírgulas): |
hosts: pesquisa o arquivo | |
bind: acessa um servidor de nomes | |
nis: usa o NIS | |
multi on/off |
Define se um host inserido em |
nospoof on spoofalert on/off |
Esses parâmetros influenciam o spoof do servidor de nomes, mas não exercem qualquer influência na configuração da rede. |
trim domainname |
O nome de domínio especificado será separado do nome de host após a resolução de nome de host (desde que o nome de host inclua o nome de domínio). Essa opção é útil apenas quando os nomes do domínio local estão no arquivo |
/etc/host.conf
## We have named running order hosts bind # Allow multiple address multi on
23.6.2.13 /etc/nsswitch.conf
#
O lançamento do GNU C Library 2.0 foi acompanhado pelo lançamento do NSS (Name Service Switch). Consulte a página de manual nsswitch.conf(5)
e o The GNU C Library Reference Manual (Manual de Referência da Biblioteca GNU C) para obter detalhes.
A ordem das consultas é definida no arquivo /etc/nsswitch.conf
. Uma amostra do nsswitch.conf
é mostrada no Exemplo 23.10, “/etc/nsswitch.conf
”. Comentários são precedidos pelos sinais #
. Nesse exemplo, a entrada no banco de dados hosts
significa que uma solicitação foi enviada para /etc/hosts
(files
) através do DNS.
/etc/nsswitch.conf
#passwd: compat group: compat hosts: files dns networks: files dns services: db files protocols: db files rpc: files ethers: files netmasks: files netgroup: files nis publickey: files bootparams: files automount: files nis aliases: files nis shadow: compat
Os “bancos de dados” disponíveis em NSS estão listados na Tabela 23.3, “Bancos de dados disponíveis por /etc/nsswitch.conf”. As opções de configuração para bancos de dados NSS estão listadas na Tabela 23.4, “Opções de configuração para “bancos de dados” NSS”.
|
Álias de correio implementados por |
|
Endereços de Ethernet. |
|
Lista de redes e suas máscaras de sub-rede. Apenas necessário quando se usa sub-redes. |
|
Grupos de usuários utilizados por |
|
Nomes de host e endereços IP usados por |
|
Listas de usuários e hosts válidos na rede para controlar permissões de acesso. Consulte a página de manual |
|
Nomes e endereços de rede usados por |
|
Chaves públicas e secretas de Secure_RPC usadas pelo NFS e NIS+. |
|
Senhas de usuários usadas por |
|
Protocolos de rede usados por |
|
Nomes e endereços de chamada de procedimento remoto (RPC, Remote Procedure Call) usados por |
|
Serviços de rede, usados por |
|
Senhas transitórias de usuários, usadas por |
|
arquivos de acesso direto, por exemplo, |
|
acesso através de um banco de dados |
|
NIS, consulte também o Chapter 3, Using NIS |
|
só pode ser usado como extensão de |
|
só pode ser usado como extensão de |
23.6.2.14 /etc/nscd.conf
#
Esse arquivo é usado para configurar o nscd (name service cache daemon). Consulte as páginas de manual nscd(8)
e nscd.conf(5)
. Por padrão, as entradas do sistema de passwd
, groups
e hosts
são armazenadas em cache pelo nscd. Isso é importante para o desempenho dos serviços de diretório, como NIS e LDAP; pois, do contrário, a conexão de rede precisará ser usada para todo acesso a nomes, grupos ou hosts.
Se o armazenamento em cache de passwd
estiver ativado, normalmente levará quinze segundos para que um usuário local recentemente adicionado seja reconhecido. Reduza este tempo de espera reiniciando o nscd com:
>
sudo
systemctl restart nscd
23.6.2.15 /etc/HOSTNAME
#
/etc/HOSTNAME
contém o FQHN (fully qualified host name – nome completo do host). O nome completo do host é o nome de host com o nome de domínio anexado. Este arquivo deve incluir apenas uma linha (na qual o nome de host é definido). Ele é lido durante a inicialização da máquina.
23.6.3 Testando a configuração #
Antes de gravar sua configuração nos arquivos de configuração, você pode testá-la. Para definir uma configuração de teste, use o comando ip
. Para testar a conexão, use o comando ping
.
O comando ip
muda a configuração de rede diretamente, sem gravá-la no arquivo de configuração. A menos que você insira a configuração nos arquivos de configuração corretos, a configuração de rede mudada será perdida na reinicialização.
ifconfig
e route
são obsoletos
As ferramentas ifconfig
e route
são obsoletas. Em vez disso, use ip
. O ifconfig
, por exemplo, limita os nomes de interface a 9 caracteres.
23.6.3.1 Configurando uma interface de rede com ip
#
ip
é uma ferramenta para mostrar e configurar dispositivos de rede, roteamentos, roteamento de políticas e túneis.
ip
é uma ferramenta muito complexa. Sua sintaxe comum é ip
OPTIONS
OBJECT
COMMAND
. Você pode trabalhar com os seguintes objetos:
- link
Este objeto representa um dispositivo de rede.
- address
Este objeto representa o endereço IP do dispositivo.
- neighbor
Este objeto representa uma entrada de cache ARP ou NDISC.
- route
Este objeto representa a entrada da tabela de roteamento.
- rule
Este objeto representa uma regra no banco de dados de políticas de roteamento.
- maddress
Este objeto representa um endereço multicast.
- mroute
Este objeto representa uma entrada de cache de roteamento multicast.
- tunnel
Este objeto representa um túnel sobre IP.
Se nenhum comando for fornecido, será usado o comando padrão (normalmente list
).
Mude o estado de um dispositivo com o comando:
>
sudo
ip link set DEV_NAME
Por exemplo, para desativar o dispositivo , digite eth0
>
sudo
ip link set eth0 down
Para ativá-lo novamente, use
>
sudo
ip link set eth0 up
Se você desativar um dispositivo com
>
sudo
ip link set DEV_NAME down
a interface de rede será desabilitada no nível do software.
Para simular a perda do link como se o cabo Ethernet estivesse desconectado ou o switch conectado estivesse desligado, execute
>
sudo
ip link set DEV_NAME carrier off
Por exemplo, ip link set
DEV_NAME down
ignora todas as rotas que usam DEV_NAME, mas ip link set DEV carrier
off
não. Saiba que carrier off
requer suporte do driver do dispositivo de rede.
Para reconectar o dispositivo à rede física, execute
>
sudo
ip link set DEV_NAME carrier on
Após ativar um dispositivo, você poderá configurá-lo. Para definir o endereço IP, use
>
sudo
ip addr add IP_ADDRESS + dev DEV_NAME
Por exemplo, para definir o endereço da interface eth0 como 192.168.12.154/30 com o broadcast padrão (opção brd
), digite
>
sudo
ip addr add 192.168.12.154/30 brd + dev eth0
Para ter uma conexão ativa, você também precisa configurar o gateway padrão. Para definir um gateway para seu sistema, digite
>
sudo
ip route add default via gateway_ip_address
Para exibir todos os dispositivos, use
>
sudo
ip link ls
Para exibir apenas as interfaces em execução, use
>
sudo
ip link ls up
Para imprimir as estatísticas de interface de um dispositivo, digite
>
sudo
ip -s link ls DEV_NAME
Para ver mais informações úteis, especificamente sobre dispositivos de rede virtuais, digite
>
sudo
ip -d link ls DEV_NAME
Além disso, para ver os endereços de camada de rede (IPv4, IPv6) dos dispositivos, digite
>
sudo
ip addr
Na saída, você pode encontrar informações sobre os endereços MAC dos dispositivos. Para mostrar todas as rotas, use
>
sudo
ip route show
Para obter mais informações sobre como usar o ip
, digite ip
help
ou consulte a página de manual man 8 ip
. A opção help
também está disponível para todos os subcomandos ip
, como:
>
sudo
ip addr help
Encontre o manual do ip
em /usr/share/doc/packages/iproute2/ip-cref.pdf
.
23.6.3.2 Testando uma conexão com o comando ping #
O comando ping
é a ferramenta padrão para testar o funcionamento de uma conexão TCP/IP. Ele usa o protocolo ICMP para enviar um pequeno pacote de dados, o datagrama ECHO_REQUEST, para o host de destino, solicitando uma resposta imediata. Se isso funcionar, o ping
exibirá uma mensagem nesse sentido. Isso indica que o link da rede está funcionando.
O ping
vai além de simplesmente testar a função da conexão entre dois computadores; ele também fornece algumas informações básicas sobre a qualidade da conexão. No Exemplo 23.11, “Saída do comando ping”, você pode ver um exemplo da saída do ping
. A penúltima linha contém informações sobre o número de pacotes transmitidos e de pacotes perdidos e o tempo total de execução do ping
.
Como destino, é possível usar um nome de host ou endereço IP, por exemplo, ping
example.com
ou ping
192.168.3.100
. O programa enviará pacotes até que você pressione Ctrl–C.
Se você precisa apenas verificar a funcionalidade da conexão, pode limitar o número dos pacotes com a opção -c
. Por exemplo, para limitar o ping a três pacotes, digite ping
-c 3 example.com
.
ping -c 3 example.com PING example.com (192.168.3.100) 56(84) bytes of data. 64 bytes from example.com (192.168.3.100): icmp_seq=1 ttl=49 time=188 ms 64 bytes from example.com (192.168.3.100): icmp_seq=2 ttl=49 time=184 ms 64 bytes from example.com (192.168.3.100): icmp_seq=3 ttl=49 time=183 ms --- example.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2007ms rtt min/avg/max/mdev = 183.417/185.447/188.259/2.052 ms
O intervalo padrão entre dois pacotes é um segundo. Para mudar o intervalo, o ping fornece a opção -i
. Por exemplo, para aumentar o intervalo do ping para dez segundos, digite ping
-i 10 example.com
.
Em um sistema com vários dispositivos de rede, às vezes é útil enviar o ping através de um endereço de interface específico. Para isso, use a opção -I
com o nome do dispositivo selecionado, por exemplo, ping
-I wlan1
example.com
.
Para obter mais opções e informações sobre como usar o ping, digite ping
-h
ou consulte a página de manual ping (8)
.
Para endereços IPv6, use o comando ping6
. Observe que, para executar ping em endereços locais de link, deve-se especificar a interface com -I
. O comando a seguir funcionará se o endereço for acessível via eth1
:
ping6 -I eth1 fe80::117:21ff:feda:a425
23.6.4 Arquivos unit e scripts de inicialização #
Além dos arquivos de configuração descritos anteriormente, há os arquivos unit do systemd e vários scripts que carregam os serviços de rede durante a inicialização da máquina. Eles são iniciados quando o sistema é alternado para o destino multi-user.target
. Alguns desses arquivos unit e scripts estão descritos em Alguns arquivos unit e scripts de inicialização para programas de rede. Para obter mais informações sobre o systemd
, consulte o Capítulo 19, Daemon systemd
, e para obter mais informações sobre os destinos do systemd
, consulte a página de manual de systemd.special
(man
systemd.special
).
network.target
network.target
é o destino do systemd para projeto de rede, mas seu significado depende das configurações fornecidas pelo administrador do sistema.Para obter mais informações, consulte https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/.
multi-user.target
multi-user.target
é o destino do systemd para um sistema multiusuário com todos os serviços de rede necessários.rpcbind
Inicia o utilitário rpcbind, que converte os números de programa RPC em endereços universais. Necessário para os serviços RPC, como um servidor NFS.
ypserv
Inicia o servidor NIS.
ypbind
Inicia o cliente NIS.
/etc/init.d/nfsserver
Inicia o servidor NFS.
/etc/init.d/postfix
Controla o processo de postfix.
23.7 Configurando dispositivos de ligação #
Em alguns sistemas, existe a necessidade de implementar conexões de rede compatíveis com outros requisitos além dos padrões de disponibilidade ou segurança de dados de um dispositivo Ethernet comum. Nesses casos, vários dispositivos Ethernet podem ser agregados a um único dispositivo de ligação.
A configuração do dispositivo de ligação é feita através das opções dos módulos de ligação. O comportamento é afetado principalmente pelo modo do dispositivo de ligação. Por padrão, o modo é active-backup
, o que significa que uma porta de ligação diferente se tornará ativa se houver falha na porta ativa. Os seguintes modos de ligação estão disponíveis:
- (balance-rr)
Os pacotes são transmitidos em round-robin da primeira para a última interface disponível. Fornece tolerância a falhas e equilíbrio de carga.
- (active-backup)
Apenas uma interface de rede está ativa. Se ela falhar, uma interface diferente se tornará ativa. Essa é a configuração padrão para o SUSE Linux Enterprise Desktop. Fornece tolerância a falhas.
- (balance-xor)
O tráfego é dividido entre todas as interfaces disponíveis com base no número de dispositivos incluídos na ligação. Esse procedimento requer suporte do switch. Fornece tolerância a falhas e equilíbrio de carga.
- (broadcast)
Todo o tráfego é transmitido em todas as interfaces. Requer suporte do switch. Fornece tolerância a falhas.
- (802.3ad)
Agrega as interfaces em grupos que compartilham as mesmas configurações de velocidade e duplex. Requer suporte a
ethtool
nos drivers de interface e um switch com suporte e configuração para Agregação de link dinâmico IEEE 802.3ad. Fornece tolerância a falhas e equilíbrio de carga.- (balance-tlb)
Equilíbrio de carga de transmissão adaptativa. Requer suporte a
ethtool
nos drivers de interface, mas não suporte a switch. Fornece tolerância a falhas e equilíbrio de carga.- (balance-alb)
Equilíbrio de carga adaptativo. Requer suporte a
ethtool
nos drivers de interface, mas não suporte a switch. Fornece tolerância a falhas e equilíbrio de carga.
Para obter uma descrição mais detalhada dos modos, consulte https://www.kernel.org/doc/Documentation/networking/bonding.txt.
O uso de dispositivos de ligação só é interessante para máquinas que tenham várias placas de rede reais disponíveis. Na maioria das configurações, isso significa que você deve usar a configuração de ligação apenas no Dom0. Somente se você tiver várias placas de rede atribuídas a um sistema Convidado VM é que também poderá ser útil configurar a ligação em um Convidado VM.
Há um conflito com a configuração de ligação tlb/alb e o firmware do Power. Em resumo, o driver de ligação no modo tlb/alb envia pacotes de Loopback Ethernet com os dois endereços MAC de origem e destino listados como o endereço MAC Ethernet Virtual. Esses pacotes não são suportados pelo firmware do Power. Portanto, os modos de ligação 5 e 6 não são suportados pelo ibmveth.
Para configurar um dispositivo de ligação, siga este procedimento:
Execute
› › .Use
e mude o para . Continue com .Escolha como vai atribuir o endereço IP ao dispositivo de ligação. Há três métodos à sua disposição:
Nenhum Endereço IP
Endereço Dinâmico (com DHCP ou Zeroconf)
Endereço IP atribuído estaticamente
Use o método mais apropriado ao seu ambiente.
Na guia
, selecione os dispositivos Ethernet que devem ser incluídos na ligação ativando as caixas de seleção relacionadas.Edite as
e escolha um modo de ligação.Verifique se o parâmetro
miimon=100
foi adicionado às . Sem esse parâmetro, a integridade dos dados não é verificada regularmente.Clique em
e saia do YaST clicando em para criar o dispositivo.
23.7.1 Hotplug de portas de ligação #
Em ambientes de rede específicos (como os de Alta Disponibilidade), há casos em que você precisa substituir uma interface de porta de ligação por outra. O motivo pode ser uma falha constante no dispositivo de rede. A solução é configurar o hotplug das portas de ligação.
A ligação é configurada como de costume (de acordo com man 5
ifcfg-bonding
), por exemplo:
ifcfg-bond0 STARTMODE='auto' # or 'onboot' BOOTPROTO='static' IPADDR='192.168.0.1/24' BONDING_MASTER='yes' BONDING_SLAVE_0='eth0' BONDING_SLAVE_1='eth1' BONDING_MODULE_OPTS='mode=active-backup miimon=100'
As portas de ligação são especificadas com STARTMODE=hotplug
e BOOTPROTO=none
:
ifcfg-eth0 STARTMODE='hotplug' BOOTPROTO='none' ifcfg-eth1 STARTMODE='hotplug' BOOTPROTO='none'
BOOTPROTO=none
usa as opções de ethtool
(quando fornecidas), mas não define o link ativo no ifup
eth0
. O motivo é que a interface da porta de ligação é controlada pelo dispositivo de ligação.
STARTMODE=hotplug
faz com que a interface da porta de ligação se una à ligação automaticamente quando ela estiver disponível.
As regras do udev
em /etc/udev/rules.d/70-persistent-net.rules
precisam ser modificadas para corresponder ao dispositivo por ID de barramento (palavra-chave KERNELS
do udev igual a "SysFS BusID" conforme visível em hwinfo
--netcard
), em vez do endereço MAC. Isso permite a substituição de hardware com defeito (uma placa de rede no mesmo slot, mas com MAC diferente) e evita confusão quando a ligação muda o endereço MAC de todas as suas portas de ligação.
Por exemplo:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="0000:00:19.0", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
No momento da inicialização, o network.service
do systemd não espera o hotplug das portas de ligação, mas sim a ligação ficar pronta, o que requer no mínimo uma porta de ligação disponível. Quando uma das interfaces de porta de ligação é removida (desvinculação do driver NIC, rmmod
do driver NIC ou remoção verdadeira do hotplug do PCI) do sistema, o kernel a remove automaticamente da ligação. Quando uma nova placa é adicionada ao sistema (substituição do hardware no slot), o udev
a renomeia usando a regra de nome persistente baseada em barramento para o nome da porta de ligação e chama o ifup
para ela. A chamada do ifup
une-a automaticamente à ligação.
23.8 Configurando dispositivos de equipe para agrupamento de rede #
“Agregação de link” é o termo geral que descreve a combinação (ou agregação) de uma conexão de rede para fornecer uma camada lógica. Às vezes, você encontra os termos “agrupamento de canais”, “vínculo Ethernet”, “truncamento de porta” etc. que são sinônimos e se referem ao mesmo conceito.
Esse conceito é bastante conhecido como “ligação” e foi originalmente integrado ao kernel do Linux (consulte a Seção 23.7, “Configurando dispositivos de ligação” para ver a implementação original). O termo Agrupamento de Rede é usado para fazer referência à nova implementação desse conceito.
A principal diferença entre a ligação e o Agrupamento de Rede é que o agrupamento dispõe de um conjunto de pequenos módulos do kernel responsáveis pelo fornecimento de uma interface para instâncias do teamd. Todo o restante é executado no espaço do usuário. Isso é diferente da implementação de ligação original que inclui todas as suas funcionalidades exclusivamente no kernel. Para ver uma comparação, consulte a Tabela 23.5, “Comparação de recursos entre vínculo e equipe”.
Recurso | Vínculo | Equipe |
---|---|---|
broadcast, política TX round-robin | sim | sim |
política TX ativa-backup | sim | sim |
Suporte a LACP (802.3ad) | sim | sim |
política TX baseada em hash | sim | sim |
usuário pode definir função de hash | não | sim |
Suporte a balanceamento de carga TX (TLB) | sim | sim |
Suporte a balanceamento de carga TX para LACP | não | sim |
Monitoramento de link Ethtool | sim | sim |
Monitoramento de link ARP | sim | sim |
Monitoramento de link NS/NA (IPV6) | não | sim |
Bloqueio de RCU em caminhos TX/RX | não | sim |
porta prio e adesão | não | sim |
configuração de monitoramento de link separado por porta | não | sim |
configuração de monitoramento de links múltiplos | limitado | sim |
Suporte a VLAN | sim | sim |
empilhamento de vários dispositivos | sim | sim |
Fonte: https://libteam.org/files/teamdev.pp.pdf |
Ambas as implementações, ligação e Agrupamento de Rede, podem ser usadas em paralelo. O Agrupamento de Rede é uma alternativa à implementação de ligação existente. Ele não a substitui.
É possível usar o Agrupamento de Rede em diversos casos de uso. Os dois casos de uso mais importantes são explicados mais adiante e envolvem:
Equilíbrio de carga entre dispositivos de rede diferentes.
Failover de um dispositivo de rede para outro em caso de falha em um dos dispositivos.
No momento, não há nenhum módulo do YaST que suporte a criação de dispositivo do agrupamento. Você precisa configurar o Agrupamento de Rede manualmente. O procedimento geral é mostrado a seguir e pode ser aplicado a todas as suas configurações de Agrupamento de Rede:
Instale o pacote libteam-tools:
>
sudo
zypper in libteam-tools
Crie um arquivo de configuração em
/etc/sysconfig/network/
. Normalmente, esse arquivo éifcfg-team0
. Se você precisar de mais de um dispositivo de Agrupamento de Rede, numere-os em ordem crescente.Esse arquivo de configuração contém diversas variáveis que são explicadas nas páginas de manual (consulte
man ifcfg
eman ifcfg-team
). Há um exemplo de configuração em seu sistema no arquivo/etc/sysconfig/network/ifcfg.template
.Remova os arquivos de configuração das interfaces que serão usadas para o dispositivo de agrupamento (geralmente,
ifcfg-eth0
eifcfg-eth1
).É recomendável fazer um backup e remover os dois arquivos. O Wicked recriará os arquivos de configuração com os parâmetros necessários para o agrupamento.
Opcionalmente, verifique se tudo está incluído no arquivo de configuração do Wicked:
>
sudo
wicked show-config
Inicie o dispositivo de Agrupamento de Rede
team0
:>
sudo
wicked ifup team0
Se você precisar de informações adicionais sobre depuração, use a opção
--debug all
após o subcomandoall
.Verifique o status do dispositivo de Agrupamento de Rede. Para fazer isso, execute os seguintes comandos:
Obtenha o estado da instância do teamd do Wicked:
>
sudo
wicked ifstatus --verbose team0
Obtenha o estado de toda a instância:
>
sudo
teamdctl team0 state
Obtenha o estado do systemd da instância do teamd:
>
sudo
systemctl status teamd@team0
Cada um deles mostra uma tela um pouco diferente, dependendo das suas necessidades.
Se você precisar mudar algo no arquivo
ifcfg-team0
posteriormente, recarregue sua configuração com:>
sudo
wicked ifreload team0
Não use systemctl
para iniciar ou parar o dispositivo de agrupamento! Em vez disso, use o comando wicked
conforme mostrado acima.
Para remover completamente o dispositivo de equipe, siga este procedimento:
Pare o dispositivo de Agrupamento de Rede
team0
:>
sudo
wicked ifdown team0
Renomeie o arquivo
/etc/sysconfig/network/ifcfg-team0
para/etc/sysconfig/network/.ifcfg-team0
. Insira um ponto na frente do nome do arquivo para torná-lo “invisível” ao wicked. Se você realmente não precisa mais da configuração, também pode remover o arquivo.Recarregue a configuração:
>
sudo
wicked ifreload all
23.8.1 Caso de uso: equilíbrio de carga com agrupamento de rede #
O equilíbrio de carga é usado para melhorar a largura de banda. Use o seguinte arquivo de configuração para criar um dispositivo de Agrupamento de Rede com recursos de equilíbrio de carga. Prossiga com Procedimento 23.1, “Procedimento geral” para configurar o dispositivo. Verifique a saída com teamdctl
.
STARTMODE=auto 1 BOOTPROTO=static 2 IPADDRESS="192.168.1.1/24" 2 IPADDR6="fd00:deca:fbad:50::1/64" 2 TEAM_RUNNER="loadbalance" 3 TEAM_LB_TX_HASH="ipv4,ipv6,eth,vlan" TEAM_LB_TX_BALANCER_NAME="basic" TEAM_LB_TX_BALANCER_INTERVAL="100" TEAM_PORT_DEVICE_0="eth0" 4 TEAM_PORT_DEVICE_1="eth1" 4 TEAM_LW_NAME="ethtool" 5 TEAM_LW_ETHTOOL_DELAY_UP="10" 6 TEAM_LW_ETHTOOL_DELAY_DOWN="10" 6
Controla a inicialização do dispositivo de agrupamento. O valor de
Caso você mesmo tenha necessidade de controlar o dispositivo (e impedir que ele seja iniciado automaticamente), defina | |
Define um endereço IP estático (neste caso,
Se o dispositivo de Agrupamento de Rede tiver que usar um endereço IP dinâmico, defina | |
Define | |
Especifica um ou mais dispositivos que devem ser agregados para criar o dispositivo de Agrupamento de Rede. | |
Define um monitor de link para monitorar o estado dos dispositivos subordinados. O valor padrão
Se você precisar de mais confiança na conexão, use a opção | |
Define o atraso em milissegundos entre o link ficar ativo (ou inativo) e o executor ser notificado. |
23.8.2 Caso de uso: failover com agrupamento de rede #
O failover é usado para garantir alta disponibilidade de um dispositivo de Agrupamento de Rede crítico envolvendo um dispositivo de rede de backup paralelo. O dispositivo de rede de backup é executado o tempo todo e entra em ação em caso de falha no dispositivo principal.
Use o seguinte arquivo de configuração para criar um dispositivo de Agrupamento de Rede com recursos de failover. Prossiga com Procedimento 23.1, “Procedimento geral” para configurar o dispositivo. Verifique a saída com teamdctl
.
STARTMODE=auto 1 BOOTPROTO=static 2 IPADDR="192.168.1.2/24" 2 IPADDR6="fd00:deca:fbad:50::2/64" 2 TEAM_RUNNER=activebackup 3 TEAM_PORT_DEVICE_0="eth0" 4 TEAM_PORT_DEVICE_1="eth1" 4 TEAM_LW_NAME=ethtool 5 TEAM_LW_ETHTOOL_DELAY_UP="10" 6 TEAM_LW_ETHTOOL_DELAY_DOWN="10" 6
Controla a inicialização do dispositivo de agrupamento. O valor de
Caso você mesmo tenha necessidade de controlar o dispositivo (e impedir que ele seja iniciado automaticamente), defina | |
Define um endereço IP estático (neste caso,
Se o dispositivo de Agrupamento de Rede tiver que usar um endereço IP dinâmico, defina | |
Define | |
Especifica um ou mais dispositivos que devem ser agregados para criar o dispositivo de Agrupamento de Rede. | |
Define um monitor de link para monitorar o estado dos dispositivos subordinados. O valor padrão
Se você precisar de mais confiança na conexão, use a opção | |
Define o atraso em milissegundos entre o link ficar ativo (ou inativo) e o executor ser notificado. |
23.8.3 Caso de uso: VLAN em dispositivo de agrupamento #
VLAN é a abreviação de Virtual Local Area Network (Rede Local Virtual). Ela permite a execução de várias Ethernets lógicas (virtuais) em uma única Ethernet física. Ela divide logicamente a rede em diferentes domínios de broadcast para que os pacotes sejam trocados apenas entre portas que são designadas para a mesma VLAN.
O seguinte caso de uso cria duas VLANs estáticas na parte superior de um dispositivo de equipe:
vlan0
, vinculada ao endereço IP192.168.10.1
vlan1
, vinculada ao endereço IP192.168.20.1
Proceda da seguinte maneira:
Habilite as tags VLAN no switch. Para usar o equilíbrio de carga em seu dispositivo de equipe, o switch precisa ser compatível com LACP (Link Aggregation Control Protocol – Protocolo de Controle de Agregação de Links) (802.3 ad). Consulte os detalhes no manual do seu hardware.
Decida se você deseja usar equilíbrio de carga ou failover em seu dispositivo de equipe. Configure o dispositivo de equipe conforme descrito na Seção 23.8.1, “Caso de uso: equilíbrio de carga com agrupamento de rede” ou na Seção 23.8.2, “Caso de uso: failover com agrupamento de rede”.
Em
/etc/sysconfig/network
, crie um arquivoifcfg-vlan0
com o seguinte conteúdo:STARTMODE="auto" BOOTPROTO="static" 1 IPADDR='192.168.10.1/24' 2 ETHERDEVICE="team0" 3 VLAN_ID="0" 4 VLAN='yes'
Define um endereço IP fixo, especificado em
IPADDR
.Define o endereço IP, aqui com sua máscara de rede.
Contém a interface real para usar para a interface VLAN, aqui nosso dispositivo de equipe (
team0
).Especifica um ID exclusivo para a VLAN. De preferência, o nome do arquivo e o
VLAN_ID
correspondem ao nomeifcfg-vlanVLAN_ID
. No nosso caso,VLAN_ID
é0
, que leva ao nome de arquivoifcfg-vlan0
.Copie o arquivo
/etc/sysconfig/network/ifcfg-vlan0
para/etc/sysconfig/network/ifcfg-vlan1
e mude os seguintes valores:IPADDR
de192.168.10.1/24
para192.168.20.1/24
.VLAN_ID
de0
para1
.
Inicie as duas VLANs:
#
wicked
ifup vlan0 vlan1Verifique a saída de
ifconfig
:#
ifconfig
-a [...] vlan0 Link encap:Ethernet HWaddr 08:00:27:DC:43:98 inet addr:192.168.10.1 Bcast:192.168.10.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fedc:4398/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:816 (816.0 b) vlan1 Link encap:Ethernet HWaddr 08:00:27:DC:43:98 inet addr:192.168.20.1 Bcast:192.168.20.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fedc:4398/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:816 (816.0 b)