Когда требуется сетевое, широковещательное и шлюз для настройки сетевого интерфейса вручную?

9

Ссылка

В приведенном выше URL говорится следующее. Но мне это непонятно, когда они факультативны, а когда нет. Не могли бы вы предоставить мне ссылку на ссылки, которые описывают это? Спасибо.

Если вы настраиваете его вручную, тогда что-то вроде этого будет устанавливать шлюз по умолчанию (сеть, широковещательная передача и шлюз являются необязательными):

auto eth0
iface eth0 inet static
    address 192.0.2.7
    netmask 255.255.255.0
    gateway 192.0.2.254
    
задан user1424739 11.03.2014 в 01:08
источник

1 ответ

21

Как настроить статический IP-адрес и почему

Обратите внимание! Я не говорю о других способах настройки сети, например NetworkManager. Любое устройство, указанное в /etc/network/interfaces , не коснулось NM

Чтобы иметь возможность общаться через IP-сеть (IPv4 и IPv6), компьютер должен знать, какой IP-адрес у него есть. Поэтому поэтому директива address необходима, чтобы сообщить компьютеру, что.

Когда компьютер хочет поговорить с другим компьютером, он использует этот IP-адрес других компьютеров, чтобы проверить, находится ли этот компьютер в одной сети, локальной сети. Если это так, компьютер может напрямую общаться с другим компьютером.

Итак, как компьютер знает, когда он общается с компьютером в той же локальной сети? Используя сети netmask , где чистая часть адреса установлена ​​на единицы, а часть хоста - на нули. Таким образом, выполняя побитовое И-операцию между каждым битом в IP-адресе и сетевой маской, мы получим сетевой адрес IP-адреса, где хост-часть равна нулю. Поэтому, если мы делаем это на IP-адресах компьютеров и на другом IP-адресе компьютеров, мы получаем каждый сетевой адрес. Если они равны, это означает, что компьютеры находятся в одной сети и могут разговаривать напрямую друг с другом.

Если сетевые адреса не равны, они находятся в разных ЛВС и не могут напрямую связываться друг с другом. Затем компьютеру необходимо использовать специальный компьютер, подключенный к другим локальным сетям. Этот компьютер является маршрутизатором (который также может иметь брандмауэр и NAT). Поэтому, когда компьютер хочет поговорить с другими компьютерами за пределами локальной сети, ему необходимо знать адрес этого компьютера, установленный с помощью директивы gateway . Если другой интерфейс уже установил значение gateway , вы не должны и не должны устанавливать другую директиву шлюза для этого интерфейса. Директива gateway устанавливает маршрут по умолчанию для компьютера, поэтому вам нужно только один для IPv4 и только один для IPv6 на каждом компьютере. Этот сетевой адрес можно установить вручную с помощью директивы network .

Когда компьютер хочет общаться со всеми компьютерами в локальной сети, он использует широковещательный адрес. Этот адрес прослушивается всеми компьютерами в той же локальной сети. Это в основном то же самое, что и сетевой адрес, за исключением того, что хост-часть - это не все нули, а все остальные. Этот широковещательный адрес задается директивой broadcast в интерфейсе.

Интерфейс network адрес нужно только вычислить один раз и обычно правильно вычисляется из этих директив address и netmask . То же самое с адресом broadcast . Поэтому вам не нужно их устанавливать. Фактически, если вы установите один или оба на неправильные значения, вы можете потерять соединение с Интернетом и другими компьютерами в своей локальной сети. Поэтому, если у вас нет каких-то странных значений, позвольте компьютеру рассчитать их для вас.

Таким образом, минимальные статические настройки или строфа в /etc/network/interfaces могут выглядеть так для устройства eth1 в частной сети:

iface eth1 static inet
     address   192.168.44.10
     netmask   255.255.255.0
     gateway   192.168.44.1

Как работает разрешение имен и как он привязан к DNS.

Доменные имена используются для преобразования между простым для людей способом чтения и запоминания имен доменов и компьютеров, которые не так легко запомнить IP-адрес, упомянутый выше. Это называется Разрешение имен .

Обычно это контролируется файлом /etc/nsswitc.conf и строкой, начинающейся с hosts: . Если вы попросите компьютер подключиться к компьютеру my.example.com , он рассмотрит этот файл и попытается решить IP-адрес с именем my.example.com . Этот файл фактически не отвечает на вопрос «какой IP-адрес у my.example.com есть», он просто говорит компьютеру, где он может найти ответ.
Обычно он сначала пытается загрузить файл /etc/hosts для статических локальных имен, а затем avahi mDNS для динамических локальных имен, а затем резуллер имени домена DNS для получения имени из Интернета.

Если некоторые из них медленно реагируют на ваши вопросы, может показаться, что компьютер застрял на некоторое время. Поэтому, если вы это сделаете, сначала проверьте разрешение имен.

Таким образом, добавив статические адреса, вы можете просто добавить их в файл /etc/hosts . Кстати, если у вас есть статический адрес, вы, вероятно, должны изменить IP-адрес для своего устройства на свой IP-адрес, а не по умолчанию 127.0.1.1 (который находится в локальной сети, где localhost - 127.0.0.1 ). Это работает только для клиентов, а не для серверов.

Динамические адреса, которые вы получаете с компьютеров Linux с пакетом avahi и с компьютеров Apple (и MS Windows с iTunes?). Это обрабатывается «магия», и вам не нужно будет это исправлять.

DNS используется для доступа в Интернет, и вам нужно сообщить компьютеру, на котором эти DNS-серверы вы хотите использовать, какой IP-адрес использовать и какой домен DNS по умолчанию.

Это делается в файле /etc/resolv.conf и может быть статически настроен. Это не так хорошо работает в нашем не очень статичном мире, поэтому обычно у вас есть пакет с именем resolvconf . Это позволит вам настроить эти параметры в файле /e/n/interfaces .

Итак, если мы предположим, что хотим по умолчанию по умолчанию добавить один из DNS-серверов Googles, 8.8.8.8 и DNS-сервер вашего провайдера 192.0.2.1 и ваш домен my.example.org , то вы просто отредактируете файл /etc/network/interfaces и добавьте эти две строки в строфу для статического устройства.

    dns-nameservers   8.8.8.8  192.0.2.10
    dns-search        my.example.org

Вы также можете заметить, что DNS-резольвер будет использовать только три сервера DNS. Посмотрите это в man -page resolv.conf . Как правило, для получения дополнительной информации вы можете использовать команды man nsswitch.conf , man resolv.conf и man resolvconf .

Также обратите внимание, что я использую домен example.com и example.org и IP-сеть 192.0.2.0/24 для DNS-сервера ISP. Они явно определены для использования в примерах. См. Ссылка или Ссылка и rfc5735

Как вы можете проверить, что это работает?
Вы можете сделать это разными способами, но я обычно использую

getent hosts my.test.com

, чтобы проверить всю настройку для разрешения имен. Если я просто хочу проверить, работает ли DNS, я использую одну из следующих команд:

host my.test.com
dig my.test.com

Но помните, что они проверяют только DNS через настройки в файле /etc/resolv.conf , а не на /etc/nsswitch.conf . Это может быть то, что вы хотите, или нет.

    
ответ дан Anders 11.03.2014 в 19:40