systemdjournalctl: consultar o diário do systemdudevO 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 fornecidos com a finalidade de 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 vários 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 http://www.ietf.org/rfc.html.
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.
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.
Internet Control Message Protocol: essencialmente, não se trata de um protocolo para o usuário final, mas 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.
Internet Group Management Protocol: esse protocolo controla o comportamento da máquina na implementação de multicast IP.
Conforme mostrado na Figura 20.1, “Modelo de camadas simplificado 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 muito próxima do 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, na maioria das vezes, 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 bem 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 cerca de 1.500 bytes. O tamanho do 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 20.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 pela rede, os dados passam por cada camada, todas implementadas no Kernel do Linux, exceto a camada física. Cada camada é responsável pela preparação dos dados, para que eles possam passar 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 é responsável por disponibilizar os dados para uso pelos aplicativos de 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 rede FDDI de 100 Mbits/s ou por linha de modem de 56 Kbits/s. Da mesma forma, é irrelevante para a linha de dados os tipos de dados transmitidos, contanto que os pacotes estejam no formato correto.
Esta seção limita-se à abordagem de redes IPv4. Para obter informações sobre o protocolo IPv6, sucessor do IPv4, consulte a Seção 20.2, “IPv6 — A Internet da próxima geração”.
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 20.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.
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 20.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 20.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
Para dar 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.
Essa é a máscara de rede E qualquer endereço na rede, conforme mostrado no Exemplo 20.2, “Vinculando endereços IP à máscara de rede” em Resultado. Esse endereço não pode ser designado a nenhum host.
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.
O endereço 127.0.0.1 é designado ao “dispositivo loopback” em cada host. Pode-se configurar uma conexão para a sua própria máquina com este endereço e com todos os endereços da rede de loopback completa 127.0.0.0/8, conforme definidos com o 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 20.1, “Domínios de endereços IP privados”.
|
Rede/máscara de rede |
Domínio |
|---|---|
|
|
|
|
|
|
|
|
|
Devido ao surgimento da WWW (World Wide Web), a Internet teve um crescimento acelerado 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 (http://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, muitos 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. O problema deles está em suas configurações, trabalhosas para configurar e difíceis de manter. Para configurar um host em uma rede IPv4, é preciso que haja vários itens de endereços, 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.
A melhoria mais importante e visível oferecida pelo novo protocolo é 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 20.2.2, “Estrutura e tipos de endereços”.
A seguir, há uma lista de algumas outras vantagens do novo protocolo:
O IPv6 torna apto o “plug and play” da rede, o que significa que um sistema recentemente 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 e a página de manual de radvd.conf(5), e o RFC 3315.
O IPv6 torna possível a atribuição de vários endereços a uma interface de rede ao mesmo tempo. Isso permite que os usuários acessem várias redes com facilidade, algo comparável aos serviços de roaming internacional oferecidos por operadoras de telefonia celular: quando você leva seu telefone celular para o exterior, ele se registra automaticamente em um serviço estrangeiro logo que entra na área correspondente, de modo que você possa ser contatado pelo mesmo número em qualquer lugar e ligar para alguém como se estivesse em sua área de origem.
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.
De forma realista, seria impossível mudar toda a Internet de IPv4 para IPv6 de uma só vez. Portanto, é essencial que ambos os protocolos sejam capazes de coexistir na Internet, mas também em um sistema. Isso é garantido por endereços compatíveis (endereços IPv4 podem facilmente ser convertidos em endereços IPv6) e através do uso de vários túneis. Consulte a Seção 20.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 possuem duas pilhas de rede completamente separadas, de tal forma que não há interferência entre as duas versões de protocolos.
Com o IPv4, alguns serviços, como SMB, precisam transmitir seus pacotes para todos os host na rede local. O IPv6 oferece uma abordagem mais detalhada, permitindo que os servidores enviem hosts através de multicast — determinando um número de hosts como partes de um grupo (o que é diferente de direcionar todos os hosts através de broadcast ou cada host individualmente através de unicast). Os hosts enviados como grupos talvez dependam do aplicativo concreto. É possível enviar todos os servidores de nomes para alguns grupos predefinidos (o grupo multicast de servidores de nomes), por exemplo ou todos os roteadores (o grupo multicast de todos os roteadores).
Conforme mencionado, o protocolo IP atual está em desvantagem em relação a dois aspectos importantes: os endereços IP estão cada vez mais escassos, e a configuração de rede com manutenção de tabelas de rotina vem se tornando cada vez mais uma tarefa complexa e onerosa. O IPv6 soluciona o primeiro problema expandindo o espaço dos endereços para 128 bits. O segundo problema é contornado com a introdução de uma estrutura hierárquica de endereços, combinada com técnicas sofisticadas para alocar endereços de rede, assim como multihoming (a capacidade de designar vários endereços a um dispositivo, permitindo acesso a diversas redes).
Ao utilizar o IPv6, é útil saber que há três tipos diferentes de endereços:
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.
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.
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 ou então 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 20.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 20.4, “Endereço IPv6 especificando 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 são mostrados na Vários 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 ou 3 como o primeiro dígito
Endereç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) e 2002::/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.
fe80::/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:
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.
A segunda parte contém informações de roteamento sobre a sub-rede à qual o pacote deve ser entregue.
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 é bastante 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 no MAC e os 24 bits restantes contendo informações especiais sobre o tipo de token. Isso também permite atribuir um token EUI-64 a interfaces que não tenham MAC, como aquelas baseadas em 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, quando o endereço ainda não pode ser determinado por outros meios.
::1 (loopback) O endereço do dispositivo loopback.
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 20.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.
Esse tipo de endereço especifica um endereço IPv4 puro em uma notação IPv6.
Há dois tipos de endereços para uso 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 bytes. Endereços desse tipo são usados durante a configuração automática para se comunicarem com outros hosts pertencentes à mesma sub-rede.
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 completamente novo, introduzido com o IPv6, cada interface de rede normalmente obtém vários endereços IP, com a vantagem de que várias redes podem ser acessadas através da mesma interface. Uma dessas redes pode ser totalmente configurada automaticamente usando o MAC e um prefixo conhecido, resultando na possibilidade de todos os hosts na rede local serem encontrados assim que o IPv6 for 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 totalmente 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. Por outro lado, esses pacotes destinados ao endereço care-of são diretamente transferidos para o host móvel sem qualquer desvio especial.
A migração de todos os hosts conectados à Internet do IPv4 para o IPv6 é um processo gradual. Os dois protocolos coexistirão durante algum 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 do IPv6 deve se comunicar com um host IPv4 e como 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 20.2.2, “Estrutura e tipos de endereços”).
Os hosts IPv6 que estiverem mais ou menos 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 precisam incluir o endereço de destino do IPv6 (ou o prefixo correspondente), assim como o endereço IPv4 do host remoto no destino final 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:
Os pacotes IPv6 são automaticamente encapsulados como pacotes IPv4 e enviados por uma rede IPv4 com capacidade multicast. O IPv6 é induzido a considerar a rede inteira (Internet) como uma gigantesca rede local. Com isso, é possível determinar automaticamente o destino final do túnel IPv4. Entretanto, esse método não faz um dimensionamento muito bom e também é dificultado pelo fato de o multicast IP não ser 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.
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, alguns problemas foram relatados no que tange à comunicação entre esses hosts IPv6 isolados e a Internet. O método está descrito no RFC 3056.
Esse método se baseia em servidores especiais que fornecem túneis dedicados para hosts IPv6. É descrito no RFC 3053.
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 do YaST. Na guia , marque ou desmarque a opção conforme for necessário. Para habilitá-lo temporariamente até a próxima reinicialização, digite modprobe como -i ipv6root. É 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 zebra/quagga 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).
A visão geral acima não abrange totalmente o tópico do IPv6. Para obter informações mais detalhadas sobre o novo protocolo, consulte os livros e a documentação online a seguir:
O ponto de partida para tudo relativo ao IPv6.
Todas as informações necessárias para iniciar sua própria rede IPv6.
A lista de produtos habilitados para IPv6.
Aqui, encontre o Linux IPv6-HOWTO e muitos links relacionados ao tópico.
Informações fundamentais do RFC sobre o IPv6.
Um livro que descreve todos os aspectos importantes do tópico é o IPv6 Essentials de Silvia Hagen (ISBN 0-596-00125-8).
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.exemplo.com, escrito no formato nome_de_host.domínio. Um nome completo, denominado FQDN (Fully Qualified Domain Name – Nome de Domínio Completo e Qualificado), consiste em um nome de host e um nome de domínio (exemplo.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).
No início 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 possui os dados pertencentes a todos os hosts na Internet já disponíveis, 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 http://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. É fácil especificar esse servidor de nomes com a ajuda do YaST. Se você tiver uma conexão de discagem por modem, talvez não precise nem mesmo configurar um servidor de nomes manualmente. O protocolo de discagem fornece o endereço do servidor de nomes enquanto a conexão é efetuada.
O protocolo whois está intimamente relacionado ao DNS. Com esse programa, é possível descobrir rapidamente o responsável por qualquer domínio especificado.
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 host.conf.
Se desejar 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.
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 20.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.
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 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 a Seção 20.4.1.1, “Configurando opções globais de rede”.
A guia 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. Se você quiser configurar manualmente uma placa que não foi detectada automaticamente, consulte a Seção 20.4.1.3, “Configurando uma placa de rede não detectada”. Se você quiser mudar a configuração de uma placa que já está configurada, consulte a Seção 20.4.1.2, “Mudando a configuração de uma placa de rede”.
A guia permite definir o nome de host da máquina e nomear os servidores que serão usados. Para obter mais informações, consulte a Seção 20.4.1.4, “Configurando nome de host e DNS”.
A guia é usada para a configuração do roteamento. Consulte a Seção 20.4.1.5, “Configurando o roteamento” para obter mais informações.
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 , escolha o modo como as conexões de rede são gerenciadas. Para que um applet de área de trabalho do NetworkManager gerencie as conexões de todas as interfaces, escolha . O NetworkManager é ideal para alternar entre várias redes com fio e wireless. Se você não tem um ambiente de área de trabalho em execução, ou se o seu computador for um servidor Xen, um sistema virtual ou fornecer serviços de rede como DHCP ou DNS em sua rede, use o método . Se o NetworkManager for usado, o nm-applet deverá ser usado para configurar opções de rede, e as guias , e do módulo estarão desabilitadas. Para obter mais informações sobre o NetworkManager, consulte o Capítulo 22, 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 especifica uma string usada no campo da opção de nome de host quando o cliente DHCP envia mensagens ao servidor DHCP. Alguns servidores DHCP atualizam as zonas do servidor de nomes (registros diretos e reversos) de acordo com esse nome de host (DNS Dinâmico). Além disso, alguns servidores DHCP exigem que o campo da opção contenha uma string específica nas mensagens DHCP dos clientes. Mantenha 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 .
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 .
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.
Como opção, você pode digitar 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 .
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 em Seção 20.4.1.4, “Configurando nome de host e DNS”. Para configurar um gateway, proceda conforme descrito em Seção 20.4.1.5, “Configurando o roteamento”.
Um dispositivo de rede pode ter vários endereços IP.
Os chamados álias ou rótulos, respectivamente, funcionam apenas com IPv4. Com IPv6, eles serão ignorados. O uso das interfaces de rede iproute2 pode ter um ou mais endereços.
Ao usar o YaST para definir endereços adicionais para a sua placa de rede, 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 . Não inclua o nome da interface no nome do álias.
Para ativar a configuração, confirme as definições.
É 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.
Para algumas placas de rede, vários drivers do Kernel podem estar 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. É possível também especificar opções para o driver do 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 qual driver do Kernel usar em . Digite qualquer opção para o driver selecionado em , usando o formato opção=valor . Se forem usadas mais opções, elas deverão ser separadas por espaços.
Para ativar a configuração, confirme as definições.
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 tão logo fique disponível. Ela se assemelha à opção , a única diferença é que não ocorre nenhum erro quando a interface não está presente no momento do boot. Escolha para controlar a interface manualmente com ifup. Escolha para não iniciar o dispositivo. A opção assemelha-se a , mas a interface não é encerrada com o comando systemctl stop wicked.service. Use-a se você estiver usando um sistema de arquivos raiz NFS ou iSCSI.
Para ativar a configuração, confirme as definições.
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.
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.
Sem precisar inserir a configuração de firewall detalhada como descrito na Section “Configuring the Firewall with YaST”, Chapter 15, Masquerading and Firewalls, Security Guide, 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:
Essa opção fica disponível apenas quando o firewall está 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.
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.
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 é 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.
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.
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 PCMCIA ou USB, ative a respectiva caixa de seleção e saia dessa caixa de diálogo com . Do contrário, você poderá definir o do Kernel para usar na placa, e as respectivas , se necessário.
Em , você pode definir as opções de ethtool usadas pelo ifup para a interface. Consulte a página de manual de ethtool para conhecer as opções disponíveis. Se a string opcional iniciar com um - (por exemplo -K nome_da_interface rx on), a segunda palavra da string será substituída pelo nome da interface atual. Caso contrário (por exemplo autoneg off speed 10), ifup precederá -s nome_da_interface.
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 , e . Para obter mais informações sobre as opções de configuração, consulte a Seção 20.4.1.2, “Mudando a configuração de uma placa de rede”.
Se 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.
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.
Digite o e, se necessário, o . O domínio é especialmente importante quando a máquina é um servidor de correio eletrônico. Observe que o nome de host é global e aplica-se a todas as interfaces de rede definidas.
Se você estiver usando o DHCP para obter um endereço IP, o nome de host do seu computador será definido automaticamente pelo DHCP. Convém desabilitar este comportamento ao conectar-se a outras redes, visto 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 .
associa seu nome de host ao endereço IP 127.0.0.2 (loopback) em /etc/hosts. Trata-se de uma opção útil quando você deseja que o nome de host seja sempre resolvível, mesmo sem uma rede ativa.
Em , selecione o modo como a configuração do DNS (servidores de nomes, lista de pesquisa, o conteúdo do arquivo /etc/resolv.conf) é modificada.
Se a opção for selecionada, a configuração será gerenciada pelo script netconfig, 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 é suficiente na maioria dos casos.
Se a opção for selecionada, netconfig não terá permissão para modificar o arquivo /etc/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? primeiramente encontrará todas as interfaces eth, 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 de 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
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 digitar um gateway padrão na tabela, use padrão no campo .
Se 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 número em . A rota com a métrica mais alta será usada como padrão. Se o dispositivo de rede for desconectado, sua rota será removida e o dispositivo seguinte será usado. Entretanto, o Kernel atual não usa métrica no roteamento estático, apenas os daemons de roteamento, como multipathd, podem fazê-lo.
Se o sistema for um roteador, habilite e em , conforme necessário.
Para ativar a configuração, confirme as definições.
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.
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 22.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 22, Usando o NetworkManager.
Algumas diferenças entre o wicked e o NetworkManager:
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 de root 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.
Tanto o wicked quanto o NetworkManager podem gerenciar conexões de rede 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.
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 22.3, “Configurando conexões de rede”.
Em máquinas administradas centralmente, determinados recursos do NetworkManager poderão 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 suas próprias configurações de rede. Para ver ou mudar as respectivas políticas do NetworkManager, inicie a ferramenta gráfica para o PolKit. Na árvore do lado esquerdo, elas se encontram abaixo da entrada . Para ver uma introdução sobre o PolKit e detalhes de como usá-lo, consulte o Chapter 9, Authorization with PolKit, Security Guide.
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.
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 é a mistura das diversas camadas de gerenciamento de rede em um único script ou, no máximo, em dois scripts diferentes, que interagem entre si de uma forma não muito bem definida, com efeitos colaterais difíceis de prever, limites e convenções obscuros, etc. Diversas camadas de soluções alternativas especiais para uma variedade de 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, na configuração de endereço, o administrador pode solicitar que uma interface seja configurada por DHCP ou IPv4 zeroconf, e tudo o que o serviço de configuração de endereço faz é obter o aluguel de seu servidor e passá-lo adiante para o processo do servidor do wicked, que instala os endereços e as rotas solicitadas.
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 possui 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:
Funções de interface de rede genéricas, como mover o link para cima ou para baixo, atribuir uma MTU, etc.
Serviços de configuração de endereço para DHCP, IPv6 autoconf, IPv4 zeroconf, etc.
Além disso, as interfaces de rede podem exigir ou oferecer mecanismos de configuração especiais. Por exemplo, em um dispositivo Ethernet, convém ter recursos para controlar a velocidade do link, o descarregamento de checksum, etc. Para 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, que é 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.
O modo como você interage com a interface que precisa ser criada primeiro, como a VLAN, que é, na verdade, uma interface de rede virtual que fica acima de um dispositivo Ethernet. Para isso tudo, 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.
O wicked suporta:
Back ends de arquivo de configuração para analisar os arquivos /etc/sysconfig/network no estilo SUSE e RedHat. Como o desenvolvimento é feito em uma instalação do SUSE, os arquivos do SUSE provavelmente são bem mais estáveis do que os do RedHat.
Um back end de arquivo de configuração para representar a configuração da interface de rede em XML. A sintaxe evoluiu até chegar na que é usada pelo netcf.
Ativação e encerramento de interfaces de rede “normais”, como Ethernet ou InfiniBand, além de VLAN, ponte e dispositivos de ligação. A ligação e ponte ainda podem apresentar alguns problemas.
Wireless, ainda incompleto e limitado a uma rede.
Um cliente DHCPv4 e um cliente DHCPv6 incorporados.
Existe um código experimental que deve ajudar a ativar automaticamente as interfaces logo que um link é detectado.
Uma implementação de leitor/gravador XML, que está longe de cumprir com todos os padrões, mas possui pouco volume e parece ser razoavelmente rápido. Ela vem com uma implementação parcial do XPath 1.0, que permite extrair informações de uma descrição de interface XML sem que você tenha que fazer nenhuma análise de XML.
wicked #
No SUSE Linux Enterprise, o wicked será executado por padrão, se você não selecionar o NetworkManager. Caso você tenha que habilitá-lo, chame:
systemctl enable --force wicked.service
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.service
Isso inicia o wickedd (o servidor principal) e os suplicantes associados no modo de depuração, imprimindo as informações de rastreamento no syslog:
/usr/sbin/wickedd --foreground /usr/lib/wicked/bin/wickedd-dhcp4 --foreground /usr/lib/wicked/bin/wickedd-auto4 --foreground /usr/lib/wicked/bin/wickedd-dhcp6 --foreground
Ativando a rede:
systemctl start wicked.service
Se preferir, também com o álias network.service:
systemctl start network.service
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_PARAM em /etc/sysconfig/network/config (isso pode mudar no futuro), por exemplo:
WICKED_DEBUG_PARAM="--debug most"
Use o utilitário cliente para exibir as informações da interface para todas as interfaces ou para a 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)
compat: arquivos ifcfg, implementados para compatibilidade
wicked:CAMINHO formato de configuração XML nativo do wicked armazenado em CAMINHO (padrão: /etc/wicked/ifconfig)
O que o wicked obtiver destas fontes para determinada interface será aplicado. A ordem de importância pretendida é firmware, depois compat e depois wicked, isso poderá ser mudado no futuro, quando os requisitos de compatibilidade do ifcfg ficarem flexíveis.
Vamos apresentar algo interessante: um exemplo de interface VLAN:
wicked ifup --ifconfig ./samples/wicked/vlan-static.xml eth0.42
Isso deve ativar a interface VLAN chamada “eth0.42”, com uma tag VLAN de 42 e alguns endereços IP estaticamente atribuídos. Para ver se ela funciona, tente:
ip addr show ip route show
O comando acima recupera a descrição de todas as interfaces do arquivo especificado e ativa a interface chamada “eth0.42”. Como o arquivo inclui apenas uma interface, você pode usar all (todas) no lugar do nome da interface. Como a palavra já diz, todas as interfaces listadas no arquivo são ativadas.
Para ativar uma única interface, o cliente executa vários métodos e argumentos do servidor usando elementos XML, solicitando ao servidor para mudar o estado da interface desejada para “ativado”. Esta operação criará a interface VLAN simultaneamente, se ainda não existir.
Use a mesma abordagem para baixar a interface:
wicked ifdown eth0.42
Para baixar e apagar a interface, use:
wicked ifdown --delete --ifconfig ./samples/wicked/vlan-static.xml eth0.42
Para obter mais informações, consulte a página de manual de wicked.
Para ligações e pontes, convém definir a topologia inteira do dispositivo em um arquivo e ativá-la de uma vez. Isso é bastante útil principalmente para ligações, em que você talvez tenha que criar primeiro os dispositivos escravos (se forem dispositivos virtuais, como as VLANs).
Nesse tipo de cenário, defina a topologia do dispositivo em um arquivo e chame o wicked para ativar toda a configuração. Encontre um exemplo em samples/wicked/bridge-static.xml na documentação do pacote (/usr/share/doc/packages/wicked). Esta configuração define uma ponte Ethernet criada com base em duas interfaces VLAN. Para ativá-la, chame:
wicked ifup --ifconfig ./samples/wicked/bridge-static.xml all
O cliente ativa os dispositivos na ordem apropriada: criando primeiro as duas interfaces VLAN, depois a ponte e, por fim, adicionando as interfaces VLAN como portas à ponte.
Com o wicked, não há necessidade de baixar 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 também 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 da 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.
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 diferentes 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 à interface do serviço dbus 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.
É 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 chega ao 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 DNS usando /sbin/netconfig ou manualmente, gravando /etc/resolv.conf como fallback.
Esta seção fornece uma visão geral dos arquivos de configuração de rede e explica sua finalidade e formato usado.
/etc/sysconfig/network/ifcfg-* #Estes arquivos contêm as configurações tradicionais das interfaces de rede.
wicked e os arquivos ifcfg-*
O wicked lerá estes arquivos se você especificar o modo de compatibilidade com o prefixo compat: ao usar a opção --ifconfig. De acordo com a configuração padrão do SUSE Linux Enterprise Server 12 no /etc/wicked/client.xml, o wicked lê esses arquivos antes dos arquivos de configuração XML em /etc/wicked/ifconfig.
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. Entretanto, a maioria das variáveis de /etc/sysconfig/network/config é global e não pode ser anulada em arquivos ifcfg. Por exemplo, as variáveis NETWORKMANAGER ou NETCONFIG_* são globais.
Para configurar as interfaces macvlan e macvtab, consulte as páginas de manual de 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 saber sobre o ifcfg.template, consulte a Seção 20.6.2.2, “/etc/sysconfig/network/config, /etc/sysconfig/network/dhcp e /etc/sysconfig/network/wireless”.
/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. dhcp contém configurações para DHCP e wireless para placas de rede local wireless. Nos três arquivos de configuração, as variáveis estão em forma de comentário. Algumas das variáveis de /etc/sysconfig/network/config também podem ser usadas nos arquivos ifcfg-*, nos quais recebem prioridade mais alta. O arquivo /etc/sysconfig/network/ifcfg.template lista as variáveis que podem ser especificadas para cada interface. Entretanto, a maioria das variáveis de /etc/sysconfig/network/config é global e não pode ser anulada em arquivos ifcfg. Por exemplo, as variáveis NETWORKMANAGER ou NETCONFIG_* são globais.
/etc/sysconfig/network/routes e /etc/sysconfig/network/ifroute-* #
O roteamento estático dos 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 precisa de 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
/etc/resolv.conf #
O domínio ao qual o host pertence está especificado em /etc/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 pesquisa individuais. É possível especificar até 3 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 20.6, “/etc/resolv.conf”.
Entretanto, o /etc/resolv.conf não deve ser editado manualmente. Isso porque ele é gerado pelo script netconfig. Para definir configurações DNS estáticas 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 ou resolver
NETCONFIG_DNS_RESOLVER_OPTIONS
opções arbitrárias que serão gravadas em /etc/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 de netconfig(8) (man 8 netconfig).
/etc/resolv.conf ## Our domain search example.com # # We use dns.example.com (192.168.1.116) as nameserver nameserver 192.168.1.116
/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 fornecer 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 serviço, 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 nome_de_arquivo e as armazena internamente até a próxima 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 nome_da_interface. O serviço é especificado pelo parâmetro -s nome_do_serviço.
remove
O comando netconfig remove remove as configurações dinâmicas fornecidas por uma ação modificadora para a combinação de interface e serviço especificada, além de atualizar a configuração da rede. A interface é especificada pelo parâmetro -i nome_da_interface. O serviço é especificado pelo parâmetro -s nome_do_serviço.
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 tipo_de_módulo se desejar atualizar apenas um serviço especificado (dns,nis ou ntp).
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 nem para o método wicked.
Para obter mais informações sobre o netconfig, consulte man 8 netconfig.
/etc/hosts #
Neste arquivo, mostrado em Exemplo 20.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
/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 20.8, “/etc/networks”.
/etc/networks #loopback 127.0.0.0 localnet 192.168.0.0
/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. Um parâmetro precisa estar sempre independente em sua própria linha. Comentários são precedidos pelo sinal #. A Tabela 20.2, “Parâmetros para /etc/host.conf” mostra os parâmetros disponíveis. Uma amostra de /etc/host.conf é mostrada no Exemplo 20.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 digitado 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
/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 do nsswitch.conf(5) e The GNU C Library Reference Manual (Manual de Referência da Biblioteca GNU C) para obter mais detalhes.
A ordem das consultas é definida no arquivo /etc/nsswitch.conf. Uma amostra do nsswitch.conf é mostrada no Exemplo 20.10, “/etc/nsswitch.conf”. Comentários são precedidos pelo sinal #. Nesse exemplo, a entrada no banco de dados hosts significa que uma solicitação foi enviada para /etc/hosts (arquivos) 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 20.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 20.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. |
|
|
Para grupos de usuários usados por |
|
|
Para nomes de host e endereços IP, usados por |
|
|
Listas de usuários e hosts válidos na rede com a finalidade de controlar permissões de acesso, consulte a página de manual do |
|
|
Nomes e endereços de redes, 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 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, Security Guide |
|
|
só pode ser usada como extensão de |
|
|
só pode ser usada como extensão de |
/etc/nscd.conf #
Esse arquivo é usado para configurar o nscd (name service cache daemon). Consulte as páginas de manual de nscd(8) e nscd.conf(5). Por padrão, as entradas do sistema de passwd e groups são armazenadas em cache pelo nscd. Isso é importante para o desempenho de serviços de diretório, como NIS e LDAP, pois, caso contrário, a conexão de rede precisaria ser usada para cada acesso a nomes ou grupos. hosts não é armazenado em cache por padrão, porque o mecanismo no nscd para armazenar hosts em cache impede o sistema local de confiar em verificações de pesquisa forward e reverse. Em vez de solicitar ao nscd para armazenar nomes em cache, configure um servidor DNS para armazenamento em cache.
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:
systemctl restart nscd.service
/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.
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 obsoletos
As ferramentas ifconfig e route estão obsoletas. Em vez disso, use ip. O ifconfig, por exemplo, limita os nomes de interface a 9 caracteres.
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 opções objeto comando. Você pode trabalhar com os seguintes objetos:
Este objeto representa um dispositivo de rede.
Este objeto representa o endereço IP do dispositivo.
Este objeto representa uma entrada de cache ARP ou NDISC.
Este objeto representa a entrada da tabela de roteamento.
Este objeto representa uma regra no banco de dados de políticas de roteamento.
Este objeto representa um endereço multicast.
Este objeto representa uma entrada de cache de roteamento multicast.
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 ip link set nome_do_dispositivo comando. Por exemplo, para desativar o dispositivo eth0, digite ip link set eth0 down. Para ativá-lo novamente, use ip link set eth0 up.
Após ativar um dispositivo, você poderá configurá-lo. Para definir o endereço IP, use ip addr add endereço_ip + dev nome_do_dispositivo. 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 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 o sistema, digite ip route add endereço_ip_do_gateway. Para traduzir um endereço IP para outro, use nat: ip route add nat endereço_ip via outro_endereço_ip.
Para exibir todos os dispositivos, use ip link ls. Para exibir apenas as interfaces em execução, use ip link ls up. Para imprimir as estatísticas de interface de um dispositivo, digite ip -s link ls nome_do_dispositivo. Para ver os endereços dos dispositivos, digite ip addr. Na saída do comando ip addr, você também pode encontrar informações sobre os endereços MAC dos dispositivos. Para mostrar todas as rotas, use ip route show.
Para obter mais informações sobre como usar o ip, digite ip help ou consulte a página de manual de ip(8). A opção help também está disponível para todos os subcomandos ip. Se, por exemplo, você precisar de ajuda para ip addr, digite ip addr help. Encontre o manual do ip em /usr/share/doc/packages/iproute2/ip-cref.pdf.
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 20.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, o número de pacotes perdidos e o tempo total da execução do ping.
Como destino, é possível usar um nome de host ou endereço IP, por exemplo, ping exemplo.com ou ping 192.168.3.100. O programa enviará pacotes até que você pressione Ctrl–C.
Se você só precisar verificar a funcionalidade da conexão, poderá 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 exemplo.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 exemplo.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 exemplo.com.
Para obter mais opções e informações sobre como usar o ping, digite ping -h ou consulte a página de manual de 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
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 assim que o sistema passa 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 11, O daemon systemd, e para 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 http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/.
multi-user.target
multi-user.target é o destino do systemd para um sistema multiusuários com todos os serviços de rede necessários.
xinetd.service
Inicia o xinetd. O xinetd pode ser usado para disponibilizar os serviços do servidor no sistema. Por exemplo, ele pode iniciar o vsftpd sempre que uma conexão FTP for inicializada.
rpcbind.service
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.service
Inicia o servidor NIS.
ypbind.service
Inicia o cliente NIS.
/etc/init.d/nfsserver
Inicia o servidor NFS.
/etc/init.d/postfix
Controla o processo de postfix.
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 é mode=active-backup, o que significa que um dispositivo escravo diferente será ativado se houver falha no escravo ativo.
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.
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 . Os seguintes modos estão disponíveis para configuração:
balance-rr
active-backup
balance-xor
broadcast
802.3ad
802.3ad é o modo LACP padronizado de “Agregação de links dinâmicos do IEEE 802.3ad”.
balance-tlb
balance-alb
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.
Todos os modos, e muito mais opções, são explicados em detalhes no encontrado em /usr/src/linux/Documentation/networking/bonding.txt após a instalação do pacote kernel-source.
Em ambientes de rede específicos (como os de Alta Disponibilidade), há casos em que você precisa substituir uma interface de escravo associado por outra. O motivo pode ser uma falha constante no dispositivo de rede. A solução é configurar o hotplug dos escravos associados.
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'
Os escravos são especificados 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 do escravo é controlada pelo master de ligação.
STARTMODE=hotplug faz com que a interface do escravo se una à ligação automaticamente assim que estiver disponível.
As regras do udev em /etc/udev/rules.d/70-persistent-net.rules precisam ser mudadas para corresponder ao dispositivo pelo ID do barramento (udev palavra-chave KERNELS igual a "SysFS BusID" como visível em hwinfo --netcard), e não pelo endereço MAC, para permitir a substituição do hardware com defeito (uma placa de rede no mesmo slot, mas com um MAC diferente) e evitar confusão conforme a ligação modifica o endereço MAC de todos os seus escravos.
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 dos escravos, mas sim a ligação ficar pronta, o que requer no mínimo um escravo disponível. Quando uma das interfaces dos escravos é removida (desvincular do driver NIC, rmmod do driver NIC ou remoção do hotplug do PCI verdadeira) 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 com o nome do escravo e chama o ifup para ela. A chamada do ifup une-a automaticamente à ligação.