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

https://wiki.debian.org/NetworkConfiguration

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

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

auto eth0
iface eth0 inet static
    address 192.0.2.7
    netmask 255.255.255.0
    gateway 192.0.2.254

1 ответ

Как настроить статический 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 для динамических локальных имен и затем resovler 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 страница resolv.conf, Как обычно, вы можете использовать команду man nsswitch.conf, man resolv.conf а также man resolvconf для дополнительной информации.

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

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

getent hosts my.test.com

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

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

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

Другие вопросы по тегам