Утилита ip linux

Конфигурация DHCP-relay (передача полномочий другому DHCP-серверу)

Если ваш DHCP-сервер не имеет доступа к какой-то конкретной подсети, это не значит, что он не может предоставлять там свои услуги. Для выполнения этой работы агент DHCP-relay должен быть настроен в удаленной подсети, которая пересылает все запросы на указанный DHCP-сервер и удаленную подсеть. Сначала установите DHCP-relay:

Затем создайте конфигурационный файл /etc/default/isc-dhcp-relay с такими двумя строками:

Приведенный выше конфигурационный файл даст указание агенту DHCP-relay agent прослушивать на интерфейсе eth0 запросы DHCP-клиента и пересылать их на DHCP-сервер по IP-адресу 192.168.5.5.

Найдите свой публичный IP-адрес

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

Общедоступные IP-адреса используются домашними маршрутизаторами, веб-серверами, почтовыми серверами и т. Д.

Определение общедоступного IP-адреса включает соединение с удаленным сервером по протоколу HTTP / HTTPS или DNS и получение IP-адреса из ответа удаленного сервера.

На настольных компьютерах самый простой способ узнать ваш общедоступный IP-адрес — это ввести в браузере «what is my ip»:

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

Большинство поставщиков DNS, таких как OpenDNS и Google, позволяют запрашивать их серверы и получать ваш общедоступный IP-адрес.

Вы можете использовать любую из следующих команд, чтобы получить свой IP:

Существует множество онлайн-сервисов HTTP / HTTPS, которые отвечают вашим общедоступным IP-адресом. Вот некоторые из них:

Если какая-либо из приведенных выше команд не работает, возможно, проблема связана с онлайн-службой.

Вы даже можете создать псевдоним в своем файле или , чтобы вам не приходилось вводить и запоминать длинную команду. Например, вы можете добавить следующий псевдоним:

Теперь, когда вам нужно найти свой общедоступный IP-адрес, просто введите в своем терминале.

Как работает сеть?

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

Компьютеры обмениваются между собой информацией с помощью пакетов. Все данные в сети интернет передаются с помощью пакетов небольшого размера. Если не углубляться в подробности, то каждый пакет содержит адрес отправителя, адрес получателя и сами данные. Эти адреса есть не что иное, как привычные нам IP-адреса. Кроме IP, у компьютера есть физический адрес, который используется для общения между компьютерами в локальной сети. Это MAC-адрес? и задается он производителем сетевой карты.

Как только компьютер подключился к сети, независимо от того проводное это соединение или беспроводное,  он может общаться только с компьютерами в локальной сети и только по физическим адресам. Для того, чтобы получить доступ в Глобальную сеть, машине в ней нужно получить IP-адрес. Для этого используется протокол DHCP. Если кратко: наш компьютер спрашивает все компьютеры в локальной сети, кто здесь DHCP-сервер, DHCP ему отвечает и выдаёт IP-адрес. Таким же образом компьютер узнаёт IP маршрутизатора, через который он может получить доступ к Сети, а затем пытается найти DNS-серверы или узнать стандартные у маршрутизатора. С теорией разобрались, перейдем к практике.

Как узнать IP, шлюз и маску?

Вы не можете установить любой IP для своего компьютера. Есть определенный диапазон значений, которые можно использовать. Ваш новый ip адрес должен быть в той же сети, что IP адрес роутера, который представляет из себя шлюз в сеть. Также, если вы задаете IP вручную, то нужно указать и другие параметры, которые система раньше получала по DHCP. И перед тем как переходить к настройке давайте рассмотрим откуда взять эти данные.

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

  • 10.0.0.0 – 10.255.255.255
  • 172.16.0.0 – 172.31.255.255
  • 192.168.0.0 – 192.168.255.255

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

Очень важно указать шлюз правильно, иначе компьютер не сможет получить доступ к сети. Посмотреть текущий адрес шлюза можно командой:

Здесь мы видим, что наш адрес шлюза — 192.168.0.1. Отсюда выплывает, что нам нужно выбирать наш ip именно из этого диапазона, можно менять только последнюю цифру и надо, чтобы в этой сети компьютеров с такими адресами больше не было, например, 192.168.0.64.

Маска подсети используется чтобы отделить локальную часть ip адреса, которая меняется, от статической. Сейчас в большинстве случаев применяется значение 255.255.255.0, которое означает изменение только последней цифры. Теперь, когда вы знаете откуда брать все значения, рассмотрим как установить ip адрес Linux.

Настройка статического IP-адреса на рабочем столе Ubuntu

Настройка статического IP-адреса на настольных компьютерах Ubuntu не требует технических знаний.

  1. На экране «Действия» найдите «сеть» и щелкните значок «Сеть». Это откроет настройки конфигурации сети GNOME. Щелкните значок шестеренки.

  2. Откроется диалоговое окно настроек сетевого интерфейса:

  3. В разделе «Метод IPV4» выберите «Вручную» и введите свой статический IP-адрес, сетевую маску и шлюз. После этого нажмите кнопку «Применить».

Теперь, когда вы настроили статический IP-адрес, откройте свой терминал с помощью или щелкнув значок терминала и проверьте изменения, набрав:

На выходе будет показан IP-адрес интерфейса:

Настройка статического IP адреса в nmcli

Сетевой конфигуратор NetworkManager сейчас используется практически повсеместно. Если нужно настроить IP в терминале вы можете использовать утилиту nmcli. Сначала смотрим доступные подключения. Для этого выполните:

Допустим, что необходимое вам подключение называется Проводное соединение 2. Тогда осталось установить IP адрес, шлюз и DNS сервер:

Затем надо сообщить утилите, что IP адрес будет настраиваться вручную:

В этом примере IP адрес задается немного по другому. Сначала идёт выбранный ip адрес, а затем маска в формате /24. Это аналог записи 255.255.255.0, только короче.

Сетевые интерфейсы в статичных сетях

Полное описание синтаксиса файла настроек интерфейсов /etc/network/interfaces доступно по команде

man interfaces

Основные опции настройки:

Опция

Значение

auto <Имя_интерфейса> 

Автоматический запуск указанного интерфейса при запуске системы

allow-auto <Имя_интерфейса>

Автоматический запуск указанного интерфейса при запуске системы

allow-hotplug <Имя_интерфейса>

Автоматический запуск указанного интерфейса при обнаружении ядром события подключения к этому интерфейсу

Опции, начинающиеся с «iface <config_name> …»

Определяют сетевую конфигурацию <config_name> и имеют следующий синтаксис:

iface <config_name> <address_family> <method_name><option1> <value1><option2> <value2>…

Опции, начинающиеся с «mapping <interface_name_glob>»

Определяют соответствие значения <config_name> и <interface_name>.Для простых конфигураций не применяются.

Опции, начинающиеся с симовола «#»

Игнорируются, как комментарии. Комментарии, начинающиеся не с начала строки не поддерживаются.
Опции, заканчивающиеся символом «\» Продолжение опции в следующей строке

Интерфейс локальная петля (loopback)

Автоматическое включение интерфейса локальной петли при запуске системы задаётся в /etc/network/interfaces следующими командами:

Этот интерфейс всегда присутствует в стандартном файле /etc/network/interfaces.

Интерфейс со статическим адресом

В примере подразумевается следующее:

  • Диапазон IP-аресов локальной сети: 192.168.11.0 — 192.168.11.255
  • IP-адрес шлюза: 192.168.11.1
  • Собственный IP-адрес интерфейса 192.168.11.100
  • The resolvconf package: installed
  • Имя домена: «example.com» (используется пакетом resolvconf)
  • IP-адрес сервера DNS: 192.168.11.1 (используется пакетом resolvconf)

При этом, если не используется пакет resolvconf, соответствующая настройка параметров DNS должна быть выполнена вручную в файле /etc/resolv.conf:

Systemd-networkd / systemd-resolved

Для использования служб systemd-networkd / systemd-resolved во избежание конфликтов следует отключить, остановить и заблокировать все остальные службы управления сетевыми интерфейсами:

sudo systemctl —now mask NetworkManagersudo systemctl —now mask networkingsudo systemctl —now mask resolvconf

И разблокировать и запустить systemd-networkd / systemd-resolved:

sudo systemctl unmask systemd-networkdsudo systemctl enable systemd-networkdsudo systemctl start systemd-networkdsudo systemctl unmask systemd-resolvedsudo systemctl enable systemd-resolvedsudo systemctl start systemd-resolved

Конфигурациионные файлы сетевых служб systemd хранятся в каталоге /etc/systemd/network. Доступны следующие типы конфигурационных файлов:

  • .link – описывают физические параметры каждого интерфейса: имя, MAC, MTU и другие
  • .network – описывают параметры сети: IP, маршруты, DNS и другие
  • .netdev – описывают виртуальные интерфейсы, мосты

Описания содержимого конфигурационных файлов доступны в общей системе документации:

man systemd-networkdman systemd.linkman systemd.networkman systemd.netdevman systemd-resolved

Мобильный режим

В мобильном режиме используется сетевой менеджер connman,  а файл /etc/resolv.conf заменяется на ссылку на файл  /var/run/connman/resolv.conf.

Сетевой менеджер connman поддерживает собственный интерфейс командной строки connmanctl.Описание команд commanctl доступно в системе документации:

man connmanctl

Графический интерфейс для работы  с connman доступен в мобильной версии ОС Astra Linux.

Настройка статического IP-адреса на сервере Ubuntu

В более новых версиях Ubuntu используются «предсказуемые имена сетевых интерфейсов», которые по умолчанию начинаются с .

Первый шаг — определить имя интерфейса Ethernet, который вы хотите настроить. Для этого используйте команду , как показано ниже:

Команда распечатает список всех доступных сетевых интерфейсов. В этом случае имя интерфейса :

Файлы конфигурации Netplan хранятся в каталоге и имеют расширение . Вероятно, вы найдете в этом каталоге один или два файла YAML. Файл может отличаться от настройки к настройке. Обычно файл называется , или , но в вашей системе он может быть другим.

Откройте файл конфигурации YAML в текстовом редакторе :

/etc/netplan/01-netcfg.yaml

Прежде чем изменять конфигурацию, давайте кратко объясним код.

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

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

Под типом устройства (в данном случае ) вы можете указать один или несколько сетевых интерфейсов. В этом примере у нас есть только один интерфейс который настроен для получения IP-адресации от DHCP-сервера .

Чтобы назначить статический IP-адрес интерфейсу , отредактируйте файл следующим образом:

  • Установите DHCP на .
  • Укажите статический IP-адрес . В разделе вы можете добавить один или несколько IP-адресов IPv4 или IPv6, которые будут назначены сетевому интерфейсу.
  • Укажите шлюз
  • В разделе установите IP-адреса имен

/etc/netplan/01-netcfg.yaml

При редактировании файлов YAML убедитесь, что вы следуете стандартам отступа кода YAML. Если в конфигурации есть синтаксические ошибки, изменения не будут применены.

После этого сохраните и закройте файл и примените изменения с помощью:

Проверьте изменения, набрав:

Это оно! Вы назначили статический IP-адрес своему серверу Ubuntu.

FAQ по сетям

Как зайти на мой компьютер извне (через интернет)?

Для начала надо узнать, какой IP-адрес даёт провайдер — серый или белый (не путать со статическим/динамическим). Если серый, то ничего не получится. Если белый, то возможны два варианта:

  • Роутера нет или он работает в режиме бриджа (моста). В этом случае белый IP-адрес присваивается самому компьютеру. Вводим адрес — попадаем на комп, всё просто.
  • Белый адрес присваивается роутеру. Соответственно, по этому адресу мы попадаем на роутер, а не на компьютер. Чтобы попасть на компьютер, на роутере нужно пробросить порты (см. ниже).

Как узнать, какие программы слушают порты на моём компьютере?

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

sudo netstat -nlpA inet,inet6

Для вывода информации о конкретном порте можно использовать . Например, для 80 порта:

sudo netstat -nlpA inet,inet6 | grep :80

Из вывода не всегда понятно, о какой программе идёт речь (например, 2671/python), подробнее о процессе расскажет :

ps aux | grep 2671

Как присвоить два IP-адреса одной сетевой карте?

Например, интерфейсу eth0 нужно добавить адрес 192.168.1.1.
Кратковременно, до перезапуска сети:

sudo ip addr add 192.168.1.1/24 dev eth0

Навсегда — добавить в следующее:

#исправить строку auto
auto eth0 eth0:1

# добавить алиас
iface eth0:1 inet static
  address 192.168.1.1
  netmask 255.255.255.0

Как пробросить порт?

Например, нужно пробросить порт 8081. Адрес, на который обращается клиент, назовём внешний_ip, а адрес, на который он должен попасть — внутренний_ip.

iptables -t nat -A PREROUTING -p tcp -d внешний_ір --dport 8081 -j DNAT --to-destination внутренний_ір:8081
iptables -t nat -A POSTROUTING -p tcp --dst внутренний_ір --dport 8081 -j SNAT --to-source внешний_ір

И обязательно нужно что-то вроде

iptables -t filter -A FORWARD -m conntrack --ctstate DNAT -j ACCEPT

Настройка DNS

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

Если вам нужно настроить DNS так, чтобы он не сбивался после перезагрузки, необходимо использовать систему настройки сети Ubuntu. Для этого откройте файл /etc/network/interfaces и добавьте в него строчку после директив для нужного интерфейса:

Здесь 8.8.8.8 и 4.4.4.4 это IP-адреса DNS серверов, можете заменить их на свои. И можно использовать один, а не два. Дальше сохраните файл и перезапустите сеть:

Если же вам нужно настроить DNS только для этого сеанса, то добавьте строчку в /etc/resolv.conf

После сохранения файла сеть будет работать полностью так, как нужно. Но последний способ пригоден только до перезагрузки, поскольку файл /etc/resolv.conf генерируется автоматически.

Настройка статического IP-адреса с помощью DHCP

Самый простой и рекомендуемый способ назначить статический IP-адрес устройству в вашей локальной сети — это настроить статический DHCP на вашем маршрутизаторе. Статическое резервирование DHCP или DHCP — это функция, присутствующая на большинстве маршрутизаторов, которая заставляет DHCP-сервер автоматически назначать один и тот же IP-адрес определенному сетевому устройству каждый раз, когда устройство запрашивает адрес у DHCP-сервера. Это работает путем назначения статического IP-адреса уникальному MAC-адресу устройства. Шаги по настройке резервирования DHCP различаются от маршрутизатора к маршрутизатору, поэтому рекомендуется обращаться к документации поставщика.

Пример конфигурации

Пример, который показывает большинство доступных функций:

network:
 version: 2
 # if specified, can only realistically have that value, as networkd cannot
 # render wifi/3G.
 renderer: NetworkManager
 ethernets:
  # opaque ID for physical interfaces, only referred to by other stanzas
  wlp3s0:
    match:
     macaddress: 00:11:22:33:44:55
    wakeonlan: true
    dhcp4: true
    addresses:
     - 192.168.14.2/24
     - 192.168.14.3/24
     - "2001:1::1/64"
    gateway4: 192.168.14.1
    gateway6: "2001:1::2"
    nameservers:
     search: 
     addresses: 
    routes:
     - to: 0.0.0.0/0
      via: 11.0.0.1
      table: 70
      on-link: true
      metric: 3
    routing-policy:
     - to: 10.0.0.0/8
      from: 192.168.14.2/24
      table: 70
      priority: 100
     - to: 20.0.0.0/8
      from: 192.168.14.3/24
      table: 70
      priority: 50
    # only networkd can render on-link routes and routing policies
    renderer: networkd
   lom:
     match:
      driver: ixgbe
     # you are responsible for setting tight enough match rules
     # that only match one device if you use set-name
     set-name: lom1
     dhcp6: true
   switchports:
     # all cards on second PCI bus unconfigured by
     # themselves, will be added to br0 below
     # note: globbing is not supported by NetworkManager
     match:
      name: enp2*
     mtu: 1280
 wifis:
   all-wlans:
     # useful on a system where you know there is
     # only ever going to be one device
     match: {}
     access-points:
      "Joe's home":
       # mode defaults to "infrastructure" (client)
       password: "s3kr1t"
   # this creates an AP on wlp1s0 using hostapd
   # no match rules, thus the ID is the interface name
   wlp1s0:
    access-points:
     "guest":
      mode: ap
      # no WPA config implies default of open
 bridges:
  # the key name is the name for virtual (created) interfaces
  # no match: and set-name: allowed
  br0:
   # IDs of the components; switchports expands into multiple interfaces
   interfaces: 
   dhcp4: true

Настройка проводной сети

Настройка IP-адреса, шлюза по умолчанию, маски подсети

Отредактируйте файл конфигурации , например так:

$ sudo nano /etc/network/interfaces 

И допишите в него:

Для статического IP:

iface eth0 inet static 
address 192.168.0.1 
netmask 255.255.255.0 
gateway 192.168.0.254
dns-nameservers 192.168.0.254 8.8.8.8
auto eth0 

Где:

  • — указывает что IP адрес (address) нашей сетевой карты 192.168.0.1;
  • — указывает что наша маска подсети (netmask) имеет значение 255.255.255.0;
  • — адрес шлюза () по умолчанию 192.168.0.254;
  • — адреса DNS серверов (о ниж мы расскажем позже)
  • — указывет системе что интерфейс необходимо включать автоматически при загрузке системы с вышеуказанными параметрами.

eth0 — имя подключаемого своего интерфейса. Список интерфейсов можно посмотреть набрав:

$ ip addr

В итоге файл должен выглядеть примерно так:

(для одного проводного соединения со статическим IP)

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Моя проводная сеть.
iface eth0 inet static 
address 192.168.0.1 
netmask 255.255.255.0 
gateway 192.168.0.254 
dns-nameservers 192.168.0.254 8.8.8.8
auto eth0 

Сохраните файл и закройте редактор. В данном примере (редактор nano) — нажмите Ctrl+X, затем Y, убедитесь, что «Имя файла для записи» — /etc/network/interfaces и нажмите Enter.

Пример конфигурации для динамического IP:

iface eth0 inet dhcp
auto eth0 

Временная настройка IP-адреса и маски подсети

При необходимости задать пробные настройки, выполните:

$ sudo ip addr add 192.168.0.1/24 dev eth0

Где 192.168.0.1 — наш IP-адрес, /24 — число бит в префиксной части адреса (соответствует маске подсети 255.255.255.0). eth0 — подключаемый сетевой интерфейс.

Данные настройки пропадут после перезагрузки системы и не повлияют на файл

Протокол DHCP

Протокол DHCP (Dynamic Host Configuration Protocol — протокол динамического конфигурирования хостов) является протоколом клиент-серверной модели. То есть, есть сервер DHCP (демон dhcpd) отвечающий на запросы клиентов и есть клиент DHCP (dhclient) посылающий запросы и принимающий ответы от сервера. Передача данных производится при помощи протокола UDP, при этом сервер принимает сообщения от клиентов на порт 67 и отправляет сообщения клиентам на порт 68.

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

Градиентными овалами и стрелками на схеме обозначены широковещательные сообщения и направление сообщения соответственно. Линиями обозначены не широковещательные сообщения. Пунктиром обозначены, возможные сообщения (необязательные). На основании рисунка, рассмотрим пример процесса получения IP-адреса клиентом от параллельно работающих серверов DHCP. Предположим, клиент ещё не имеет собственного IP-адреса. Процесс состоит из следующих этапов:

1. Обнаружение DHCP (DHCPDISCOVER)

На первом этапе, клиент выполняет широковещательный запрос по всей физической сети с целью обнаружить доступные DHCP-серверы. Он отправляет сообщение типа DHCPDISCOVER, при этом в качестве IP-адреса источника указывается 0.0.0.0 (так как компьютер ещё не имеет собственного IP-адреса), а в качестве адреса назначения — широковещательный адрес 255.255.255.255. Кроме IP источника и назначения, клиент в данном сообщении  посылает: уникальный идентификатор запроса, свой MAC, и, возможно, прошлый присвоенный IP.

2. Ответ DHCP — сервера (DHCPOFFER)

Получив сообщение от клиента, сервера определяют требуемую конфигурацию клиента в соответствии со своими указанными в конфигурационном файле настройками. Все сервера, получившие запрос, формируют ответ (DHCPOFFER), содержащий конфигурацию клиента, и отправляют его клиенту на MAC-адрес. В ответе содержится следующая информация: IP, назначенный хосту, и прочие параметры (такие, как адреса маршрутизаторов и DNS-серверов). Клиент получает ответы от всех серверов DHCP, функционирующих в сети, из них он должен выбрать тот, который его «устраивает» (а устраивает его скорее всего тот, который пришел первым).

3. Запрос DHCP-сервера (DHCPREQUEST)

Выбрав одну из конфигураций, предложенных DHCP-серверами, клиент отправляет запрос DHCP (DHCPREQUEST). Он рассылается широковещательно. В сообщении содержится информация из сообщения DHCPDISCOVER + специальная опция — идентификатор сервера — указывающая адрес DHCP-сервера. При этом, сервер, который не выбран в качестве «устраивающего» тоже видит, что он не выбран.

4. Подтверждение от DHCP-сервера (DHCPACK)

Наконец, сервер подтверждает запрос и направляет это подтверждение (DHCPACK) клиенту. После этого клиент должен настроить свой сетевой интерфейс, используя предоставленные опции.

При этом, кроме указанных сообщений, возможны и другие (на схеме указаны пунктиром):

Отказ от настроек, предоставленных DHCP-сервером (DHCPDECLINE)

Если после получения подтверждения (DHCPACK) от сервера клиент обнаруживает, что указанный сервером адрес уже используется в сети, он рассылает широковещательное сообщение отказа DHCP (DHCPDECLINE), после чего процедура получения IP-адреса повторяется.

Отмена от DHCP-сервера (DHCPNAK)

Если по каким-то причинам сервер не может предоставить клиенту запрошенный IP-адрес, или если аренда адреса удаляется администратором, сервер рассылает широковещательное сообщение отмены DHCP (DHCPNAK). При получении такого сообщения соответствующий клиент должен повторить процедуру получения адреса.

Освобождение адреса DHCP (DHCPRELEASE)

Клиент может явным образом прекратить аренду IP-адреса. Для этого он отправляет сообщение освобождения DHCP (DHCPRELEASE) тому серверу, который предоставил ему адрес в аренду.

Информация DHCP (DHCPINFORM)

Сообщение информации DHCP (DHCPINFORM) предназначено для определения дополнительных параметров TCP/IP (например, адреса маршрутизатора по умолчанию, DNS-серверов и т. п.) теми клиентами, которым не нужен динамический IP-адрес (то есть адрес которых настроен вручную). Серверы отвечают на такой запрос сообщением подтверждения (DHCPACK) без выделения IP-адреса.

3. Настройка сетевого интерфейса

Для настройки сетевых интерфейсов в операционных системах, основанных на Debian, используется файл /etc/network/interfaces. Здесь должно находится описание для каждого интерфейса, способ получения IP а другие параметры. В одном файле может быть настроено несколько интерфейсов. Описание каждого интерфейса начинается со слова auto после которого идет имя интерфейса.

Это означает, что указанный интерфейс должен быть запущен при выполнении ifup с опцией -a, именно она используется при инициализации системы. После строки auto идут другие строки настроек, которые касаются именно этого интерфейса. Вот так, например, выглядит строка для включения локального интерфейса:

Перед тем как рассматривать все более подробно, поговорим про опции, которые можно использовать:

  • pre-up — выполнить команду перед запуском интерфейса;
  • post-up — выполнить команду после запуска интерфейса;
  • up — выполнить команду при запуске интерфейса;
  • pre-down — команда перед отключением;
  • post-down — команда после отключения;
  • iface — указывает имя интерфейса;
  • inet — указывает
  • description — создать имя синоним для устройства;
  • address — устанавливает ip адрес для статического соединения;
  • netmask — установка маски сети;
  • broadcast — широковещательный адрес;
  • metric — приоритет для шлюза по умолчанию;
  • gateway — шлюз по умолчанию;
  • hwaddress — установить MAC адрес;
  • mtu — размер одного пакета.

Это далеко не все опции, которые можно использовать, но основные из них и уже с помощью этого можно настроить большинство из того, что нужно. Дальше рассмотрим различные варианты настройки интерфейсов, самый часто используемый на домашних компьютерах — это получение ip адреса по DHCP, в таком случае, ip адрес может меняться при каждом запуске. Рассмотрим его первым.

Настройка динамического IP

Мы будем получать IP адрес через DHCP сервер, оттуда же будут получены шлюзы и DNS сервер, поэтому для работы достаточно добавить две строчки. Например, настроем получение IP по DHCP для интерфейса eth0:

Но если необходимо, то вы можете установить вручную ip адрес DNS сервера:

Для локального интерфейса настройка будет выполняться таким образом:

Здесь мы не получаем адрес по DHCP, но присваиваем локальный адрес 127.0.0.1.

Настройка статического IP адреса

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

Здесь указывается, что мы будем использовать метод получения ip адреса static, а затем расписаны все параметры. Но это еще далеко не все, что можно сделать с помощью файла /etc/network/interfaces. Также вы можете создавать виртуальные интерфейсы.

Настройка виртуальных интерфейсов

В некоторых случаях нам может понадобиться создать виртуальный интерфейс. Это позволяет добавить еще один IP адрес к интерфейсу. Чтобы создать такой интерфейс достаточно дописать его номер после двоеточия:

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

Настройка мостов

Сетевые мосты между виртуальными интерфейсами в системе позволяют настроить полноценный доступ к интернету из виртуальных машин. Они могут применяться для KVM,qemu,XEN и других конфигураций. Для настройки моста используйте:

Здесь мы указываем имя интерфейса br0, дальше выполняем стандартную настройку получения статического IP адреса, затем связываем этот мост с интерфейсом eth0.

Найдите свой частный IP-адрес

Частные IP-адреса не маршрутизируются через Интернет и предназначены для работы только в локальной сети. Обычно частный IP-адрес назначается каждому устройству в вашей локальной сети вашим маршрутизатором. Это обеспечивает уникальный IP-адрес для всех устройств в локальной сети, таких как ваш телефон, ноутбук, смарт-телевизор, принтер, медиацентр и т. Д.

Устройства в локальной сети подключаются к Интернету через NAT (преобразование сетевых адресов).

Следующие диапазоны IPv4-адресов зарезервированы для частных сетей:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

Вы можете определить частный IP-адрес вашей системы, запросив сетевой стек с такими командами, как , или .

В Linux стандартным инструментом для отображения и настройки сетевых интерфейсов является .

Чтобы отобразить список всех сетевых интерфейсов и связанных IP-адресов, введите следующую команду:

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

Вы также можете использовать следующие команды для отображения частного IP-адреса:

Настройка статического IP-адреса на сервере Ubuntu

В Ubuntu 20.04 система идентифицирует сетевые интерфейсы, используя «предсказуемые имена сетевых интерфейсов».

Первым шагом к настройке статического IP-адреса является определение имени интерфейса Ethernet, который вы хотите настроить. Для этого используйте команду , как показано ниже:

Команда печатает список всех доступных сетевых интерфейсов. В этом примере имя интерфейса :

Файлы конфигурации Netplan хранятся в каталоге . Вероятно, вы найдете в этом каталоге один или несколько файлов YAML. Имя файла может отличаться от настройки к настройке. Обычно файл называется , или , но в вашей системе он может быть другим.

Если ваш облачный экземпляр Ubuntu снабжен cloud-init, вам необходимо отключить его. Для этого создайте следующий файл:

/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

Чтобы назначить статический IP-адрес в сетевом интерфейсе, откройте файл конфигурации YAML в текстовом редакторе :

/etc/netplan/01-netcfg.yaml

Прежде чем изменять конфигурацию, давайте кратко объясним код.

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

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

Под типом устройства ( ) вы можете указать один или несколько сетевых интерфейсов. В этом примере у нас есть только один интерфейс который настроен для получения IP-адресации от DHCP-сервера .

Чтобы назначить статический IP-адрес интерфейсу , отредактируйте файл следующим образом:

  • Установите DHCP на .
  • Укажите статический IP-адрес. В разделе вы можете добавить один или несколько IP-адресов IPv4 или IPv6, которые будут назначены сетевому интерфейсу.
  • Укажите шлюз.
  • В разделе установите IP-адреса серверов имен.

/etc/netplan/01-netcfg.yaml

При редактировании файлов YAML убедитесь, что вы следуете стандартам отступа кода YAML. Если синтаксис неправильный, изменения не будут применены.

После этого сохраните файл и примените изменения, выполнив следующую команду:

Проверьте изменения, набрав:

Это оно! Вы назначили статический IP-адрес своему серверу Ubuntu.

Взаимодействие DHCP-сервера и клиента

Сервер и клиент обмениваются сообщениями по принципу «запрос-ответ». Взаимодействие состоит из 4 этапов и сокращенно называется «DORA». По одной букве на каждый этап:

  1. Поиск – Discover.

  2. Предложение – Offer.

  3. Запрос – Request.

  4. Подтверждение – Acknowledgement (ACK).

Поиск (Discover): Клиент → Сервер

На этом этапе клиенту главное найти и узнать, где находится сервер. 

Мы включили компьютер, который находится в сети. Еще в этой же сети работает DHCP. В данном случае наш компьютер – это клиент, а DHCP – сервер. Теперь нашему устройству необходимо получить IP-адрес и другую необходимую информацию о сети, например шлюз, адреса DNS и маску подсети. Поэтому клиент начинает поиски сервера и посылает сообщение «DHCPDISCOVER» на компьютеры внутри этого сегмента сети. 

Такое сообщение называется широковещательным (broadcast) – это значит, что поток данных от клиента получат все устройства внутри его сети. Ответить на такое сообщение смогут только DHCP-серверы.

Запрос клиента получат все участники сети, но ответит только сервер

Предложение (Offer): Сервер → Клиент

DHCP-сервер получает сообщение от клиента, после чего выбирает свободный IP-адрес из числа доступных и отправляет его в ответном сообщении «DHCPOFFER». 

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

Если клиенту ответили несколько серверов, он выберет какой-то один и получит от него IP-адрес с настройками.

Запрос (Request): Клиент → Сервер

Клиент получил IP-адрес и отправляет серверу ответное сообщение: «DHCPREQUEST». В нем он еще раз прописывает полученный адрес и тем самым подтверждает, что будет использовать его.

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

Только один сервер продолжает взаимодействие с клиентом. Это тот, который предложил выбранный клиентом IP-адрес.

Подтверждение (ACK): Сервер → Клиент

Сервер отправляет сообщение «DHCPACK» и тем самым закрепляет IP-адрес за клиентом. В сообщении содержится сам адрес, срок его использования и дополнительные настройки сети. Клиент проверяет эти настройки, применяет полученную конфигурацию и получает доступ к сети. 

В общем виде весь процесс взаимодействия выглядит так:

– (Клиент) Кто тут сервер? Мне надо получить IP-адрес: «DHCPDISCOVER».

– (Сервер) Я сервер, предлагаю тебе использовать вот этот IP: «DHCPOFFER».

– (Клиент) Хорошо, я буду использовать этот IP, что ты мне отправил: «DHCPREQUEST».

– (Сервер) Вот и договорились. Приятной работы в сети: «DHCPACK».

Другие варианты сообщений

  • «DHCPINFORM» – так клиент запрашивает локальные настройки сети. В ответ на это сообщение сервер посылает запрашиваемую конфигурацию.

  • «DHCPNAK» – так сервер отказывает клиенту пользоваться IP-адресом.

  • «DHCPRELEASE» – так клиент сообщает, что отключается от сети и освобождает свой IP-адрес. После этого сервер снова добавляет этот адрес в список доступных.
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: