Когда требуется сеть, широковещание и шлюз для ручной настройки сетевого интерфейса?
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
часть. Это может быть то, что вы хотите, или нет.