практическое использование файла / etc / networks

18

Каково практическое использование /etc/networksфайла? Как я понимаю, в этом файле можно дать имена сетям. Например:

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

Однако, если я пытаюсь использовать это имя сети, например, в ipутилите, он не работает:

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

Каково практическое использование /etc/networksфайла?

Мартин
источник

Ответы:

15

Как написано на странице руководства , /etc/networksфайл должен описывать символические имена для сетей. Под сетью подразумевается сетевой адрес с хвостами .0в конце. Поддерживаются только простые сети класса A, B или C.

В вашем примере google-dnsзапись неверна. Это не сеть A, B или C. Это отношение IP-адрес-имя-хоста, поэтому оно принадлежит /etc/hosts. На самом деле defaultзапись также не соответствует.

Представим, что у вас есть IP-адрес 192.168.1.5из корпоративной сети. Запись /etc/networkможет быть:

corpname 192.168.1.0

При использовании таких утилит, как routeили netstat, эти сети переводятся (если вы не подавляете разрешение с помощью -nфлага). Таблица маршрутизации может тогда выглядеть так:

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
хаос
источник
4

Команда ipникогда не использует имя хоста для ввода, поэтому ваш пример вряд ли уместен. Также вы указали имя хоста /etc/networks, а не имя сети!

Записи из /etc/networksиспользуются инструментами, которые пытаются преобразовать числа в имена, например (устаревшая) routeкоманда. Без подходящей записи это показывает:

# 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

Если я сейчас добавлю строку mylocalnet 192.168.0.0в /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

На практике это никогда не используется.

wurtel
источник