Capítulo 18. Rede básica

Sumário

18.1. Roteamento e endereços IP
18.2. IPv6 — A Internet da próxima geração
18.3. Resolução de nomes
18.4. Configurando uma conexão de rede com o YaST
18.5. Gerenciando conexões de rede com o NetworkManager
18.6. Configurando uma conexão de rede manualmente
18.7. smpppd como Assistente de Discagem

Resumo

O Linux oferece os recursos e as ferramentas de rede necessários para a integração em todos os tipos de estruturas de rede. O protocolo Linux comum, TCP/IP, possui vários serviços e recursos especiais abordados aqui. O acesso à rede através de placa de rede, modem ou outro dispositivo pode ser configurado com o YaST. A configuração também pode ser feita manualmente. Somente os mecanismos fundamentais e os arquivos de configuração de rede relevantes serão discutidos neste capítulo.

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 Tabela 18.1, “Vários protocolos na família de protocolos TCP/IP” são fornecidos com a finalidade de trocar dados entre duas máquinas através 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 ampliar seu conhecimento sobre qualquer dos protocolos, consulte os documentos de RFC apropriados. Eles estão disponíveis online em http://www.ietf.org/rfc.html.

Tabela 18.1. Vários protocolos na família de protocolos TCP/IP

Protocolo

Descrição

TCP

Protocolo de controle de transmissão: um protocolo seguro orientado por conexão. Os dados a serem transmitidos são primeiramente enviados pelo aplicativo como um fluxo de dados. Depois, são convertidos pelo sistema operacional no formato apropriado. Os dados chegam ao respectivo aplicativo no host de destino no formato do fluxo de dados original no qual foram inicialmente enviados. O TCP determina se algum dado foi perdido durante a transmissão e se não foram misturados. O TCP é implementado onde a seqüência de dados for necessária.

UDP

UDP: um protocolo inseguro, sem 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 e eles podem ser perdidos. O UDP é adequado para aplicativos orientados por registro. Ele possui um período de latência menor que o TCP.

ICMP

ICMP: essencialmente, não é 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.

IGMP

IGMP: este protocolo controla o comportamento da máquina durante o multicast IP.

Conforme mostrado na Figura 18.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. Acima do IP, o TCP garante, até certo ponto, a segurança na transferência de dados. A camada IP é suportada pelo protocolo dependente de hardware subjacente, como uma ethernet.

Figura 18.1. Modelo de camadas simplificado para TCP/IP

Modelo de camadas simplificado para TCP/IP

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. O link de dados e as camadas físicas representam a rede física usada, como uma ethernet.

Quase todos os protocolos de hardware funcionam em uma base orientada por pacotes. Os dados a serem transmitidos são fornecidos em pacotes, pois 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 um pouco menores, pois o hardware da rede pode ser um fator de limitação. O tamanho máximo de um pacote de dados em uma ethernet é em torno de 1.500 bytes. O tamanho de um pacote TCP/IP limita-se a esse máximo quando os dados são enviados por uma 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. Um exemplo de um pacote de dados TCP/IP transmitido por um cabo ethernet é exibido na Figura 18.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.

Figura 18.2. Pacote Ethernet TCP/IP

Pacote Ethernet TCP/IP

Quando um aplicativo envia dados por uma rede, eles passam por cada camada, todas implementadas no kernel do Linux, exceto a camada física. Cada camada é 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, é relevante se os dados são transmitidos através de uma rede FDDI de 100 MBit/s ou de uma linha de modem de 56 kbit/s. Da mesma forma, é relevante para a linha de dados os tipos de dados transmitidos, contanto que os pacotes estejam no formato correto.


18.1. Roteamento e endereços IP

Esta seção limita-se à abordagem de redes IPv4. Para obter informações sobre o protocolo IPv6, sucessor do IPv4, consulte a Seção 18.2, “IPv6 — A Internet da próxima geração”.

18.1.1. Endereços IP

Todo computador na Internet possui um endereço de 32 bits exclusivo. Esses 32 bits (ou 4 bytes) são normalmente gravados conforme ilustrado na segunda linha no Exemplo 18.1, “Gravando endereços IP”.

Exemplo 18.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 não pode ser usado em nenhum outro lugar no mundo. Há exceções a essa regra, mas não são relevantes nas 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 provou ser excessivamente inflexível e foi interrompido. Agora, o CIDR (Classless Interdomain Routing - Roteamento Interdomínio sem Classes) é usado.

18.1.2. Máscaras de rede e roteamento

As máscaras de rede são usadas para definir a faixa de endereços de uma sub-rede. Se dois hosts estão em uma mesma sub-rede, eles podem se encontrar diretamente. Caso não estejam na mesma sub-rede, precisam do endereço de gateway que controla todo o tráfego entre a sub-rede e o resto do mundo. 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 18.2, “Vinculando endereços IP à máscara de rede”. A máscara de rede consiste em 32 bits que identificam quanto de 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 apenas contar o número de bits da máscara de rede. No Exemplo 18.2, “Vinculando endereços IP à máscara de rede” a primeira rede com 24 bits também poderia ser gravada como 192.168.0.0/24.

Exemplo 18.2. Vinculando endereços IP à máscara de rede

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.

Tabela 18.2. Endereços específicos

Tipo de endereço

Descrição

Endereço de rede de base

Essa é a máscara de rede E qualquer endereço na rede, conforme mostrado no Exemplo 18.2, “Vinculando endereços IP à máscara de rede” em Resultado. Esse endereço não pode ser designado a nenhum host.

Endereço de broadcast

Isso significa, basicamente, “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. O exemplo acima resulta, portanto, em 192.168.0.255. Esse endereço não pode ser designado a nenhum host.

Host local

O endereço 127.0.0.1 é designado ao “dispositivo loopback” em cada host. Uma conexão pode ser configurada em sua própria máquina com esse endereço.

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 18.3, “Domínios de endereços IP privados”.

Tabela 18.3. Domínios de endereços IP privados

Rede/máscara de rede

Domínio

10.0.0.0/255.0.0.0

10.x.x.x

172.16.0.0/255.240.0.0

172.16.x.x172.31.x.x

192.168.0.0/255.255.0.0

192.168.x.x