Configuração de rede

Ubuntu envia com uma série de utilitários gráficos para configurar os seus dispositivos de rede. Este documento está orientado para administradores de servidores e centrar-se-á na gestão da sua rede na linha de comando.

Interfaces Ethernet

Interfaces Ethernet são identificadas pelo sistema usando nomes previsíveis de interface de rede. Estes nomes podem aparecer como eno1 ou enp0s25. No entanto, em alguns casos, uma interface pode ainda usar o estilo de nomenclatura kernel eth#.

Identificar interfaces Ethernet

Para identificar rapidamente todas as interfaces Ethernet disponíveis, pode usar o comando ip como mostrado abaixo.

ip a1: 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 forever2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:16:3e:e2:52:42 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 10.102.66.200/24 brd 10.102.66.255 scope global dynamic eth0 valid_lft 3257sec preferred_lft 3257sec inet6 fe80::216:3eff:fee2:5242/64 scope link valid_lft forever preferred_lft forever

Outra aplicação que pode ajudar a identificar todas as interfaces de rede disponíveis para o seu sistema é o comando lshw. Este comando fornece mais detalhes em torno das capacidades de hardware de adaptadores específicos. No exemplo abaixo, lshw mostra uma única interface Ethernet com o nome lógico de eth0 juntamente com informação de bus, detalhes do condutor e todas as capacidades suportadas.

sudo lshw -class network *-network description: Ethernet interface product: MT26448 vendor: Mellanox Technologies physical id: 0 bus info: [email protected]:01:00.0 logical name: eth4 version: b0 serial: e4:1d:2d:67:83:56 slot: U78CB.001.WZS09KB-P1-C6-T1 size: 10Gbit/s capacity: 10Gbit/s width: 64 bits clock: 33MHz capabilities: pm vpd msix pciexpress bus_master cap_list ethernet physical fibre 10000bt-fd configuration: autonegotiation=off broadcast=yes driver=mlx4_en driverversion=4.0-0 duplex=full firmware=2.9.1326 ip=192.168.1.1 latency=0 link=yes multicast=yes port=fibre speed=10Gbit/s resources: iomemory:24000-23fff irq:481 memory:3fe200000000-3fe2000fffff memory:240000000000-240007ffffff

Nomes lógicos de interface Ethernet

Nomes lógicos de interface também podem ser configurados através de uma configuração netplan. Se desejar controlar que interface recebe um determinado nome lógico, utilize as teclas match e set-name. A chave de correspondência é utilizada para encontrar um adaptador baseado em alguns critérios como endereço MAC, driver, etc. Então a tecla set-name pode ser usada para alterar o dispositivo para o nome logial desejado.

network: version: 2 renderer: networkd ethernets: eth_lan0: dhcp4: true match: macaddress: 00:11:22:33:44:55 set-name: eth_lan0

Ethernet Interface Settings

ethtool é um programa que exibe e altera as definições da placa Ethernet, tais como auto-negociação, velocidade da porta, modo duplex, e Wake-on-LAN. O seguinte é um exemplo de como visualizar características suportadas e configurações de uma interface Ethernet.

sudo ethtool eth4Settings for eth4: Supported ports: Supported link modes: 10000baseT/Full Supported pause frame use: No Supports auto-negotiation: No Supported FEC modes: Not reported Advertised link modes: 10000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: No Advertised FEC modes: Not reported Speed: 10000Mb/s Duplex: Full Port: FIBRE PHYAD: 0 Transceiver: internal Auto-negotiation: off Supports Wake-on: d Wake-on: d Current message level: 0x00000014 (20) link ifdown Link detected: yes

Endereçamento IP

A secção seguinte descreve o processo de configuração do endereço IP do seu sistema e gateway padrão necessário para a comunicação numa rede local e na Internet.

Atribuição de endereços IP temporários

Para configurações temporárias de rede, pode usar o comando ip que também se encontra na maioria dos outros sistemas operativos GNU/Linux. O comando ip permite-lhe configurar configurações que têm efeito imediato, no entanto não são persistentes e serão perdidas após um reinício.

Para configurar temporariamente um endereço IP, pode utilizar o comando ip da seguinte forma. Modifique o endereço IP e a máscara de sub-rede para corresponder às suas necessidades de rede.

sudo ip addr add 10.102.66.200/24 dev enp0s25

O ip pode então ser utilizado para configurar a ligação para cima ou para baixo.

ip link set dev enp0s25 upip link set dev enp0s25 down

Para verificar a configuração do endereço IP do enp0s25, pode utilizar o comando ip da seguinte maneira.

ip address show dev enp0s2510: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:16:3e:e2:52:42 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 10.102.66.200/24 brd 10.102.66.255 scope global dynamic eth0 valid_lft 2857sec preferred_lft 2857sec inet6 fe80::216:3eff:fee2:5242/64 scope link valid_lft forever preferred_lft forever6

Para configurar uma gateway padrão, pode utilizar o comando ip da seguinte maneira. Modifique o endereço padrão do gateway para corresponder aos seus requisitos de rede.

sudo ip route add default via 10.102.66.1

Para verificar a sua configuração padrão do gateway, pode usar o comando ip da seguinte maneira.

ip route showdefault via 10.102.66.1 dev eth0 proto dhcp src 10.102.66.200 metric 10010.102.66.0/24 dev eth0 proto kernel scope link src 10.102.66.20010.102.66.1 dev eth0 proto dhcp scope link src 10.102.66.200 metric 100 

Se necessitar de DNS para a sua configuração temporária de rede, pode adicionar endereços IP do servidor DNS no ficheiro /etc/resolv.conf. Em geral, a edição /etc/resolv.conf directamente não é recomendada, mas esta é uma configuração temporária e não persistente. O exemplo abaixo mostra como introduzir dois servidores DNS para /etc/resolv.conf, que deve ser alterado para servidores apropriados para a sua rede. Uma descrição mais longa da forma persistente adequada de fazer a configuração de cliente DNS encontra-se numa secção.

nameserver 8.8.8.8nameserver 8.8.4.4

Se já não precisar desta configuração e desejar purgar toda a configuração IP de uma interface, pode utilizar o comando ip com a opção flush, como se mostra abaixo.

ip addr flush eth0

Nota

Flushing the IP configuration using the ip command does not clear the contents of /etc/resolv.conf. Deve remover ou modificar manualmente essas entradas, ou reiniciar, o que também deve causar /etc/resolv.conf, que é uma ligação simbólica para /run/systemd/resolve/stub-resolv.conf, a ser reescrita.

Dynamic IP Address Assignment (DHCP Client)

Para configurar o seu servidor para utilizar DHCP para atribuição dinâmica de endereços, crie uma configuração netplan no ficheiro /etc/netplan/99_config.yaml. O exemplo abaixo assume que está a configurar a sua primeira interface Ethernet identificada como enp3s0.

network: version: 2 renderer: networkd ethernets: enp3s0: dhcp4: true

A configuração pode então ser aplicada utilizando o comando netplan.

sudo netplan apply

Atribuição de endereço IP estático

Para configurar o seu sistema para utilizar a atribuição de endereço estático, criar uma configuração netplan no ficheiro /etc/netplan/99_config.yaml. O exemplo abaixo assume que está a configurar a sua primeira interface Ethernet identificada como eth0. Altere os valores de endereços, gateway4, e nameservers para satisfazer os requisitos da sua rede.

network: version: 2 renderer: networkd ethernets: eth0: addresses: - 10.10.10.2/24 gateway4: 10.10.10.1 nameservers: search: addresses: 

A configuração pode então ser aplicada utilizando o comando netplan.

sudo netplan apply

Interface de loopback

A interface de loopback é identificada pelo sistema como lo e tem um endereço IP padrão de 127.0.0.1. Pode ser visualizada utilizando o comando ip.

ip address show lo1: 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

Name Resolution

Name Resolution as it relates to IP networking is the process of mapping IP addresses to hostnames, making it easier to identify resources on a network. A secção seguinte explicará como configurar correctamente o seu sistema para resolução de nomes utilizando registos DNS e estáticos de nomes de hosts.

Configuração de Cliente DNS

Tradicionalmente, o ficheiro /etc/resolv.conf era um ficheiro de configuração estática que raramente precisava de ser alterado ou automaticamente alterado através de ganchos de cliente DCHP. A configuração do servidor de nomes dos handles resolvidos pelo sistema, e deve ser interagido através do comando systemd-resolve. Netplan configura sistema-resolvido para gerar uma lista de nameservers e domínios para colocar em /etc/resolv.conf, que é um symlink:

/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

Para configurar o resolvedor, adicionar os endereços IP dos nameservers que são apropriados para a sua rede ao ficheiro de configuração netplan. Pode também adicionar uma lista opcional de sufixos de pesquisa DNS para corresponder aos nomes de domínio da sua rede. O ficheiro resultante pode parecer-se com o seguinte:

network: version: 2 renderer: networkd ethernets: enp0s25: addresses: - 192.168.0.100/24 gateway4: 192.168.0.1 nameservers: search: addresses: 

A opção de pesquisa também pode ser usada com vários nomes de domínio, de modo a que as consultas DNS sejam anexadas pela ordem em que são introduzidas. Por exemplo, a sua rede pode ter múltiplos sub-domínios para pesquisar; um domínio pai de example.com, e dois sub-domínios, sales.example.com e dev.example.com.

Se tiver vários domínios que deseja pesquisar, a sua configuração pode parecer-se com o seguinte:

network: version: 2 renderer: networkd ethernets: enp0s25: addresses: - 192.168.0.100/24 gateway4: 192.168.0.1 nameservers: search: addresses: 

Se tentar pingar um host com o nome de servidor1, o seu sistema consultará automaticamente o DNS para o seu Nome de Domínio Totalmente Qualificado (FQDN) na seguinte ordem:

  1. server1.example.com

  2. >p>server1.sales.example.com
  3. p>>server1.dev.example.com

se não forem encontrados resultados, o servidor DNS fornecerá um resultado não encontrado e a consulta DNS falhará.

Static Hostnames

Static Hostnames são mapeamentos hostname-to-IP definidos localmente, localizados no ficheiro /etc/hosts. As entradas no ficheiro hosts terão precedência sobre o DNS por defeito. Isto significa que se o seu sistema tentar resolver um nome de anfitrião e este corresponder a uma entrada em /etc/hosts, não tentará procurar o registo no DNS. Em algumas configurações, especialmente quando o acesso à Internet não é necessário, os servidores que comunicam com um número limitado de recursos podem ser convenientemente configurados para utilizar nomes de hosts estáticos em vez de DNS.

O seguinte é um exemplo de um ficheiro hosts onde um número de servidores locais foi identificado por simples nomes de hosts, pseudónimos e os seus equivalentes Nomes de Domínio Totalmente Qualificados (FQDN’s).

127.0.0.1 localhost127.0.1.1 ubuntu-server10.0.0.11 server1 server1.example.com vpn10.0.0.12 server2 server2.example.com mail10.0.0.13 server3 server3.example.com www10.0.0.14 server4 server4.example.com file

Nota

No exemplo acima, repare que a cada um dos servidores foram atribuídos pseudónimos para além dos seus nomes próprios e FQDN’s. Server1 foi mapeado para o nome vpn, server2 é referido como correio, server3 como www, e server4 como ficheiro.

Name Service Switch Configuration

A ordem pela qual o seu sistema selecciona um método de resolução de nomes de hosts para endereços IP é controlada pelo ficheiro de configuração Name Service Switch (NSS) /etc/nsswitch.conf. Como mencionado na secção anterior, tipicamente os nomes de hosts estáticos definidos nos sistemas /etc/hosts ficheiro têm precedência sobre os nomes resolvidos a partir do DNS. Segue-se um exemplo da linha responsável por esta ordem de procura de nomes de hosts no ficheiro /etc/nsswitch.conf.

hosts: files mdns4_minimal dns mdns4
  • p>files primeiro tenta resolver nomes de hosts estáticos localizados em /etc/hosts.
  • mdns4_minimal tentativas de resolver o nome utilizando o DNS Multicast.

  • p> significa que qualquer resposta de não encontrada pelo processo mdns4_minimal anterior deve ser tratada como autoritária e que o sistema não deve tentar continuar a procurar uma resposta.
  • p>dns representa uma consulta unicast DNS legada.
  • p>mdns4 representa uma consulta DNS Multicast.

Para modificar a ordem dos métodos de resolução de nomes acima mencionados, pode simplesmente alterar os anfitriões: string para o valor da sua escolha. Por exemplo, se preferir utilizar DNS Unicast legado versus DNS Multicast, pode alterar a string em /etc/nsswitch.conf como mostrado abaixo.

hosts: files dns mdns4_minimal mdns4

Bridging

Bridging multiple interfaces é uma configuração mais avançada, mas é muito útil em múltiplos cenários. Um cenário é a configuração de uma ponte com múltiplas interfaces de rede, e depois a utilização de uma firewall para filtrar o tráfego entre dois segmentos de rede. Outro cenário é a utilização de uma ponte num sistema com uma interface para permitir às máquinas virtuais o acesso directo à rede externa. O exemplo seguinte cobre este último cenário.

Configure a ponte editando a configuração do seu plano de rede encontrada em /etc/netplan/:

network: version: 2 renderer: networkd ethernets: enp3s0: dhcp4: no bridges: br0: dhcp4: yes interfaces: - enp3s0

Nota

Introduza os valores apropriados para a sua interface física e rede.

Aplique agora a configuração para activar a ponte:

sudo netplan apply

A nova interface da ponte deve agora estar pronta a funcionar. O brctl fornece informações úteis sobre o estado da ponte, controla quais as interfaces que fazem parte da ponte, etc. Ver man brctl para mais informações.

networkd-dispatcher para scripts de gancho pré-up, post-up, etc.

Utilizadores do antigo ifupdown podem estar familiarizados com a utilização de scripts de gancho (por exemplo, pré-up, post-up, etc.) no seu ficheiro de interfaces. A configuração Netplan não suporta actualmente scripts de gancho na sua definição de configuração.

Em vez de alcançar esta funcionalidade com o networkd renderer, os utilizadores podem utilizar o networkd-dispatcher. O pacote fornece aos utilizadores e pontos de gancho de pacotes quando são atingidos estados específicos da rede para ajudar a reagir ao estado da rede.

Nota: Se não estiver no Ubuntu Server, mas no Desktop a rede é conduzida pelo Network Manager – nesse caso precisaria de scripts NM Dispatcher em vez disso.

A FAQ do Netplan tem uma grande tabela que compara os tempos de eventos entre ifupdownsystemd-networkdnetwork-manager

É importante estar ciente de que esses ganchos correm asíquicos; isto é, não irão bloquear a transição para outro estado.

A FAQ do Netplan também tem um exemplo de conversão de um antigo ifupdown gancho para networkd-dispatcher.

Recursos

  • p> A página da Rede Wiki Ubuntu tem links para artigos que abrangem uma configuração de rede mais avançada.
  • p> O sítio da rede Wiki tem exemplos e documentação adicionais.
  • p> A página de manual netplan tem mais informações sobre netplan.
  • >p> A página de manual systemd-resolve tem detalhes sobre o comando systemd-resolve.
  • p> A página de manual sistema-resolvido tem mais informações sobre o serviço sistema-resolvido.
  • >li>>p> Para mais informações sobre pontes veja a página de exemplos netplan.io e a página Networking-Bridge da Fundação Linux.

>p> Última actualização há 5 meses. Ajude a melhorar este documento no fórum.