Приветствую вас, товарищи линуксоиды! Сегодня мы продолжим рассмотрение настройки сети и интернета в linux. В данной части статьи я постараюсь раскрыть темы DHCP, DNS и маршрутизация. Перед прочтением данной статьи прочитайте первую часть.
Автоматическая настройка сети через DHCP
Часто для настройки компьютеров в сети используется протокол DHCP (dynamic host configuration protocol). Данный протокол позволяет быстро настраивать параметры сети автоматически при помощи запроса к DHCP-серверу. Получив запрос DHCP-сервер назначает клиенту ip-адрес из числа свободных и клиент может использовать его для работы в сети до следующей реконфигурации. Также сервер может выдавать клиентам другие параметры сети, такие как маска подсети, dns-сервера и шлюзы, но о них мы поговорим позже. Перед тем, как выполнять запрос на получение параметров от сети, необходимо правильно настроить сетевой интерфейс, для этого необходимо отредактировать уже знакомый вам файл /etc/network/interfaces. В данном файле необходимо добавить строку на подобии следующей:
iface eth0 inet dhcp
Итак, для того что-бы вручную осуществить запрос к dhcp серверу на получение настроек необходимо выполнить следующую команду:
dhclient eth0
Параметром команде dhclient мы передаем название сетевого интерфейса. После этого будет выполнена автоматическая настройка параметров. Зачастую параметры сети будут настраиваться автоматически при включении компьютера или активации сетевого подключения. Но иногда может понадобится выполнить этот запрос вручную, например в случае необходимости смены адреса или при недоступности DHCP-сервера в момент активации интерфейса.
Иногда вам может потребоваться освободить занятый вашим компьютером адрес, для этого выполните следующую команду:
dhclient -r eth0
Настройка DNS
DNS (domain name system) - распределенная система отвечающая за установление соответствия между символьными и цифровыми адресами компьютеров в сети. Т.е. данная система позволяет нам обращаться к компьютерам в сети по простому символическому имени, которое намного проще запомнить чем ip-адрес. Для того что-бы узнать ip-адрес машины по её доменному имени необходимо воспользоваться командой host:
host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 74.125.87.99
www.l.google.com has address 74.125.87.104
Как вы видите 74.125.87.104 ip-адрес всеми известной поисковой системы. И если вы наберете его в адресной строке своего браузера, то вы увидите что это google. Часто в локальных сетях есть свои dns-сервера, например если вы подключены к городской сети и получаете через неё доступ к Интернет, то в вашей сети должен быть свой сервер имён. Для того что-бы ваша система могла корректно обращаться к нему, вам необходимо настроить параметры dns, добавив ip-адрес dns-сервера в конфигурационный файл. Итак, отредактируйте от пользователя root файл /etc/resolve.conf:
nameserver 10.32.0.1
Теперь ваша машина будет знать, что 10.32.0.1 - это сервер имён.
Настройка параметров маршрутизации (шлюза)
Для настройки маршрутизации воспользуемся утилитой route. Стандартной задачей является установка шлюза по-умолчанию, часто это бывает необходимо для настройки доступа к интернет. Для того чтобы установить стандартный шлюз (gateway) воспользуйтесь следующей командой:
route add default gw 10.32.0.1
Данной командой мы устанавливаем стандартный шлюз (10.32.0.1), который будет принимать пакеты из сети при отсутствии других доступных маршрутов. После настройки всех маршрутов можно проверить правильность роутинга при помощи следующей команды:
route
Destination Gateway Genmask Flags Metric Ref Use Iface
localnet * 255.255.252.0 U 0 0 0 eth0
default 10.32.0.1 0.0.0.0 UG 0 0 0 eth0
Если вам нужно более детальная настройка маршрутизации, то я рекомендую вам прочитать справочное руководство к команде route.
Эти настройки действительны только до следующей перезагрузки системы, для того, чтобы настройки устанавливались автоматически необходимо добавить в файл /etc/network/interface следующие строки(от пользователя root):
gateway 10.32.0.1
Проверка соединения
После настройки сети полезно поверить работоспособность всех внесенных изменений. Для начала лучше перезагрузить сетевые параметры для этого выполните от root:
/etc/init.d/networking restart
Теперь можно проверить доступность какого-либо узла сети, для этого воспользуемся утилитой ping:
ping -c 4 10.32.0.1
PING 10.32.0.1 (10.32.0.1) 56(84) bytes of data.
64 bytes from 10.32.0.1: icmp_req=1 ttl=128 time=2.11 ms
64 bytes from 10.32.0.1: icmp_req=2 ttl=128 time=1.86 ms
64 bytes from 10.32.0.1: icmp_req=3 ttl=128 time=1.25 ms
64 bytes from 10.32.0.1: icmp_req=4 ttl=128 time=2.00 ms
--- 10.32.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 1.255/1.809/2.110/0.334 ms
Данной командой я отправляю 4 эхо-пакета на узел 10.32.0.1. Сервер обязан ответить мне обратно, что он и делает. Команда выводит информацию по каждому пакету и в конце статистику по всем пакетам указывая время передачи, процент потерянных пакетов и тд.
Для проверки параметров маршрутизации пакетов часто бывает удобно воспользоваться утилитой traceroute:
traceroute www.google.com
traceroute to www.google.com (74.125.87.99), 30 hops max, 60 byte packets
1 ti.holl.net (10.32.0.1) 5.595 ms * *
2 192.168.1.1 (192.168.1.1) 7.374 ms 7.370 ms 7.842 ms
3 * * *
4 10.50.19.34 (10.50.19.34) 83.307 ms 87.352 ms 87.350 ms
5 82.207.106.42 (82.207.106.42) 136.875 ms 139.480 ms 139.478 ms
6 209.85.241.54 (209.85.241.54) 135.527 ms 129.398 ms 131.854 ms
7 72.14.239.14 (72.14.239.14) 136.508 ms 136.780 ms 136.592 ms
8 209.85.248.39 (209.85.248.39) 131.577 ms 209.85.248.41 (209.85.248.41) 138.317 ms 102.821 ms
9 72.14.232.221 (72.14.232.221) 100.853 ms 102.081 ms 72.14.238.101 (72.14.238.101) 106.566 ms
10 hb-in-f99.1e100.net (74.125.87.99) 107.843 ms 114.659 ms 110.048 ms
Данная команда подробно показывает маршрут прохождения пакета, отображая каждый узел через который проходит пакет и временные характеристики. Изучая отчёты данной команды можно выявлять ошибки маршрутизации, которые могут состоять в не оптимальном прохождении пакета по сети.
Заключение
Этот топик завершает тему настройки сети/интернета в linux. Если есть, какие-то вопросы по данной теме, которые я не рассмотрел, отписывайтесь в комментариях. Спасибо за внимание!