Gnu linux настройка сети

Настройка сети в GNU/Linux

Самый базовый инструмент — ядро ОС. Оно предоставляет все необходимые системные вызовы, которые необходимы для выполнения операций по настройке сетевых интерфейсов. Понятно, что этот способ подходит только для ПО, а не для людей, поэтому рассмотрим инструменты, которые помогут нам в этом деле.

Первый базовый инструмент — ip . Мы уже рассматривали его, когда нам было необходимо посмотреть на текущую конфигурацию сети. Однако он также позволяет ей манипулировать.

Давайте решим следующую задачу: переведём все компьютеры в классе в сеть 10.223.0.0/16. Для её решения необходимо выполнить 2 шага:

Как это делать, можно узнать в руководстве на утилиту ip: man ip .

Как проверить, что сеть работает?

Для диагностики сетевых соединений обычно используется протокол ICMP: Internet Connection Management Protocol. С точки зрения пользователя нас будет интересовать только 1 вид запросов для данного протокола: ответить, если сообщение пришло.

С точки зрения пользователя вы будете использовать 2 приложения, которые уже реализуют данный протокол:

  • ping — посылает последовательность запросов на адрес и ждёт ответного оповещения.
  • traceroute — поговорим позже.

Приложению ping вы можете указать в качестве аргумента либо ip-адресс, с которым необходимо соединяться, либо DNS-имя компьютера.

ping 10.7.223.1 ping -c 10 10.7.223.15

Задача traceroute состоит в том, чтобы проследить маршрут по которому пакеты от моего компьютера доходят до других адресов. Работает traceroute благодаря тому, что у PING-пакетов можно выставить максимальное время “жизни”. Проходя через каждый маршрутизатор время “жизни” уменьшается на единицу. Когда у пакета заканчивается его время “жизни”, то на соответствующем маршрутизаторе отправляется сообщение запросившему о том, что “сломалась” передача.

Читайте также:  Install whois in linux

Продолжение про ip

При удалении ip-адреса с сетевого интерфейса не были удалены данные из таблицы маршрутизации. Однако мы не можем воспользоваться этой информацией, т.к. она уже не актуальна.

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

Как настроить сеть “надёжно”

  • Использовать инструменты, которые были разработаны в рамках данного дистрибутива.
  • Использовать инструменты, которые не зависят от желаний дистрибутива: NetworkManager.

NM — специальный демон, который оперирует в основном 2 понятиями: устройство и настройки соединения. Для каждого устройства содержится список настроек соединений, которые можно менять “на лету”. Этот инструмент обычно управляется с помощью графических клиентов и ориентирован на системы, в которых сетевая конфигурация часто меняется: ноутбуки и другие мобильные системы.

ifupdown

В Debian используется система ifupdown. Логика работы её в следующем:

  1. Есть конфигурационный файл, который описывает настройку сетевых интерфейсов.
  2. Инструменты ifupdown запускаются либо вручную, либо по наступлению события (система загрузилась). После запуска инструмент считывает информацит из конфигурационного файла и пытается настроить сетевой интерфейс в соответствии с данной конфигурацией.

Файл конфигурации ifupdown называется /etc/network/interfaces и по его содержимому доступна хорошая документация, man interfaces .

source — позволяет загрузить другие файлы конфигурации. auto ETH — обозначает, что настройку этого интерфейса необходимо производить при старте всей сетевой подсистемы. allow-hotplug ETH — сетевой интерфейс должен быть настроен в тот момент, когда физический контакт установлен. iface — блоки конфигурации конкретных сетевых интерфейсов.

iface lo inet loopback — настраиваем сетевой интерфейс lo с помощью ipv4 адреса как loopback интерфейс.

iface enp2s0 inet dhcp — настраиваем сетевой интерфейс enp2s0 с помощью DHCP.

Читайте также:  How to install conda on linux

iface enp2s0 inet static — настраиваем статический сетевой адрес.

Инструмент ifupdown предлагает 2 утилиты:

ПРАВИЛЬНЫЙ способ работы с ifupdown:

  1. Убрать текущие настройки с помощью ifdown.
  2. Исправить конфигурационный файл как сейчас необходимо.
  3. Выставить новые настройки.

Вы можете 1 сетевому интерфейсу назначить несколько конфигураций, которые будут одновременно применены. Однако! Только у одной конфигурации должен быть выставлен gateway.

Настройка компьютера в режим маршрутизатора

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

Сделаем так, чтобы ВАШ компьютер считал компьютер справа маршрутизатором в соседнюю сеть. Для этого необходимо добавить правило в таблицу маршртизации. Для управления этой таблицей рекомендуется использовать утилиту ip и её команду route .

Для добавленя пути используйте следующий подход:

ip route add [адресс сети] via [ip-адресс компьютера]

Рассмотрим, для примера компьютер №2. В нём настройка сети между 3 и 4 компьютером будет выглядеть следующим образом:

ip route add 192.168.30.0/24 via 192.168.20.3

  • 192.168.30.0/24 — сеть между 3 и 4 компьютером
  • 192.168.20.3 — ip-адрес 3 компьютера в сети между 3 и 2 компьютерами.

После этого можно будет попытаться послать пакеты с 2 компьютера на ip-адреса 3 и 4 компьютеров, но они не должны пройти.

Настройте маршрут “направо” для своего компьютера подобным образом.

Как вы могли заметить, ping-пакеты не проходят до удалённых компьютеров. Значит пора переключить в режим маршрутизации.

Настройка параметров ядра GNU/Linux

Настройка маршрутизации пакетов — это 1 небольшой параметр работы ядра GNU/Linux. Как обычно, сущетсвует несколько способов взаимодействия с настройками ядра. Рассмотрим пару из них.

Использование виртуальной файловой системы /proc/sys

В корне файловой системы есть каталог /proc/sys, который представляет собой специальный формат доступа к настройкам ядра. В нём есть подкаталоги, которые соотносятся к различным подсистемам ядра. Уровень вложенности — произвольный.

Читайте также:  Setup bios for linux

У вас есть возможность считывать и записывать данные в конфигурацию ядра. При изменении содержимого файла меняется и соответствующая настройка ядра.

Нас интересует настройка net/ipv4/ip_forward. Данная настройка показывает: включена ли переадресация пакетов или нет. Для её считывания достаточно вызвать утилиту cat . 0 — режим выключен, 1 — режим включён.

Для записи можно воспользоваться простым echo . Конечно, выполнять эту команду необходимо от имени суперпользователя.

Понятным минусом такого подхода является то, что настройки сбросятся при выключении системы.

Использование утилиты sysctl

Более надёжным способом и более удобным является использование специально средства, которое считывает информацию из конфигурационного файла, sysctl . Данная утилита запускается автоматически при старте ОС, поэтому данные изменения будут перманентными.

Конфигурационный файл расположен в файле /etc/sysctl.conf . Для решения нашей задачи необходимо, чтобы строчка с конфигурацией net.ipv4.ip_forward=1 была раскоментирована. То есть мы фактически попросили конкретную настройку включиться и работать.

Для применения конфигурации достаточно вызвать инструмент с ключём -p : sysctl -p .

Включите на своих компьютерах режим маршрутизации пакетов и добейтесь связи с соедними сетями. Т.е. на 7 компьютре должна быть связь не только с 4 и 8, но также и с 3 и с 9 компьютерами.

Подсказка: маршрутизатор должен знать где находятся сети, о которых идёт речь.

Администрирование GNU/Linux

Информация, размещённая на этом сайте доступна под лицензией Attribution-ShareAlike 4.0 International (CC BY-SA 4.0).

Источник

Оцените статью
Adblock
detector