praktische Verwendung der Datei / etc / networks

18

Was ist die praktische Verwendung von /etc/networksDateien? Soweit ich weiß, kann man in dieser Datei Netzwerken Namen geben. Beispielsweise:

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:~# 

Wenn ich jedoch versuche, diesen Netzwerknamen beispielsweise in einem ipDienstprogramm zu verwenden, funktioniert dies nicht:

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:~#

Was ist die praktische Verwendung von /etc/networksDateien?

Martin
quelle

Antworten:

15

Wie in der Handbuchseite beschrieben , soll die /etc/networksDatei symbolische Namen für Netzwerke beschreiben. Mit Netzwerk ist die Netzwerkadresse gemeint, die .0am Ende mit einem Tailing versehen ist . Es werden nur einfache Netze der Klasse A, B oder C unterstützt.

In Ihrem Beispiel ist die google-dnsEingabe falsch. Es ist kein A-, B- oder C-Netzwerk. Es ist eine IP-Adresse-Hostname-Beziehung, zu der es gehört /etc/hosts. Eigentlich ist der defaultEintrag auch nicht konform.

Stellen wir uns vor, Sie haben eine IP-Adresse 192.168.1.5aus Ihrem Unternehmensnetzwerk. Ein Eintrag in /etc/networkkönnte dann sein:

corpname 192.168.1.0

Wenn Sie Dienstprogramme wie routeoder verwenden netstat, werden diese Netzwerke übersetzt (wenn Sie die Auflösung nicht mit dem -nFlag unterdrücken ). Eine Routing-Tabelle könnte dann so aussehen:

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
Chaos
quelle
4

Der ipBefehl verwendet auch keinen Hostnamen für die Eingabe, sodass Ihr Beispiel kaum relevant ist. Sie haben auch einen Hostnamen eingegeben /etc/networks, keinen Netzwerknamen!

Einträge von /etc/networkswerden von Tools verwendet, die versuchen, Zahlen in Namen umzuwandeln, z. B. der (veraltete) routeBefehl. Ohne einen passenden Eintrag zeigt es:

# 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

Wenn ich jetzt eine Zeile hinzufüge mylocalnet 192.168.0.0zu /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

In der Praxis wird es nie wirklich benutzt.

wurtel
quelle