Linux Professional Institute Learning Logo.
Ir para o conteúdo principal
  • Home
    • Todos os recursos
    • LPI Materiais Didáticos
    • Colabore Conosco
    • Publishing Partners
    • Seja um Publishing Partner
    • Quem Somos
    • FAQ
    • Colaboradores
    • Contato
  • LPI.org
4.4 Lição 1
Tópico 1: A comunidade Linux e a carreira Open Source
1.1 A evolução do Linux e sistemas operacionais populares
  • 1.1 Lição 1
1.2 Principais Aplicações Open Source
  • 1.2 Lição 1
1.3 Entendendo o Software Open Source e suas Licenças
  • 1.3 Lição 1
1.4 Habilidades ICT e trabalhando no Linux
  • 1.4 Lição 1
Tópico 2: Encontrando seu caminho em um Sistema Linux
2.1 O básico sobre a linha de comando
  • 2.1 Lição 1
  • 2.1 Lição 2
2.2 Usando a linha de comando para conseguir ajuda
  • 2.2 Lição 1
2.3 Usando diretórios e listando arquivos
  • 2.3 Lição 1
  • 2.3 Lição 2
2.4 Criando, Movendo e Deletando Arquivos
  • 2.4 Lição 1
Tópico 3: O Poder da Linha de Comando
3.1 Empacotando arquivos na linha de comando
  • 3.1 Lição 1
3.2 Pesquisando e extraindo dados de arquivos
  • 3.2 Lição 1
  • 3.2 Lição 2
3.3 Transformando comandos em Scripts
  • 3.3 Lição 1
  • 3.3 Lição 2
Tópico 4: O Sistema Operacional Linux
4.1 Escolhendo um Sistema Operacional
  • 4.1 Lição 1
4.2 Entendendo o Hardware do Computador
  • 4.2 Lição 1
4.3 Onde os dados são armazenados
  • 4.3 Lição 1
  • 4.3 Lição 2
4.4 Seu Computador na Rede
  • 4.4 Lição 1
Tópico 5: Segurança e Permissões de Arquivos
5.1 Segurança Básica e Identificação de Tipos de Usuários
  • 5.1 Lição 1
5.2 Criando Usuários e Grupos
  • 5.2 Lição 1
5.3 Gerenciando permissões e donos de arquivos
  • 5.3 Lição 1
5.4 Diretórios e arquivos especiais
  • 5.4 Lição 1
How to get certified
  1. Tópico 4: O Sistema Operacional Linux
  2. 4.4 Seu Computador na Rede
  3. 4.4 Lição 1

4.4 Lição 1

Certificação:

Linux Essentials

Versão:

1.6

Tópico:

4 O sistema operacional Linux

Objetivo:

4.4 Seu computador na rede

Lição:

1 de 1

Introdução

No mundo de hoje, qualquer tipo de dispositivo de computação troca informações por meio de redes. No cerne do conceito das redes de computadores estão as conexões físicas entre um dispositivo e seus pares. Essas conexões são chamadas links e constituem a conexão mais básica entre dois dispositivos diferentes. Os links podem ser estabelecidos através de vários meios, como cabos de cobre, fibras óticas, ondas de rádio ou lasers.

Cada link está conectado a uma interface de um dispositivo. Cada dispositivo pode ter múltiplas interfaces e, portanto, estar conectado a diversos links. Através desses links, os computadores podem formar uma rede: uma pequena comunidade de dispositivos capazes de se conectar diretamente. Há inúmeros exemplos dessas redes no mundo. Para poder se comunicar além do alcance de uma camada de link, os dispositivos usam roteadores. Pense nas redes da camada de link como ilhas conectadas entre si por roteadores — assim como pontes que as informações precisam atravessar para chegar a um dispositivo que faz parte de uma ilha remota.

Esse modelo leva a diversas camadas de rede diferentes:

Camada de link

Responsável pela comunicação entre dispositivos conectados diretamente.

Camada de rede

Gerencia o roteamento para fora das redes individuais e o endereçamento único de dispositivos além de uma única camada de link.

Camada de aplicativo

Permite que programas individuais se conectem uns aos outros.

Quando foram inventadas, as redes de computadores usavam os mesmos métodos de comunicação que os telefones, ou seja, eram comutadas por circuitos. Isso significa que um link dedicado e direto tinha de ser formado entre dois nós para que eles pudessem se comunicar. Esse método funcionava bem, mas exigia todo o espaço em um determinado link para que apenas dois hosts se comunicassem.

Depois de algum tempo, as redes de computadores passaram a usar a comutação de pacotes. Nesse método, os dados são agrupados com um cabeçalho contendo informações sobre a origem e o destino das informações. As informações do conteúdo estão contidas nessa estrutura e são enviadas pelo link para o destinatário indicado no cabeçalho. Isso permite que diversos dispositivos compartilhem um único link e se comuniquem quase simultaneamente.

Comunicação na camada de link

A função de qualquer pacote é transportar informações da origem até o destino através de um link que conecta os dois dispositivos. Esses dispositivos precisam de uma maneira de se identificar. Esse é o objetivo de um endereço de camada de link. Em uma rede Ethernet, os endereços de Controle de Acesso de Mídia (Media Access Control ou MAC) são usados para identificar dispositivos individuais. Um endereço MAC consiste em 48 bits. Eles não são necessariamente únicos globalmente e não podem ser usados para endereçar pontos externos ao link atual. Portanto, esses endereços não podem ser usados para rotear pacotes para outros links. O destinatário de um pacote verifica se o endereço de destino corresponde à sua própria camada de link e, se for o caso, processa o pacote. Caso contrário, o pacote será descartado. A exceção a essa regra são pacotes de broadcast (um pacote enviado a todos em uma determinada rede local), que sempre são aceitos.

O comando ip link show exibe uma lista de todas as interfaces de rede disponíveis e seus endereços da camada de link, além de outras informações sobre o tamanho máximo do pacote:

$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:33:3b:25 brd ff:ff:ff:ff:ff:ff

A saída acima mostra que o dispositivo tem duas interfaces, lo e ens33. lo é o dispositivo de loopback e tem o endereço MAC 00:00:00:00:00:00, ao passo que ens33 é uma interface Ethernet com o endereço MAC 00:0c:29:33:3b:25.

Rede IPv4

Para visitar sites como o Google ou o Twitter, verificar emails ou permitir que empresas se conectem entre si, os pacotes precisam ser capazes de passar de uma camada de link para outra. Freqüentemente, essas redes são conectadas indiretamente, com diversas camadas de link intermediárias que os pacotes devem atravessar para alcançar seu destino real.

Os endereços de camada de link de uma interface de rede não podem ser usados fora da rede específica em que está a camada de link. Como esse endereço não tem significado para os dispositivos de camada de link de outras redes, é necessária uma forma de endereços globalmente exclusivos para implementar o roteamento. Esse esquema de endereçamento, juntamente com o conceito geral de roteamento, é implementado pelo Protocolo de Internet (Internet Protocol ou IP).

Note

Um protocolo é um conjunto de procedimentos que permite que todas as partes que seguem o protocolo sejam compatíveis entre si. Um protocolo pode ser visto como a definição de um padrão. Em computação, o Internet Protocol é um padrão aceito por todos para que diferentes dispositivos produzidos por diferentes fabricantes possam se comunicar.

Endereços IPv4

Os endereços IP, como os endereços MAC, são uma maneira de indicar de onde vem um pacote de dados e para onde ele está indo. IPv4 era o protocolo original. Os endereços IPv4 têm 32 bits de largura, fornecendo um número máximo teórico de 4.294.967.296 endereços. No entanto, o número desses endereços que são utilizáveis pelos dispositivos é muito menor, pois alguns intervalos são reservados para casos de uso especiais, como endereços de broadcast (usados para alcançar todos os participantes de uma rede específica), endereços multicast (semelhantes aos endereços de broadcast, mas o dispositivo deve sintonizá-lo, como um rádio) ou endereços reservados para uso privado.

Em seu formato legível para humanos, os endereços IPv4 são representados como quatro grupos de dígitos separados por um ponto. Cada grupo pode variar de 0 a 255. Por exemplo, veja o seguinte endereço IP:

192.168.0.1

Tecnicamente, cada um desses grupos de dígitos representa oito bits individuais. Assim, esse endereço também pode ser escrito desta maneira:

11000000.10101000.00000000.00000001

Na prática, usamos uma notação decimal como a mostrada acima. No entanto, a representação bit a bit ainda é importante para entender as sub-redes.

Sub-redes IPv4

Para oferecer suporte ao roteamento, os endereços IP podem ser divididos em duas partes: uma parte da rede e uma do host. A parte da rede identifica a rede na qual o dispositivo está e é usada para rotear pacotes para essa rede. A parte do host é usada para identificar especificamente um determinado dispositivo em uma rede e para entregar o pacote ao seu destinatário específico, uma vez atingida a sua camada de link.

Os endereços IP podem ser divididos em partes de sub-rede e host em qualquer ponto. A chamada máscara de sub-rede define onde essa divisão acontece. Vamos reconsiderar a representação binária do endereço IP do exemplo anterior:

11000000.10101000.00000000.00000001

Para esse endereço IP, a máscara de sub-rede define cada bit que pertence à parte da rede como 1 e cada bit que pertence à parte do host como 0:

11111111.11111111.11111111.00000000

Na prática, a máscara de rede é escrita na notação decimal:

255.255.255.0

Isso significa que essa rede varia de 192.168.0.0 a 192.168.0.255. Note que os três primeiros números, que possuem todos os bits definidos na máscara de rede, permanecem inalterados nos endereços IP.

Por fim, existe uma notação alternativa para a máscara de sub-rede, chamada Classless Inter-Domain Routing (CIDR). Essa notação indica somente quantos bits estão definidos na máscara de sub-rede e adiciona esse número ao endereço IP. No exemplo, 24 dos 32 bits são definidos como 1 na máscara de sub-rede. Isso pode ser expresso na notação CIDR como 192.168.0.1/24

Endereços IPv4 privados

Como mencionado anteriormente, determinadas seções do endereço IPv4 são reservadas para casos de uso especiais. Um desses casos de uso são atribuições de endereços privados. As seguintes sub-redes estão reservadas para endereçamento privado:

  • 10.0.0.0/8

  • 172.16.0.0/12

  • 192.168.0.0/16

Os endereços dessas sub-redes podem ser usados por qualquer pessoa. No entanto, essas sub-redes não podem ser roteadas na internet pública, pois são potencialmente usadas por várias redes ao mesmo tempo.

Hoje, a maioria das redes usa esses endereços internos. Eles permitem a comunicação interna sem a necessidade de qualquer atribuição de endereço externo. A maioria das conexões à Internet atualmente vem apenas com um único endereço IPv4 externo. Ao encaminhar pacotes para a Internet, os roteadores mapeiam todos os endereços internos para esse único endereço IP externo. Esse processo se chama Network Address Translation (NAT). O caso especial do NAT, em que um roteador mapeia endereços internos para um único endereço IP externo, às vezes é chamado de masquerading. Ele permite que qualquer dispositivo na rede interna estabeleça novas conexões com qualquer endereço IP global na internet.

Note

Com o masquerading, os dispositivos internos não podem ser referenciados na Internet, pois não possuem um endereço válido globalmente. No entanto, esse não é um recurso de segurança. Mesmo ao usar masquerading, um firewall permanece necessário.

Configuração do endereço IPv4

Existem duas maneiras principais de configurar endereços IPv4 em um computador: atribuir os endereços manualmente ou usar o protocolo de configuração dinâmica de host (Dynamic Host Configuration Protocol ou DHCP) para configuração automática.

Ao usar o DHCP, um servidor central controla quais endereços são entregues a quais dispositivos. O servidor também pode fornecer aos dispositivos outras informações sobre a rede, como os endereços IP dos servidores DNS, o endereço IP do roteador padrão ou, no caso de configurações mais complicadas, iniciar um sistema operacional a partir da rede. O DHCP está ativado por padrão em muitos sistemas; portanto, você provavelmente já terá um endereço IP quando estiver conectado a uma rede.

Também é possível adicionar endereços IP manualmente a uma interface usando o comando ip addr add. Aqui, adicionamos o endereço 192.168.0.5 à interface ens33. A rede usa a máscara de rede 255.255.255.0, que equivale a /24 em notação CIDR:

$ sudo ip addr add 192.168.0.5/255.255.255.0 dev ens33

Agora, podemos verificar se o endereço foi adicionado, usando o comando ip addr show:

$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
25: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:33:3b:25 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.5/24 192.168.0.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::010c:29ff:fe33:3b25/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

A saída acima mostra a interface lo e a interface ens33 com seu endereço atribuído com o comando acima.

Para verificar se um dispositivo está acessível, usamos o comando ping. Ele envia um tipo especial de mensagem chamado echo request (solicitação de eco), na qual o remetente solicita uma resposta ao destinatário. Se a conexão entre os dois dispositivos puder ser estabelecida com sucesso, o destinatário retornará uma resposta de eco, confirmando a conexão:

$ ping -c 3 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=2.16 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=1.85 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=3.41 ms

--- 192.168.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 1.849/2.473/3.410/0.674 ms

O parâmetro -c 3 faz com que o ping pare de ser executado após o envio de três solicitações de eco. Caso contrário, o ping continua a rodar para sempre e precisa ser interrompido pressionando Ctrl+C.

Roteamento IPv4

O roteamento é o processo no qual um pacote passa da rede de origem para a rede de destino. Cada dispositivo mantém uma tabela de roteamento contendo informações sobre qual rede IP pode ser acessada diretamente através do vínculo do dispositivo com a camada de link e qual rede IP pode ser alcançada com a transmissão de pacotes para um roteador. Por fim, uma rota padrão define um roteador que recebe todos os pacotes que não correspondem a nenhuma outra rota.

Ao estabelecer uma conexão, o dispositivo procura o endereço IP do destino em sua tabela de roteamento. Se uma entrada corresponder ao endereço, o pacote será enviado à camada de link respectiva ou repassado ao roteador indicado na tabela de roteamento.

Os próprios roteadores também mantêm tabelas de roteamento. Ao receber um pacote, um roteador procura o endereço de destino em sua própria tabela e envia o pacote para o roteador seguinte. Isso é repetido até que o pacote chegue ao roteador na rede de destino. Cada roteador envolvido nessa jornada é chamado de hop. O último roteador encontra um link conectado direto para o endereço de destino em sua tabela de roteamento e envia os pacotes para a interface do destino.

A maioria das redes domésticas conta com apenas uma saída, o roteador enviado pelo provedor de internet (ISP). Nesse caso, o dispositivo apenas encaminha todos os pacotes que não são para a rede interna diretamente para o roteador doméstico, que o envia então ao roteador do provedor para encaminhamento adicional. Esse é um exemplo de rota padrão.

O comando ip route show lista a tabela atual de roteamento IPv4:

$ ip route show
127.0.0.0/8 via 127.0.0.1 dev lo0
192.168.0.0/24 dev ens33 scope link

Para adicionar uma rota padrão, basta ter o endereço interno do roteador que será o gateway padrão. Se, por exemplo, o roteador tiver o endereço 192.168.0.1, o seguinte comando o configurará como uma rota padrão:

$ sudo ip route add default via 192.168.0.1

Para confirmar, execute ip route show novamente:

$ ip route show
default via 192.168.0.1 dev ens33
127.0.0.0/8 via 127.0.0.1 dev lo0
192.168.0.0/24 dev ens33 scope link

Rede IPv6

O IPv6 foi projetado para colmatar as deficiências do IPv4, principalmente a falta de endereços conforme mais e mais dispositivos iam sendo postos online. No entanto, o IPv6 também inclui outros recursos, como novos protocolos para a configuração automática de redes. Em vez de 32 bits por endereço, o IPv6 usa 128. Isso permite aproximadamente 2128 endereços. No entanto, como o IPv4, o número de endereços utilizáveis globalmente exclusivos é muito menor porque algumas seções da alocação são reservadas para outros usos. Esse grande número de endereços significa que existem endereços públicos mais do que suficientes para todos os dispositivos atualmente conectados à Internet, mais muitos outros, reduzindo assim a necessidade de masquerading e os problemas gerados por ele, como o atraso na tradução e a impossibilidade de conectar-se diretamente a dispositivos mascarados.

Endereços IPv6

Quando escritos, os endereços usam 8 grupos de 4 dígitos hexadecimais, separados por dois pontos:

2001:0db8:0000:abcd:0000:0000:0000:7334
Note

Os dígitos hexadecimais vão de 0 a f, de forma que cada dígito pode conter um dentre 16 valores diferentes.

Para facilitar, os zeros à esquerda de cada grupo podem ser removidos quando escritos, mas cada grupo deve conter pelo menos um dígito:

2001:db8:0:abcd:0:0:0:7334

Quando diversos grupos contendo apenas zeros aparecem diretamente um após o outro, podem ser substituídos por '::':

2001:db8:0:abcd::7334

Todavia, isso só pode ser feito uma vez em cada endereço.

Prefixo IPv6

Os primeiros 64 bits de um endereço IPv6 são conhecidos como o prefixo de roteamento. O prefixo é usado pelos roteadores para determinar a qual rede um dispositivo pertence e, portanto, em qual caminho os dados precisam ser enviados. A sub-rede sempre acontece dentro do prefixo. Os provedores de internet geralmente distribuem prefixos /48 ou /58 aos seus clientes, deixando 16 ou 8 bits para sua sub-rede interna.

Existem três tipos principais de prefixos no IPv6:

Endereço Global Unicast

Nele, o prefixo é atribuído a partir dos blocos reservados aos endereços globais. Esses endereços são válidos em toda a internet.

Endereço Local Unicast

Pode não ser roteado na internet. No entanto, pode ser roteado internamente dentro de uma organização. Esses endereços são usados dentro de uma rede para garantir que os dispositivos tenham um endereço mesmo quando não houver conexão com a Internet. Equivalem aos intervalos de endereços privados do IPv4. Os primeiros 8 bits são sempre fc ou fd, seguidos por 40 bits gerados aleatoriamente.

Endereço Link-Local

São válidos somente em um link específico. Toda interface de rede compatível com IPv6 possui um desses endereços, começando com fe80. Esses endereços são usados internamente pelo IPv6 para solicitar endereços adicionais usando a configuração automática e para encontrar outros computadores na rede usando o protocolo Neighbor Discovery.

Identificador da interface IPv6

Enquanto o prefixo determina em qual rede um dispositivo reside, o identificador de interface é usado para enumerar os dispositivos em uma rede. Os últimos 64 bits de um endereço IPv6 formam o identificador da interface, assim como os últimos bits de um endereço IPv4.

Quando um endereço IPv6 é atribuído manualmente, o identificador da interface é definido como parte do endereço. Ao usar a configuração automática de endereço, o identificador de interface é escolhido aleatoriamente ou derivado do endereço da camada de link do dispositivo. Isso faz com que uma variação do endereço da camada de link apareça no endereço IPv6.

Configuração do endereço IPv6

Como o IPv4, o endereço IPv6 pode ser atribuído manualmente ou automaticamente. No entanto, o IPv6 possui dois tipos diferentes de configuração automatizada: DHCPv6 e Stateless Address Autoconfiguration (SLAAC).

O SLAAC é o mais fácil dos dois métodos automatizados, sendo incorporado no padrão IPv6. As mensagens usam o novo Neighbor Discovery Protocol, que permite que os dispositivos se encontrem e solicitem informações a respeito de uma rede. Essas informações são enviadas pelos roteadores e podem conter prefixos IPv6 que os dispositivos podem usar combinando-os com um identificador de interface de sua escolha, desde que o endereço resultante ainda não esteja em uso. Os dispositivos não fornecem feedback ao roteador sobre os endereços criados.

O DHCPv6, por outro lado, é o DHCP atualizado para funcionar com as alterações do IPv6. Ele permite um controle mais preciso das informações entregues aos clientes, como permitir que o mesmo endereço seja sempre entregue ao mesmo cliente e enviar mais opções para o cliente do que o SLAAC. Com o DHCPv6, os clientes precisam obter o consentimento explícito de um servidor DHCP para usar um endereço.

O método para atribuir manualmente um endereço IPv6 a uma interface é o mesmo do IPv4:

$ sudo ip addr add 2001:db8:0:abcd:0:0:0:7334/64 dev ens33

Para confirmar se a atribuição funcionou, usamos o mesmo comando, ip addr show:

$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
25: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:33:3b:25 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.5/24 192.168.0.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::010c:29ff:fe33:3b25/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
    inet6 2001:db8:0:abcd::7334/64 scope global
       valid_lft forever preferred_lft forever

Aqui também vemos o endereço link-local fe80::010c:29ff:fe33:3b25/64.

Como no caso do IPv4, o comando ping também pode ser usado para confirmar a acessibilidade dos dispositivos através do IPv6:

$ ping 2001:db8:0:abcd::1
PING 2001:db8:0:abcd::1(2001:db8:0:abcd::1) 56 data bytes
64 bytes from 2001:db8:0:abcd::1: icmp_seq=1 ttl=64 time=0.030 ms
64 bytes from 2001:db8:0:abcd::1: icmp_seq=2 ttl=64 time=0.040 ms
64 bytes from 2001:db8:0:abcd::1: icmp_seq=3 ttl=64 time=0.072 ms

--- 2001:db8:0:abcd::1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 43ms
rtt min/avg/max/mdev = 0.030/0.047/0.072/0.018 ms
Note

Em certos sistemas Linux, o ping não suporta IPv6. Esses sistemas incluem um comando dedicado ping6 para isso.

Para confirmar o endereço link-local, use ping novamente. Mas como todas as interfaces usam o prefixo fe80::/64, a interface correta deve ser especificada junto com o endereço:

$ ping6 -c 1 fe80::010c:29ff:fe33:3b25%ens33
PING fe80::010c:29ff:fe33:3b25(fe80::010c:29ff:fe33:3b25) 56 data bytes
64 bytes from fe80::010c:29ff:fe33:3b25%ens33: icmp_seq=1 ttl=64 time=0.049 ms

--- fe80::010c:29ff:fe33:3b25 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.049/0.049/0.049/0.000 ms

DNS

Os endereços IP são difíceis de memorizar e não são lá muito atraentes quando estamos tentando comercializar um serviço ou produto. É aqui que o Domain Name System (sistema de nomes de domínio) entra em ação. Em sua forma mais simples, o DNS é uma lista telefônica que mapeia nomes de domínio memoráveis e amigáveis, como exemplo.com, para endereços IP. Quando, por exemplo, um usuário navega até um site, ele insere o nome do host DNS como parte da URL. O navegador web envia o nome de DNS para o resolvedor DNS configurado. Esse resolvedor de DNS, por sua vez, descobrirá o endereço relacionado àquele domínio. O resolvedor responde com essa informação e o navegador tenta acessar o servidor web nesse endereço IP.

Os resolvedores usados pelo Linux para procurar dados DNS estão no arquivo de configuração /etc/resolv.conf:

$ cat /etc/resolv.conf
search lpi
nameserver 192.168.0.1

Quando o resolvedor realiza uma pesquisa de nome, ele primeiro verifica o arquivo /etc/hosts para ver se encontra um endereço para o nome solicitado. Se for o caso, ele retorna esse endereço e não entra em contato com o DNS. Isso permite que os administradores de rede forneçam a resolução de nomes sem a necessidade de configurar um servidor DNS completo. Cada linha desse arquivo contém um endereço IP seguido por um ou mais nomes:

127.0.0.1          localhost.localdomain   localhost
::1                localhost.localdomain   localhost
192.168.0.10       server
2001:db8:0:abcd::f server

Para realizar uma pesquisa no DNS, use o comando host:

$ host learning.lpi.org
learning.lpi.org has address 208.94.166.198

O comando dig oferece informações mais detalhadas:

$ dig learning.lpi.org
; <<>> DiG 9.14.3 <<>> learning.lpi.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21525
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 2ac55879b1adef30a93013705d3306d2128571347df8eadf (bad)
;; QUESTION SECTION:
;learning.lpi.org.		IN	A

;; ANSWER SECTION:
learning.lpi.org.	550	IN	A	208.94.166.198

;; Query time: 3 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Sat Jul 20 14:20:21 EST 2019
;; MSG SIZE  rcvd: 89

Aqui também vemos o nome dos tipos de registro DNS, neste caso A para IPv4.

Sockets

Um socket é um terminal de comunicação para dois programas conversando entre si. Se o socket estiver conectado por uma rede, os programas poderão ser executados em dispositivos diferentes, como um navegador web no laptop de um usuário e um servidor web no data center de uma empresa.

Existem três tipos principais de sockets:

Sockets Unix

Conecta os processos em execução no mesmo dispositivo.

Sockets UDP (User Datagram Protocol)

Conectam aplicativos usando um protocolo rápido, mas pouco resistente.

Sockets TCP (Transmission Control Protocol)

Mais confiáveis que os sockets UDP; por exemplo, eles confirmam a recepção de dados.

Os sockets Unix só podem conectar aplicativos em execução no mesmo dispositivo. Já os sockets TCP e UDP podem se conectar através de uma rede. O TCP permite um fluxo de dados que sempre chegam na ordem exata em que foram enviados. O UDP meio que se guia sozinho; o pacote é enviado, mas a forma de entrega na outra extremidade não é garantida. No entanto, o UDP não tem a mesma sobrecarga do TCP, sendo assim perfeito para aplicações de baixa latência, como videogames online.

O TCP e o UDP usam portas para endereçar vários sockets no mesmo endereço IP. Embora a porta de origem de uma conexão geralmente seja aleatória, as portas de destino são padronizadas para um serviço específico. O HTTP, por exemplo, geralmente é hospedado na porta 80; o HTTPS é executado na porta 443. O SSH, um protocolo para fazer login com segurança em um sistema Linux remoto, escuta na porta 22.

O comando ss permite que um administrador investigue todos os sockets em um computador Linux. Ele mostra tudo, desde o endereço de origem até o endereço de destino e o tipo. Um de seus melhores recursos é o uso de filtros que permitem monitorar os sockets em qualquer estado de conexão que se queira. O ss pode ser executado com um conjunto de opções, além de uma expressão de filtro para limitar as informações mostradas.

Quando executado sem nenhuma opção, o comando exibe uma lista de todos os sockets estabelecidos. A opção -p inclui informações sobre o processo que está usando cada socket. A opção –s mostra um resumo dos sockets. Há muitas outras opções disponíveis para esta ferramenta, mas algumas das principais são -4 e -6 para restringir o protocolo IP a IPv4 ou IPv6 respectivamente; -t e -u permitem que o administrador selecione sockets TCP ou UDP e -l exibe apenas o socket que está atento às novas conexões.

O comando a seguir, por exemplo, lista todos os sockets TCP atualmente em uso:

$ ss -t
State       Recv-Q  Send-Q    Local Address:Port      Peer Address:Port
ESTAB       0       0           192.168.0.5:49412      192.168.0.1:https
ESTAB       0       0           192.168.0.5:37616      192.168.0.1:https
ESTAB       0       0           192.168.0.5:40114      192.168.0.1:https
ESTAB       0       0           192.168.0.5:54948      192.168.0.1:imap
...

Exercícios Guiados

  1. Um engenheiro de rede precisa atribuir dois endereços IP à interface ens33 de um host, um endereço IPv4 (192.168.10.10/24) e um endereço IPv6 (2001:0:0:abcd:0:8a2e:0370:7334/64). Quais comandos ele deve usar para fazer isso?

  2. Quais endereços da lista abaixo são privados?

    192.168.10.1

    120.56.78.35

    172.16.57.47

    10.100.49.162

    200.120.42.6

  3. Qual item você adicionaria ao arquivo de hosts para atribuir 192.168.0.15 a example.com?

  4. Que efeito teria o comando a seguir?

    sudo ip -6 route add default via 2001:db8:0:abcd::1

Exercícios Exploratórios

  1. Cite o tipo de registro de DNS usado para atender às seguintes solicitações:

    • Dados textuais

    • Pesquisa reversa de endereço IP

    • Um domínio que não tem endereço próprio e precisa de outro domínio para obter essas informações

    • Servidor de email

  2. O Linux tem um recurso chamado bridging, o que ele faz e qual sua utilidade?

  3. Qual opção precisa ser fornecida ao comando ss para visualizar todos os sockets UDP estabelecidos?

  4. Qual comando exibe um resumo de todos os sockets em execução em um dispositivo Linux?

  5. A saída a seguir foi gerada pelo comando do exercício anterior. Quantos sockets TCP e UDP estão ativos?

    Total: 978 (kernel 0)
    TCP:   4 (estab 0, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0
    
    Transport Total     IP        IPv6
    *	  0         -         -
    RAW	  1         0         1
    UDP	  7         5         2
    TCP	  4         3         1
    INET	  12        8         4
    FRAG	  0         0         0

Resumo

Este tópico trata do uso de redes em seu computador Linux. Primeiro, aprendemos sobre os vários níveis de rede:

  • A camada de link, que conecta os dispositivos diretamente.

  • A camada de rede, que faz o roteamento entre as redes e um espaço de endereço global.

  • A camada de aplicativo, na qual os aplicativos se conectam.

Vimos como o IPv4 e o IPv6 são usados para endereçar computadores individuais e como o TCP e o UDP enumeram os sockets usados pelos aplicativos para se conectar. Também aprendemos como o DNS é usado para resolver nomes para endereços IP.

Comandos usados nos exercícios:

dig

Consulta informações de DNS e fornece dados detalhados sobre as consultas e respostas de DNS.

host

Consulta informações de DNS e fornece uma saída condensada.

ip

Configura o uso da rede no Linux, incluindo interfaces de rede, endereços e roteamento.

ping

Testa a conectividade com um dispositivo remoto.

ss

Mostra informações sobre sockets.

Respostas aos Exercícios Guiados

  1. Um engenheiro de rede precisa atribuir dois endereços IP à interface ens33 de um host, um endereço IPv4 (192.168.10.10/24) e um endereço IPv6 (2001:0:0:abcd:0:8a2e:0370:7334/64). Quais comandos ele deve usar para fazer isso?

    sudo ip addr add 192.168.10.10/24 dev ens33
    sudo ip addr add 2001:0:0:abcd:0:8a2e:0370:7334/64 dev ens33
  2. Quais endereços da lista abaixo são privados?

    192.168.10.1

    X

    120.56.78.35

    172.16.57.47

    X

    10.100.49.162

    X

    200.120.42.6

  3. Qual item você adicionaria ao arquivo de hosts para atribuir 192.168.0.15 a example.com?

    192.168.0.15  example.com
  4. Que efeito teria o comando a seguir?

    sudo ip -6 route add default via 2001:db8:0:abcd::1

    Ele adicionaria à tabela uma rota padrão que envia todo o tráfego IPv6 ao roteador com o endereço interno 2001:db8:0:abcd::1.

Respostas aos Exercícios Exploratórios

  1. Cite o tipo de registro de DNS usado para atender às seguintes solicitações:

    • Dados textuais

      TXT

    • Pesquisa reversa de endereço IP

      PTR

    • Um domínio que não tem endereço próprio e precisa de outro domínio para obter essas informações

      CNAME

    • Servidor de email

      MX

  2. O Linux tem um recurso chamado bridging, o que ele faz e qual sua utilidade?

    Um bridge conecta múltiplas interfaces de rede. Todas as interfaces conectadas a um bridge podem se comunicar como se estivessem conectadas à mesma camada de link: Todos os dispositivos usam endereços IP da mesma sub-rede e não requerem um roteador para se conectar entre si.

  3. Qual opção precisa ser fornecida ao comando ss para visualizar todos os sockets UDP estabelecidos?

    A opção -u mostra todos os sockets UDP estabelecidos.

  4. Qual comando exibe um resumo de todos os sockets em execução em um dispositivo Linux?

    O comando ss -s mostra um resumo de todos os sockets

  5. A saída a seguir foi gerada pelo comando do exercício anterior. Quantos sockets TCP e UDP estão ativos?

    Total: 978 (kernel 0)
    TCP:   4 (estab 0, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0
    
    Transport Total     IP        IPv6
    *	  0         -         -
    RAW	  1         0         1
    UDP	  7         5         2
    TCP	  4         3         1
    INET	  12        8         4
    FRAG	  0         0         0

    11 sockets TCP e UDP estão ativos.

Linux Professional Insitute Inc. Todos os direitos reservados. Visite o site dos Materiais Didáticos: https://learning.lpi.org
31/5000 Este trabalho está licenciado sob a Licença Creative Commons Atribuição-Uso Não-Comercial-NãoDerivativos 4.0 Internacional.

Próxima Lição

5.1 Segurança Básica e Identificação de Tipos de Usuários (5.1 Lição 1)

Ir para a próxima lição

Linux Professional Insitute Inc. Todos os direitos reservados. Visite o site dos Materiais Didáticos: https://learning.lpi.org
31/5000 Este trabalho está licenciado sob a Licença Creative Commons Atribuição-Uso Não-Comercial-NãoDerivativos 4.0 Internacional.

A LPI é uma organização sem fins lucrativos.

© 2023 O Linux Professional Institute (LPI) é um organismo de apoio aos profissionais de Open Source e referência mundial em certificação. Com mais de 200.000 pessoas certificadas, somos o principal organismo de certificação independente para Linux e Open Source do mundo. O LPI certificou profissionais de mais de 180 países, oferece exames em diversos idiomas e tem centenas de parcerias de formação em todo o globo.

Nossa missão é proporcionar oportunidades econômicas e criativas para todos, tornando universalmente acessível a certificação de conhecimentos e competências em matéria de Open Source.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Entre em Contato
  • Política de Privacidade e Cookies

Encontrou um erro ou quer ajudar a aprimorar esta página? Escreva pra nós.

© 1999–2023 The Linux Professional Institute Inc. Todos os direitos reservados.