uso prático do arquivo / etc / networks

16

Qual é o uso prático do arquivo /etc/networks ? Pelo que entendi, pode-se dar nomes às redes neste arquivo. Por exemplo:

root@fw-test:~# cat /etc/networks
default         0.0.0.0
loopback        127.0.0.0
link-local      169.254.0.0
google-dns      8.8.4.4
root@fw-test:~# 

No entanto, se eu tentar usar esse nome de rede, por exemplo, em ip utility, isso não funcionará:

root@fw-test:~# ip route add google-dns via 104.236.63.1 dev eth0
Error: an inet prefix is expected rather than "google-dns".
root@fw-test:~# ip route add 8.8.4.4 via 104.236.64.1 dev eth0
root@fw-test:~#

Qual é o uso prático do arquivo /etc/networks ?

    
por Martin 17.04.2015 / 14:34

2 respostas

14

Como está escrito na página de manual , o arquivo /etc/networks deve descrever nomes simbólicos para redes. Com a rede, entende-se o endereço de rede com rejeição .0 no final. Apenas redes simples de Classe A, B ou C são suportadas.

No seu exemplo, a entrada google-dns está errada. Não é uma rede A, B ou C. É um relacionamento ip-address-hostname, portanto, pertence a /etc/hosts . Na verdade, a entrada default também não está em conformidade.

Vamos supor que você tenha um endereço IP 192.168.1.5 da sua rede corporativa. Uma entrada em /etc/network poderia então ser:

corpname 192.168.1.0

Ao usar utilitários como route ou netstat , essas redes são traduzidas (se você não suprimir a resolução com o sinal -n ). Uma tabela de roteamento poderia se parecer com:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
corpname        *               255.255.255.0   U     0      0        0 eth0
    
por 17.04.2015 / 14:56
4

O comando ip nunca usa um nome de host para entrada, então seu exemplo é pouco relevante. Além disso, você colocou um nome de host em /etc/networks , não um nome de rede!

As entradas de /etc/networks são usadas por ferramentas que tentam converter números em nomes, por exemplo, o comando (reprovado) route . Sem uma entrada adequada, mostra:

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.254   0.0.0.0         UG    0      0        0 eth0
192.168.0.0     *               255.255.254.0   U     0      0        0 eth0

Se eu agora adicionar uma linha mylocalnet 192.168.0.0 a /etc/networks :

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.254   0.0.0.0         UG    0      0        0 eth0
mylocalnet      *               255.255.254.0   U     0      0        0 eth0

Na prática, nunca é realmente usado.

    
por 17.04.2015 / 14:40