Índice
Dica | |
---|---|
Para um guia moderno específico Debian sobre rede, veja O Livro de Mão do Administrador Debian — Configurar a Rede. |
Vamos rever a infra-estrutura básica de rede do sistema Debian moderno.
Tabela 5.1. Lista de ferramentas de configuração de rede
pacotes | popcon | tamanho | tipo | descrição |
---|---|---|---|---|
network-manager
|
V:392, I:459 | 15542 | config::NM | NetworkManager (daemon): gere a rede automaticamente |
network-manager-gnome
|
V:121, I:369 | 5583 | config::NM | NetworkManager (frontend do GNOME) |
netplan.io
|
V:1, I:5 | 319 | config::NM+networkd | Netplan (generator): Unified, declarative interface to NetworkManager and systemd-networkd backends |
ifupdown
|
V:608, I:979 | 199 | config::ifupdown | ferramenta standard para ativar e desativar a rede (especifico de Debian) |
isc-dhcp-client
|
V:217, I:981 | 2875 | config::low-level | Cliente DHCP |
pppoeconf
|
V:0, I:5 | 186 | config::helper | ajudante de configuração para ligação PPPoE |
wpasupplicant
|
V:353, I:513 | 3862 | config::helper | suporte de cliente para WPA e WPA2 (IEEE 802.11i) |
wpagui
|
V:0, I:1 | 774 | config::helper | Cliente GUI Qt para o wpa_supplicant |
wireless-tools
|
V:179, I:244 | 292 | config::helper | ferramentas para manipular Extensões Wireless do Linux |
iw
|
V:34, I:475 | 302 | config::helper | tool for configuring Linux wireless devices |
iproute2
|
V:736, I:972 | 3606 | config::iproute2 | iproute2, IPv6 e outras configurações
avançadas de rede: ip (8), tc (8), etc |
iptables
|
V:319, I:718 | 2414 | config::Netfilter | ferramentas administrativas para filtragem de pacotes e NAT (Netfilter) |
nftables
|
V:106, I:701 | 182 | config::Netfilter | administration tools for packet filtering and NAT (Netfilter) (successor to {ip,ip6,arp,eb}tables) |
iputils-ping
|
V:194, I:997 | 122 | test | teste de acessibilidade de rede de uma máquina remota pelo nome-de-máquina ou endereço IP (iproute2) |
iputils-arping
|
V:3, I:36 | 50 | test | teste de acessibilidade de rede de uma máquina remota especificado pelo endereço ARP |
iputils-tracepath
|
V:2, I:30 | 47 | test | rastreia o caminho de rede até uma máquina remota |
ethtool
|
V:95, I:267 | 739 | test | mostra ou altera as definições de um aparelho Ethernet |
mtr-tiny
|
V:5, I:46 | 156 | test::low-level | rastreia o caminho de rede até uma máquina remota (curses) |
mtr
|
V:4, I:41 | 209 | test::low-level | rastreia o caminho de rede até uma máquina remota (curses e GTK) |
gnome-nettool
|
V:0, I:17 | 2492 | test::low-level | ferramentas para operações comuns de informação de rede (GNOME) |
nmap
|
V:25, I:199 | 4498 | test::low-level | mapeamento de rede / sondagem de portos (Nmap, consola) |
tcpdump
|
V:17, I:175 | 1340 | test::low-level | analisador de tráfego de rede (Tcpdump, consola) |
wireshark
|
I:45 | 10417 | test::low-level | analisador de tráfego de rede (Wireshark, GTK) |
tshark
|
V:2, I:25 | 400 | test::low-level | analisador de tráfego de rede (consola) |
tcptrace
|
V:0, I:2 | 401 | test::low-level | produz um sumário das ligações a partir da saída do
tcpdump |
snort
|
V:0, I:0 | 2203 | test::low-level | sistema flexível de detecção de intrusos na rede (Snort) |
ntopng
|
V:0, I:1 | 15904 | test::low-level | mostra a utilização da rede num navegador web |
dnsutils
|
V:16, I:280 | 276 | test::low-level | clientes de rede disponibilizados com BIND:
nslookup (8), nsupdate (8),
dig (8) |
dlint
|
V:0, I:3 | 53 | test::low-level | verifica informação de zona DNS a usar pesquisas do servidor de nomes |
dnstracer
|
V:0, I:1 | 59 | test::low-level | rastreia uma cadeia de servidores DNS até à fonte |
A resolução de nome de máquina também é suportada atualmente pelo mecanismo NSS (Name Service Switch). O fluxo desta resolução é o seguinte.
O ficheiro "/etc/nsswitch.conf
" com "hosts:
files dns
" dicta a ordem de resolução do nome de máquina. (Isto
substitui a funcionalidade antiga de "order
" em
"/etc/host.conf
".)
O método files
é invocado primeiro. Se o nome de máquina
for encontrado no ficheiro "/etc/hosts
", devolve um
endereço válido e termina. (O ficheiro "/etc/host.conf
"
contém "multi on
".)
O método dns
é invocado. Se o nome de máquina é
encontrado pela consulta ao Internet Domain Name System
(DNS) identificado pelo ficheiro
"/etc/resolv.conf
", devolve-le um endereço válido e
termina.
A typical workstation may be installed with its host name set to, e.g.,
"host_name" and its optional domain name set to an
empty string. Then, "/etc/hosts
" looks like the
following.
127.0.0.1 localhost
127.0.1.1 host_name
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Cada linha começa por um endereço IP e é seguida pelo hostname associado.
O endereço IP 127.0.1.1
na segunda linha deste exemplo
pode não ser encontrada nalguns outros sistemas tipo-Unix. O Instalador Debian cria esta entrada para um
sistema sem um endereço IP permanente como contenção para algum software
(p.e., GNOME) conforme é documentado no bug
#719621.
The host_name matches the hostname defined in the
"/etc/hostname
" (see Secção 3.7.1, “O nome da máquina”).
Para um sistema com um endereço IP permanente, esse endereço IP permanente
deve ser utilizado aqui em vez do 127.0.1.1
.
Para um sistema com um endereço IP permanente e um nome de domínio totalmente qualificado (FQDN) disponibilizado pelo Sistema de Nomes de Domínio (DNS), o nome_máquina e nome_domínio canónicos devem ser utilizados em vez de apenas nome_máquina.
O "/etc/resolv.conf
" é um ficheiro estático se o pacote
resolvconf
não estiver instalado. Se instalado, é uma
ligação simbólica. De qualquer modo, contém informação que inicializa as
rotinas de resolução de nomes. Se o DNS existir no
IP="192.168.11.1
", contém o seguinte.
nameserver 192.168.11.1
O pacote resolvconf
faz deste
"/etc/resolv.conf
" uma ligação simbólica e gere o
conteúdo dele automaticamente pelos scripts hook.
For the PC workstation on the typical adhoc LAN environment, the hostname
can be resolved via Multicast DNS (mDNS)
in addition to the basic files
and dns
methods.
Avahi disponibiliza uma infraestrutura para Multicast DNS Service Discovery em Debian.
É o equivalente de Apple Bonjour / Apple Rendezvous.
O pacote de plugin libnss-mdns
disponibiliza resolução de
nomes de máquinas via mDNS para a funcionalidade Name Service Switch (NSS)
do GNU da Biblioteca C do GNU (glibc).
The "/etc/nsswitch.conf
" file should have stanza like
"hosts: files mdns4_minimal [NOTFOUND=return] dns
" (see
/usr/share/doc/libnss-mdns/README.Debian
for other
configurations).
A host name suffixed with the ".local" pseudo-top-level domain is resolved by
sending a mDNS query message in a multicast UDP packet using IPv4 address
"224.0.0.251
" or IPv6 address
"FF02::FB
".
Nota | |
---|---|
A expansão Top-Level Domains genéricos (gTLD) no Domain Name System está em desenvolvimento. Tenha cuidado com a colisão de nomes quando escolher um nome de domínio usado apenas dentro da LAN. |
Nota | |
---|---|
Use of packages such as |
The systemd uses "Predictable Network Interface
Names" such as "enp0s25
".
Vamos nos lembrar das gamas de endereços do IPv4 de 32 bits em cada classe reservada para utilização em redes de área local (LANs) pelo rfc1918. É garantido que estes endereços não estejam em conflito com quaisquer endereços na Internet.
Nota | |
---|---|
IP address written with colon are IPv6
address, e.g., " |
Tabela 5.2. Lista de gamas de endereços de rede
Classe | endereços de rede | máscara de rede | máscara de rede /bits | number of subnets |
---|---|---|---|---|
A | 10.x.x.x | 255.0.0.0 | /8 | 1 |
B | 172.16.x.x — 172.31.x.x | 255.255.0.0 | /16 | 16 |
C | 192.168.0.x — 192.168.255.x | 255.255.255.0 | /24 | 256 |
Nota | |
---|---|
Se for atribuído um destes endereços a uma máquina, então essa máquina não poderá aceder à Internet directamente mas terá de aceder através de uma gateway que age como um proxy para serviços individuais ou então fará Network Address Translation(NAT). O router de banda larga geralmente executa NAT para o ambiente LAN do consumidor. |
Apesar da maioria dos aparelhos de hardware serem suportados pelo sistema Debian, existem alguns aparelhos de rede que necessitam de firmware não-livre DFSG para os suportar. Por favor veja Secção 9.10.5, “Controladores de hardware e firmware”.
As interfaces de rede são tipicamente iniciadas em
"networking.service
" para a interface
lo
e "NetworkManager.service
" para as
outras interfaces em sistemas Debian modernos sob
systemd
.
Debian can manage the network connection via management daemon software such as NetworkManager (NM) (network-manager and associated packages).
Vêm com as suas próprias GUIs e programas de linha de comandos como as suas interfaces de utilizador.
Vêm com os daemons próprios como os backends deles.
Permitem uma ligação fácil do seu sistema à Internet.
Permitem gestão fácil de configuração de redes com e sem fios.
Permitem-nos configurar a rede independentemente do pacote legacy
ifupdown
.
Nota | |
---|---|
Não utilize estas ferramentas de configuração de rede automáticas em servidores. Estas são destinadas principalmente para os utilizadores móveis em portáteis. |
Estas ferramentas modernas de configuração de rede necessitam ser
correctamente configuradas para evitar entrarem em conflito com o pacote
legacy ifupdown
e o ficheiro de configuração dele
"/etc/network/interfaces
".
Official documentations for NM on Debian are provided in
"/usr/share/doc/network-manager/README.Debian
".
Essencialmente, a configuração de rede para desktop é feita como a seguir.
Tornar o utilizador de ambiente de trabalho, p.e. foo
,
pertencente ao grupo "netdev
" com o seguinte (Em
alternativa, em ambientes de trabalho modernos como o GNOME e o KDE, faça-o
automaticamente através de D-bus).
$ sudo usermod -a -G foo netdev
Mantenha a configuração de "/etc/network/interfaces
" tão
simples como o seguinte.
auto lo iface lo inet loopback
Restart NM by the following.
$ sudo systemctl restart network-manager
Configure a sua rede através da GUI.
Nota | |
---|---|
Only interfaces which are not listed in
" |
Dica | |
---|---|
If you wish to extend network configuration capabilities of NM, please seek
appropriate plug-in modules and supplemental packages such as
|
Sob systemd, a rede pode ser configurada em
/etc/systemd/network/
. Veja
systemd-resolved
(8), resolved.conf
(5)
e systemd-networkd
(8).
Isto permite a configuração moderna de rede sem GUI.
Uma configuração de cliente DHCP pode ser definida ao criar
/etc/systemd/network/dhcp.network
". Ex.:
[Match] Name=en* [Network] DHCP=yes
Uma configuração de rede estática pode ser definida ao criar
"/etc/systemd/network/static.network
". Ex.:
[Match] Name=en* [Network] Address=192.168.0.15/24 Gateway=192.168.0.1
The modern network configuration for cloud may use
cloud-init
and netplan.io
packages
(see Secção 3.7.4, “Cloud system initialization”).
The netplan.io
package supports
systemd-networkd
and NetworkManager
as
its network configuration backends, and enables the declarative network
configuration using YAML data. When you change
YAML:
Run "netplan generate
" command to generate all the
necessary backend configuration from YAML.
Run "netplan apply
" command to apply the generated
configuration to the backends.
See "Netplan documentation",
netplan
(5), netplan-generate
(8), and
netplan-apply
(8).
See also "Cloud-init
documentation" (especially around "Configuration sources" and "Netplan Passthrough") for how
cloud-init
can integrate netplan.io
configuration with alternative data sources.
A DHCP client configuration can be set up by creating a data source file
"/etc/netplan/50-dhcp.yaml
":
network: version: 2 ethernets: all-en: match: name: "en*" dhcp4: true dhcp6: true
A static network configuration can be set up by creating a data source file
"/etc/netplan/50-static.yaml
":
network: version: 2 ethernets: eth0: addresses: - 192.168.0.15/24 routes: - to: default via: 192.168.0.1
For the low level network configuration on Linux, use the iproute2 programs (ip
(8), …) .
Os comandos Iproute2 oferecem capacidades completas de configuração de rede de baixo nível. Aqui está uma tabela de traduções dos comandos net-tools obsoletos para os novos comandos iproute2 etc.
Tabela 5.3. Tabela de tradução dos comandos obsoletos net-tools
para
os novos comandos iproute2
ferramentas de rede obsoletas | novo iproute2 etc. | manipulação |
---|---|---|
ifconfig (8) |
ip addr |
endereço de protoco (IP ou IPv6) num aparelho |
route (8) |
ip route |
entrada na tabela de rotas |
arp (8) |
ip neigh |
entrada na cache ARP ou NDISC |
ipmaddr |
ip maddr |
endereço multicast |
iptunnel |
ip tunnel |
túnel sobre IP |
nameif (8) |
ifrename (8) |
nomeia as interfaces de rede baseadas no endereço MAC |
mii-tool (8) |
ethtool (8) |
Definições de aparelho Ethernet |
See ip
(8) and Linux Advanced Routing &
Traffic Control.
Pode usar comandos de rede de baixo nível como a seguir em segurança pois eles não mudam a configuração de rede.
Tabela 5.4. Lista de comandos de rede de baixo nível
comando | descrição |
---|---|
ip addr show |
mostra o estado de ligação e endereço das interfaces ativas |
route -n |
mostra toda a tabela de rotas em endereços numéricos |
ip route show |
mostra toda a tabela de rotas em endereços numéricos |
arp |
mostra o conteúdo atual das tabelas de cache ARP |
ip neigh |
mostra o conteúdo atual das tabelas de cache ARP |
plog |
mostra o log do daemon ppp |
ping yahoo.com |
verifica a ligação de Internet para "yahoo.com " |
whois yahoo.com |
verifica quem registou "yahoo.com " na base de dados de
domínios |
traceroute yahoo.com |
rastreia a ligação Internet até "yahoo.com " |
tracepath yahoo.com |
rastreia a ligação Internet até "yahoo.com " |
mtr yahoo.com |
rastreia a ligação Internet até "yahoo.com "
(repetidamente) |
dig [@servidor-dns.com] exemplo.com [{a|mx|any}] |
verifica os registos DNS de
"exemplo.com " pelo "servidor-dns.com "
para um registo "a ", "mx ", ou
"any " |
iptables -L -n |
verifica o filtro de pacotes |
netstat -a |
procura todos os portos abertos |
netstat -l --inet |
procura portos a escutar |
netstat -ln --tcp |
procura portos TCP a escutar (numérico) |
dlint exemplo.com |
verifica a informação da zona DNS de "exemplo.com " |
Dica | |
---|---|
Algumas destas ferramentas de configuração de baixo nível residem em
" |
A optimização de rede genérica está para além do objetivo desta documentação. Apenas toco em assuntos pertinentes às ligações de grau de consumidor.
Tabela 5.5. Lista de ferramentas de optimização de rede
pacotes | popcon | tamanho | descrição |
---|---|---|---|
iftop
|
V:7, I:100 | 93 | mostra informação da utilização de largura de banda numa interface de rede |
iperf
|
V:3, I:43 | 360 | ferramenta de medição da largura de banda do Protocolo Internet |
ifstat
|
V:0, I:7 | 60 | InterFace STATistics Monitoring |
bmon
|
V:1, I:18 | 144 | monitor de largura de banda portável e estimador de taxas |
ethstatus
|
V:0, I:3 | 40 | script que mede rapidamente a transferência efectiva de um aparelho de rede |
bing
|
V:0, I:0 | 80 | testador de largura de banda empírica estocástica |
bwm-ng
|
V:1, I:13 | 95 | monitor de largura de banda pequeno e simples baseado em consola |
ethstats
|
V:0, I:0 | 23 | monitor de estatísticas de Ethernet baseado em consola |
ipfm
|
V:0, I:0 | 82 | ferramenta de análise de largura de banda |
NM normally sets optimal Maximum Transmission Unit (MTU) automatically.
In some occasion, you may wish to set MTU manually after experiments with
ping
(8) with "-M do
" option to send a
ICMP packet with various data packet size. MTU is the maximum succeeding
data packet size without IP fragmentation plus 28 bytes for the IPv4 and
plus 48 bytes for the IPv6. For example the following finds MTU for IPv4
connection to be 1460 and MTU for IPv6 connection to be 1500.
$ ping -4 -c 1 -s $((1500-28)) -M do www.debian.org PING (149.20.4.15) 1472(1500) bytes of data. ping: local error: message too long, mtu=1460 --- ping statistics --- 1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms $ ping -4 -c 1 -s $((1460-28)) -M do www.debian.org PING (130.89.148.77) 1432(1460) bytes of data. 1440 bytes from klecker-misc.debian.org (130.89.148.77): icmp_seq=1 ttl=50 time=325 ms --- ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 325.318/325.318/325.318/0.000 ms $ ping -6 -c 1 -s $((1500-48)) -M do www.debian.org PING www.debian.org(mirror-csail.debian.org (2603:400a:ffff:bb8::801f:3e)) 1452 data bytes 1460 bytes from mirror-csail.debian.org (2603:400a:ffff:bb8::801f:3e): icmp_seq=1 ttl=47 time=191 ms --- www.debian.org ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 191.332/191.332/191.332/0.000 ms
Este processo é a descoberta do Caminho
MTU (PMTU) (RFC1191) e o comando
tracepath
(8) pode automatizar isto.
Tabela 5.6. Regras básicas para o valor MTU óptimo
ambiente de rede | MTU | racional |
---|---|---|
Ligação Dial-up (IP: PPP) | 576 | standard |
Ligação Ethernet (IP: DHCP ou fixo) | 1500 | standard e predefinido |
In addition to these basic guide lines, you should know the following.
Qualquer utilização de métodos de túnel (VPN etc.) pode reduzir o MTU óptimo pelo excesso que adicionam.
O valor MTU não deve exceder o valor PMTU determinado experimentalmente.
O maior valor MTU é geralmente melhor quando são conhecidas outras limitações.
O tamanho de segmento máximo (MSS) é usado como uma alternativa ao tamanho do pacote. As relações entre MSS e MTU são as seguintes.
MSS = MTU - 40 para IPv4
MSS = MTU - 60 para IPv6
Nota | |
---|---|
A optimização baseada no |
The TCP throughput can be maximized by adjusting TCP buffer size parameters as in "TCP tuning" for the modern high-bandwidth and high-latency WAN. So far, the current Debian default settings serve well even for my LAN connected by the fast 1G bps FTTP service.
Netfilter disponibiliza uma infra-estrutura para firewall de estado e tradução de endereços de rede (NAT) com módulos do kernel Linux (veja Secção 3.9, “A inicialização de módulos do kernel”).
Tabela 5.7. Lista de ferramentas de firewall
pacotes | popcon | tamanho | descrição |
---|---|---|---|
nftables
|
V:106, I:701 | 182 | administration tools for packet filtering and NAT (Netfilter) (successor to {ip,ip6,arp,eb}tables) |
iptables
|
V:319, I:718 | 2414 | ferramentas de administração para netfilter
(iptables (8) para IPv4, ip6tables (8)
para IPv6) |
arptables
|
V:0, I:1 | 100 | ferramentas de administração para netfilter
(arptables (8) para ARP) |
ebtables
|
V:14, I:29 | 276 | ferramentas de administração para netfilter
(ebtables (8) para criação de pontes Ethernet) |
iptstate
|
V:0, I:2 | 119 | monitoriza continuamente o estado do netfilter (semelhante ao
top (1)) |
ufw
|
V:55, I:77 | 859 | Uncomplicated Firewall (UFW) is a program for managing a netfilter firewall |
gufw
|
V:5, I:10 | 3660 | graphical user interface for Uncomplicated Firewall (UFW) |
firewalld
|
V:11, I:16 | 2613 | firewalld is a dynamically managed firewall program with support for network zones |
firewall-config
|
V:0, I:3 | 1163 | graphical user interface for firewalld |
shorewall-init
|
V:0, I:0 | 88 | Inicialização de Shoreline Firewall |
shorewall
|
V:3, I:8 | 3090 | Shoreline Firewall, gerador de ficheiro de configuração netfilter |
shorewall-lite
|
V:0, I:0 | 71 | Shoreline Firewall, gerador de ficheiro de configuração (versão leve) netfilter |
shorewall6
|
V:0, I:1 | 1334 | Shoreline Firewall, gerador de ficheiro de configuração (versão IPv6) netfilter |
shorewall6-lite
|
V:0, I:0 | 71 | Shoreline Firewall, gerador de ficheiro de configuração (IPv6, versão light) netfilter |
O principal programa de utilizador para o netfilter é o iptables
(8). Pode
configurar manualmente e interativamente o netfilter a partir da shell, gravar o estado dele
com iptables-save
(8) e restaurá-lo via script init com
iptables-restore
(8) após o reiniciar do sistema.
Scripts de ajuda de configuração como o shorewall facilitam este processo.
See documentations at Netfilter
Documentation (or in
"/usr/share/doc/iptables/html/
").
Dica | |
---|---|
Apesar destes terem sido escritos para o Linux 2.4, ambos comandos |