Ens33 ubuntu что это
Перейти к содержимому

Ens33 ubuntu что это

  • автор:

Почему разные имена сетевого интерфейса в конфиге и при выводе ifconfig?

Ставлю debian 8. При установке задаю ip адрес вручную, а после установки в конфиге interfaces указан eth0, а udev определил сетевую карту как ens33.
Как сделать, чтобы определялась карта так же, как прописана в interfaces?
Менять руками название интерфейса в udev файлах не предлагать. Хочется понять почему такое происходит, может пакет какой виноват?

  • Вопрос задан более трёх лет назад
  • 2950 просмотров

Комментировать

Решения вопроса 1

Админю сервера, починяю примуса.

ethX — старая нотация
ens — новая нотация
Подробности https://www.freedesktop.org/wiki/Software/systemd/.
там же способ вернуться к старой нотации.

Ответ написан более трёх лет назад

Комментировать

Нравится 1 Комментировать

Ответы на вопрос 0

Ваш ответ на вопрос

Войдите, чтобы написать ответ

linux

  • Linux
  • +2 ещё

Есть утилита для мониторинга UPS?

  • 2 подписчика
  • 4 часа назад
  • 86 просмотров

Ubuntu 16.04: Изменение наименования сетевых интерфейсов

Имя стало eth0, теперь я хочу его поменять на, скажем. eth1.

Файл: /etc/udev/rules.d/70-persistent-net.rules отсутствует.

Команда #udevadm trigger —subsystem-match=net —action=add данный файл не создает

tyrpyr
08.12.16 08:41:42 MSK

ifconfig eth0 down

ip link set eth0 name eth1

ifconfig eth1 up

sova ★★
( 08.12.16 09:04:30 MSK )

Ты перепробовал все варианты, выхода нет, вдоль.

PS Создай файл вручную, будь мужиком, . !

berrywizard ★★★★★
( 08.12.16 10:32:50 MSK )

в Ubuntu 16.4 отсутствует генератор файла: /lib/udev/write_net_rules

Создал файл /etc/udev/rules.d/70-persistent-net.rules руками:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR=="xx:xx:xx:xx:xx:xx", ATTR=="0x0", ATTR=="1", NAME="eth7" 

По сравнению с Debian 7 в файле нет параметра KERNEL==«eth*»

tyrpyr
( 08.12.16 11:44:11 MSK ) автор топика
Ответ на: комментарий от tyrpyr 08.12.16 11:44:11 MSK

Если кому интересно, правила в стиле циски (имя интерфейса зависит от номера слота и номера порта):

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ENV=="pci", ENV=="0000:01:01.0", ATTR=="1", KERNEL=="eth*", NAME="e1p0" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ENV=="pci", ENV=="0000:01:01.1", ATTR=="1", KERNEL=="eth*", NAME="e1p1" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ENV=="pci", ENV=="0000:01:09.0", ATTR=="1", KERNEL=="eth*", NAME="e9p0"

Толстый плюс такого варианта — при замене сетевой платы имена не съезжают, в отличие от именования по MAC-адресу. Например, здесь —

[root@st2 tmp]# lspci -nn | fgrep -i ethe 02:00.0 Ethernet controller [0200]: Intel Corporation 82576 Gigabit Network Connection [8086:10c9] (rev 01) 02:00.1 Ethernet controller [0200]: Intel Corporation 82576 Gigabit Network Connection [8086:10c9] (rev 01) 03:00.0 Ethernet controller [0200]: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet [14e4:1639] (rev 20) 03:00.1 Ethernet controller [0200]: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet [14e4:1639] (rev 20) [root@st2 tmp]#

выгоревшую Broadcom достаточно заменить на любую другую двухпортовую плату, и можно снова запускать сервер. Вот с распаянной на MB Intel придётся таки правила рихтануть, это да.

berrywizard ★★★★★
( 08.12.16 13:00:04 MSK )
Ответ на: комментарий от berrywizard 08.12.16 13:00:04 MSK

а разве по дефолту не так? Оо

$ ifconfig | grep enp enp2s0 Link encap:Ethernet enp3s0 Link encap:Ethernet $ lspci | grep Ethe 02:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06) 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c) 

Deleted
( 08.12.16 13:04:04 MSK )
Ответ на: комментарий от Deleted 08.12.16 13:04:04 MSK

Это относительно недавно стало.

berrywizard ★★★★★
( 08.12.16 14:24:50 MSK )
Ответ на: комментарий от tyrpyr 08.12.16 11:44:11 MSK

в Ubuntu 16.4 отсутствует генератор файла: /lib/udev/write_net_rules

Его выкинули в очередном systemd. Кстати, так же выкинули из udev код, обеспечивающий обмен имён. То есть, если у тебя eth0 есть, eth1 ты сделаешь, а вот если у тебя есть и eth0, и eth1, то местами ты их с новым udev из нового systemd не поменяешь. Надо откатывать это «нововведение».

AS ★★★★★
( 08.12.16 14:36:48 MSK )
Ответ на: комментарий от AS 08.12.16 14:36:48 MSK

Спасибо за примечание, проверил на Debian 8 под виртуалкой c 3 сетевухами — мои изменения сохранились.

Сетевые интерфейсы

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

eth — сетевой интерфейс к карте Ethernet или картам WaveLan (Radio Ethernet).

Каждый интерфейс характеризуется определёнными параметрами, необходимыми для обеспечения его функционирования и для сетевого обмена данными по протоколу IP.

Параметры интерфейса

  • DEVICE: Имя интерфейса.
  • IPADDR: IP-адрес, соответствующий данному сетевому интерфейсу. Пакеты, отправленные по этому адресу, поступят на соответствующий интерфейс.
  • NETMASK: Битовая маска, необходимая для вычисления маршрута передачи IP-пакета.
  • BROADCAST: Адрес, используемый при широковещательной рассылке пакетов через интерфейс.
  • Метрика: Условная характеристика интерфейса соответствующая уровню затрат при передаче информации через него. Используется при маршрутизации пакетов, для выбора оптимального маршрута.
  • MTU: Maximum Transfer Unit. Максимальный размер блока данных обрабатываемого интерфейсом. Наибольшее значение MTU определяется типом интерфейса (например, для Ethernet MTU=1500), но может быть искусственно снижено.
  • MAC-адрес: Аппаратный адрес сетевого устройства, соответствующего интерфейсу (для которых это имеет смысл).

Кроме этих параметров интерфейс характеризуется ещё:

  • Флагами, которые определяют состояния устройства, например такие как: включен ли интерфейс (Up/Down), находится ли он в неразборчивом режиме (promiscuous/nonpromiscuous).
  • Аппаратными характеристиками, такими как адрес памяти, номер IRQ, DMA, порт ввода/вывода.
  • Статистической информацией, характеризующей различные аспекты работы интерфейса. Например, количество переданных/полученных байтов/пакетов, число переполнений, коллизий и др. с момента создания интерфейса.

Конфигурационные файлы и настройка IPv4

Debian/Ubuntu

Настройки сетевого интерфейса указываются в конфигурационном файле /etc/network/interfaces :

auto eth0 iface eth0 inet static address 123.123.123.123 netmask 255.255.255.0 gateway 123.123.123.0 dns-nameservers 141.8.194.254 141.8.197.254

Ubuntu 16.04 LTS

Директивы сетевого интерфейса записываются в файл /etc/network/interfaces . В отличие от Debian и Ubuntu более ранних версий, интерфейсы именуются с префиксом ens , например — ens3 :

auto ens3 iface ens3 inet static address 123.123.123.123 netmask 255.255.255.0 gateway 123.123.123.1 dns-nameservers 141.8.194.254 141.8.197.254

Ubuntu 18.04 LTS

В этой версии ОС сеть может задаваться не с помощью networking, а с помощью утилиты netplan.

Конфигурационный файл сетевого интерфейса расположен в каталоге: /etc/netplan/50-cloud-init.yaml . Описание интерфейса выглядит следующим образом:

network: version: 2 ethernets: ens3: addresses: - 185.185.68.210/22 gateway4: 185.185.68.1 nameservers: addresses: - 141.8.194.254 - 141.8.197.254

Для применения изменений необходимо выполнить команду netplan apply. Она проверяет конфигурационный файл на наличие ошибок, применяет изменения и автоматически перезагружает интерфейс.

Redhat/Fedora/CentOS

В Redhat, Fedora или CentOS директория, отвечающая за присвоение постоянных IP-адресов — это /etc/sysconfig/network-scripts . В данной директории необходимо создать файл, соответствующий вашему новому виртуальному интерфейсу. Например, на наших боксах подобный файл будет называться ifcfg-eth0:0 .

/etc/sysconfig/network-scripts — каталог, содержащий конфигурационные файлы интерфейсов и скрипты, выполняющие их инициализацию.
/etc/sysconfig/network-scripts/ifup — скрипт, который выполняет настройку и активацию интерфейса.
/etc/sysconfig/network-scripts/ifdown — скрипт, который выполняет деактивацию интерфейса.
/etc/sysconfig/network-scripts/ifcfg-* — конфигурационные файлы, описывающие интерфейсы системы.
/etc/init.d/network — скрипт, выполняющий настройку сетевых интерфейсов и маршрутизации при загрузке.
/etc/sysconfig/network — конфигурационный файл, содержащий имя хоста, IP-адрес основного шлюза и IP-адреса основного и вспомогательного DNS-серверов:

TYPE=Ethernet NAME=eth0 DEVICE=eth0 ONBOOT=yes DNS1=141.8.194.254 DNS2=141.8.197.254 NETMASK=255.255.255.0 BOOTPROTO=static IPADDR=123.123.123.123 GATEWAY=123.123.123.1

IPv6

Адрес можно добавить на тот же интерфейс, что и IPv4, новый создавать не нужно.

На нашей площадке используется универсальный шлюз fe80::1 .

CentOS

Для работы с IPv6 необходимо добавить следующие директивы в конфигурационный файл /etc/sysconfig/network :

NETWORKING_IPV6=yes IPV6_DEFAULTDEV=eth0 IPV6_DEFAULTGW=fe80::1
  • NETWORKING_IPV6 — включаем поддержку IPV6.
  • IPV6_DEFAULTDEV — интерфейс по умолчанию.
  • IPV6_DEFAULTGW — gateway по умолчанию.

IP-адрес назначается в конфигурационном файле /etc/sysconfig/network-scripts/ifcfg-* :

IPV6INIT=yes IPV6ADDR=2a0a:2b40::4:1701/64

Debian/Ubuntu

IP-адрес добавляется на интерфейс в файле /etc/network/interfaces :

iface eth0 inet6 static address 2a0a:2b40::4:16d1 netmask 64 gateway fe80::1

Ubuntu 16.04 LTS

От других систем семейства отличается имя интерфейса, вместо eth0 – ens3.

iface ens3 inet6 static address 2a0a:2b40::4:16d1 netmask 64 gateway fe80::1

Ubuntu 18.04 LTS

В файл /etc/netplan/50-cloud-init.yaml нужно добавить:

addresses: - 2a0a:2b40:fa:a31::/64 gateway6: fe80::1

И применить изменения командой netplan apply.

Несколько IP-адресов

IPv4

Чтобы назначить дополнительные IPv4-адреса на тот же самый интерфейс, необходимо создать виртуальный интерфейс в виде имя_интерфейса:номер, например eth0:0 .

В остальном интерфейс настраивается аналогично физическому.

CentOS

$ cat /etc/sysconfig/network-scripts/ifcfg-eth1:0 DEVICE=eth1:0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.1 NETMASK=255.255.255.0

Debian/Ubuntu

$ cat /etc/network/interfaces source /etc/network/interfaces.d/* auto eth0 iface ens6 inet static address 192.168.0.1 netmask 255.255.255.0 auto eth0:0 iface ens6:0 inet static address 192.168.1.1 netmask 255.255.255.0

Ubuntu 16.04 LTS

Для данной ОС не требуется создавать виртуальный интерфейс, достаточно добавить второй IP-адрес на уже существующий, например:

$ cat /etc/network/interfaces source /etc/network/interfaces.d/* auto ens6 iface ens6 inet static address 192.168.0.1 netmask 255.255.255.0 iface ens6 inet static address 192.168.1.1

Ubuntu 18.04 LTS с netplan

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

$cat /etc/netplan/50-cloud-init.yaml network: version: 2 ethernets: ens3: addresses: - 185.185.68.210/22 - 141.8.198.107/22 gateway4: 185.185.68.1 nameservers: addresses: - 141.8.194.254 - 141.8.197.254 routes: - to: 185.185.68.210/22 via: 185.185.68.1 - to: 141.8.198.107/22 via: 141.8.198.1

IPv6

Несколько IPv6-адресов можно назначать на один интерфейс без создания виртуального. При этом gateway указывается только один раз. Например:

CentOS

$ cat /etc/sysconfig/network-scripts/ifcfg-eth0 IPV6INIT=yes IPV6ADDR=2a0a:2b40::4:1701/64 IPV6ADDR_SECONDARIES="2a0a:2b40::4:1702/64 2a0a:2b40::4:1703/64"

Debian/Ubuntu

$ cat /etc/network/interfaces iface eth0 inet6 static address 2a0a:2b40::4:16d1 netmask 64 gateway 2a0a:2b40::1 iface eth0 inet6 static address 2a0a:2b40::4:16d2 netmask 64

Ubuntu 16.04 LTS

$ cat /etc/network/interfaces iface ens3 inet6 static address 2a0a:2b40::4:16d1 netmask 64 gateway 2a0a:2b40::1 iface ens3 inet6 static address 2a0a:2b40::4:16d2 netmask 64

Nameservers

Необходимые директивы для nameservers добавляются в конфигурационный файл. Указать можно столько DNS-серверов, сколько необходимо.

CentOS

DNS1=8.8.8.8 DNS2=8.8.4.4

Ubuntu/Debian

dns-nameservers 8.8.8.8 8.8.4.4

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

Обратите внимание вы не сможете использовать любые IP-адреса из диапазона приватных. IP-адрес для каждого бокса задаётся при подключении бокса в сеть. Узнать нужный адрес для приватной сети можно обратившись в службу поддержки.

Узнав нужный IP-адрес для приватной сети можно приступать к самой настройке.

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

$ ip a

У боксов без приватной сети только два интерфейса: lo и eth/ens . У боксов с приватной сетью есть ещё один интерфейс eth/ens , изначально он выключен. Чтобы его включить, надо:

Ubuntu 18.04 LTS и старше

Добавить в файл /etc/netplan/50-cloud-init.yaml :

ens6: addresses: - 10.0.0.1/8

Важно соблюдать количество пробелов как в остальном файле.

Debian

Добавить в файл /etc/network/interfaces.d/50-cloud-init :

auto eth1 iface eth1 inet static address 10.0.0.1 netmask 255.0.0.0

CentOS

Создать файл /etc/sysconfig/network-scripts/ifcfg-eth1 :

TYPE=Ethernet NAME=eth1 DEVICE=eth1 ONBOOT=yes NETMASK=255.0.0.0 BOOTPROTO=static IPADDR=10.0.0.1

Проверить работу приватной сети можно с помощью ssh, ping или любых других подходящих утилит:

ssh login@10.0.0.2 ping 10.0.0.2

Настройка mtu на интерфейсе

Параметр mtu нужно менять, если вы пользуетесь индивидуальной защитой от DDoS. В стандарте Ethernet TCP-пакеты разбиты на кадры объемом 1500 байт, но при передаче через GRE-тоннель маршрутизаторы дописывают к кадрам свои 24 байта. Принимающая система оказывается не готова к кадру размером 1524 байт, поэтому мы изменим параметр mtu на интерфейсе, уменьшив его до 1476 байт, чтобы принимающая система спокойно восприняла итоговый кадр в 1500 байт.

Ubuntu 18.04+

Дописываем mtu в конфигурационный файл /etc/netplan/50-cloud-init.yaml сразу после имени интерфейса, например:

ens3: mtu: 1476 addresses: - 185.185.68.210/22

Важно соблюдать количество пробелов как в остальном файле.

После чего перезагружаем сетевую службу командой netplan apply.

Debian

Редактируем файл /etc/network/interfaces, добавляя параметр вслед за описанием интерфейса:

auto ens3 iface ens3 inet static mtu 1476 address 123.123.123.123

Перезагружаем сеть командой systemctl restart networking.

CentOS

Вносим в файл /etc/sysconfig/network строку:

MTU=1476

И перезагружаем сетевую службу: systemctl restart network.

ifconfig

Команда ifconfig позволяет получать диагностическую информацию об интерфейсах системы и выполнять их настройку.

Формат вызова команды:

ifconfig interface options

Для получения информации, программа ifconfig может вызываться простым пользователем. Файл ifconfig находится в каталоге /sbin , чаще всего при вызове нужно указывать абсолютное путевое имя.

Без параметров программа выводит на экран информацию обо всех активных (находящих в состоянии up ) интерфейсах. Если указано имя интерфейса и отсутствуют опции, выводится информация только о нем.

Просмотр информации об интерфейсе eth0

$ ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:01:02:B4:61:10 inet addr:10.0.0.188 Bcast:10.255.255.255 Mask:255.0.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1347443 errors:0 dropped:0 overruns:0 frame:0 TX packets:865328 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:830641609 (792.1 Mb) TX bytes:72315353 (68.9 Mb) Interrupt:10 Base address:0xcc00

Формат вывода информации о интерфейсе программой ifconfig:
Характеристики канального уровня
Канальный уровень Link encap. Аппаратный MAC-адрес устройства HWaddr.
Характеристики сетевого уровня
IP-адрес интерфейса inet addr; широковещательный адрес интерфейса Bcast; маска подсети интерфейса Mask.
Флаги, метрика и MTU
Список установленных флагов интерфейса: включён UP; принимает широковещательные пакеты BROADCAST; принимает групповые пакеты MULTICAST. Среди списка установленных флагов может присутствовать слово PROMISC, означающее, что интерфейс работает в неразборчивом режиме. Установленный размер максимального блока, передаваемого через интерфейс MTU и метрика интерфейса Metric.
Информация о полученных пакетах RX
Число пакетов packets, ошибок errors, отброшенных пакетов dropped, переполнений overruns. Такое назначение полей соответствует только сетям Ethernet. В других сетях, смысл может отличаться.
Информация об отправленных пакетах
Число пакетов packets, ошибок errors, отброшенных пакетов dropped, переполнений overruns, потерь несущей carrier, коллизий collisions ; объем буфера передачи txqueuelen. Такое назначение полей соответствует только сетям Ethernet. В других сетях, смысл может отличаться.
Объем переданных данных
Количество байтов полученных RX bytes и отправленных TX bytes через интерфейс/
Аппаратные параметры
Номер линии IRQ Interrupt и адрес памяти Base address.

Назначение IP-адреса 10.0.0.1 первой Ethernet-карте

Назначение IP-адреса 10.0.0.1 первой Ethernet-карте выполняется командой:

$ ifconfig eth0 10.0.0.1

Включение интерфейса

Включение добавленного интерфейса выполняется командой:

$ ifconfig eth0 10.0.0.1 up

Маршрутизация (route)

route — утилита для настройки таблицы маршрутизации.

Просмотр таблицы маршрутизации

Вывод совпадает с выводом netstat -r :

$ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 185.185.68.1 0.0.0.0 UG 0 0 0 eth0 185.185.68.0 * 255.255.252.0 U 0 0 0 eth0 $ netstat -r Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 185.185.68.1 0.0.0.0 UG 0 0 0 eth0 185.185.68.0 * 255.255.252.0 U 0 0 0 eth0

Добавление шлюза по умолчанию

$ route add default gw 192.168.0.1

Добавление маршрута в локальную сеть

$ route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0

Добавление маршрута в удаленную сеть

$ route add -net 192.57.66.0 netmask 255.255.255.0 gw 192.168.0.2

Удаление маршрута

$ route del -net 192.57.66.0 netmask 255.255.255.0 gw 192.168.0.2

Утилита ip

Утилита ip совмещает в себе другие сетевые утилиты и позволяет производить те же самые операции, что и ifconfig, route и arp вместе взятые.

Подробную информацию об утилите можно получить с помощью help :

$ ip help Usage: ip [ OPTIONS ] OBJECT < COMMAND | help >ip [ -force ] -batch filename where OBJECT := < link | addr | addrlabel | route | rule | neigh | ntable | tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm | netns | l2tp | tcp_metrics | token | netconf >OPTIONS := < -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] | -f[amily] < inet | inet6 | ipx | dnet | bridge | link >| -4 | -6 | -I | -D | -B | -0 | -l[oops] < maximum-addr-flush-attempts >| -o[neline] | -t[imestamp] | -b[atch] [filename] | -rc[vbuf] [size]>

Разберем вывод команды подробнее.

Блок «Usage» содержит синтаксис утилиты:

ip [ OPTIONS ] OBJECT < COMMAND | help >- общий синтаксис. ip [ -force ] -batch filename - синтаксис при работе со скриптами.

В блоке «OBJECT» указаны все доступные объекты:

OBJECT :=

Часто используемые объекты:

  • address — сетевой адрес на устройстве
  • link— физическое сетевое устройство
  • monitor — мониторинг состояния устройств
  • neigh — ARP
  • route — управление маршрутизацией
  • rule — правила маршрутизации
  • tunnel — настройка туннелирования

«OPTIONS» содержит список доступных опций:

OPTIONS := < -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] | -f[amily] < inet | inet6 | ipx | dnet | bridge | link >| -4 | -6 | -I | -D | -B | -0 | -l[oops] < maximum-addr-flush-attempts >| -o[neline] | -t[imestamp] | -b[atch] [filename] | -rc[vbuf] [size]>

Часто используемые опции:

  • -v — вывод информации об утилите и ее версии
  • -s — включает вывод статистической информации
  • -f — указывает протокол для работы. Если протокол не указан, берется на основе параметров команды. Принимает одно из значений:
    • bridge — . Аналогично опции -B
    • dnet —
    • inet — . Аналогично опции -4
    • inet6 — . Аналогично опции -6
    • ipx —
    • link — означает отсутствие протокола. Аналогично опции -0

    Также при работе с утилитой ip используются различные команды и параметры.

    Команды:

    add, change, delete, flush, get, list, show, monitor, replace, restore, save, set, и update.

    Если команда не указана, выполняется show .

    Параметры:

    • dev имя_устройства — сетевое устройство.
    • up — включить.
    • down — выключить.
    • llarrr — MAC — адрес.
    • initcwnd — размер окна перегрузки TCP при инициализации.
    • window — размер окна TCP.
    • cwnd — размер окна перегрузки TCP.
    • type — тип.
    • via — подключиться к роутеру.
    • default — маршрут по умолчанию.
    • blackhole — маршрут «черная дыра» — отбрасывать пакеты и не посылать ICMP сообщения о недоступности.
    • prohibit — маршрут «запрета» — отбрасывать пакеты и возвращать ICMP сообщения о запрете доступа.
    • unreachable — маршрут «недостижимый» — отбрасывать пакеты и посылать ICMP пакеты о недостижимости узла.

    Не все команды и параметры доступны при работе с различными объектами. Подробную информацию также можно получить применив «help».

    При выводе help для объекта address блок «Usage» содержит синтаксис различных комбинаций команд и параметров:

    $ ip address help Usage: ip addr IFADDR dev STRING [ LIFETIME ] [ CONFFLAG-LIST ] ip addr del IFADDR dev STRING [mngtmpaddr] ip addr [ dev STRING ] [ scope SCOPE-ID ] [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ] [up] ip addr IFADDR := PREFIX | ADDR peer PREFIX [ broadcast ADDR ] [ anycast ADDR ] [ label STRING ] [ scope SCOPE-ID ] SCOPE-ID := [ host | link | global | NUMBER ] FLAG-LIST := [ FLAG-LIST ] FLAG FLAG := [ permanent | dynamic | secondary | primary | tentative | deprecated | dadfailed | temporary | CONFFLAG-LIST ] CONFFLAG-LIST := [ CONFFLAG-LIST ] CONFFLAG CONFFLAG := [ home | nodad | mngtmpaddr | noprefixroute ] LIFETIME := [ valid_lft LFT ] [ preferred_lft LFT ] LFT := forever | SECONDS

    Примеры

    Показать все соединения

    Сокращенный вывод ifconfig без параметров:

    $ ip link show 1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether 52:54:00:72:40:d3 brd ff:ff:ff:ff:ff:ff 4: eth1: mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether 52:54:00:58:e5:fc brd ff:ff:ff:ff:ff:ff

    Отображение информации об интерфейсе eth0

    $ ip link show eth0 2: eth0: mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether 52:54:00:72:40:d3 brd ff:ff:ff:ff:ff:ff

    Включение интерфейса eth1

    $ ip link set eth1 up

    Вывод всех интерфейсов и IP-адресов

    $ ip address show 1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:72:40:d3 brd ff:ff:ff:ff:ff:ff inet 141.8.196.228/24 brd 141.8.196.255 scope global eth0 valid_lft forever preferred_lft forever inet6 2a0a:2b40::4:1703/64 scope global valid_lft forever preferred_lft forever inet6 2a0a:2b40::4:1702/64 scope global valid_lft forever preferred_lft forever inet6 2a0a:2b40::4:1701/64 scope global valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fe72:40d3/64 scope link valid_lft forever preferred_lft forever 4: eth1: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:58:e5:fc brd ff:ff:ff:ff:ff:ff inet 192.168.0.1/24 brd 192.168.0.255 scope global eth1 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fe58:e5fc/64 scope link valid_lft forever preferred_lft forever

    Установка/удаление IP-адреса для интерфейса eth1

    $ ip addr add 192.168.0.10/24 dev eth1
    $ ip addr del 192.168.0.10/24 dev eth1

    Отображение маршрута к указанной сети

    $ ip route get 192.168.0.0/24

    Отображение маршрута к указанной сети от указанного интерфейса

    $ ip route get 192.168.0.0/24 from 141.8.196.228 broadcast 192.168.0.0 from 141.8.196.228 dev eth1 cache

    Создание/удаление маршрута

    $ ip route add 10.10.20.0/24 via 192.168.50.100
    $ ip route delete 10.10.20.0/24

    Создание маршрута по умолчанию

    $ ip route add default via 192.168.50.100

    Создание маршрута к указанной сети

    $ ip route add 10.10.20.0/24 dev eth0

    Как и для утилиты route, команды можно сокращать. Например, ip l тоже самое, что и ip link show .

    Перезапуск сетевых сервисов

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

    Название самого сервиса будет отличаться в зависимости от выбранного дистрибутива, для Ubuntu/Debian это networking, для CentOS — network.

    Debian/Ubuntu

    service networking restart /etc/init.d/networking restart systemctl restart networking

    CentOS

    /etc/init.d/network restart systemctl restart network

    Что такое сетевые интерфейсы и как они устроены

    Рассказываем, какими бывают виртуальные сетевые интерфейсы, и показываем, как с ними работать с помощью базовых утилит и файрволов.

    Изображение записи

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

    Для обычного пользователя интерфейс выглядит как физическая сетевая плата (network interface controller, NIC), однако есть и виртуальные адаптеры.

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

    Кроме того, он может передавать данные через физические адаптеры и используется в облачной инфраструктуре для подключения виртуальных устройств. Виртуальные интерфейсы можно использовать для объединения нескольких аппаратных интерфейсов или организации VPN-туннелей.

    Один из самых популярных виртуальных сетевых интерфейсов — loopback. Его используют для подключения приложений и процессов на одном компьютере к другим приложениям и процессам. Во многих операционных системах он обозначается как адаптер lo с IP-адресом 127.0.0.1.

    Идентификаторы и свойства сетевых интерфейсов

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

    Однако есть идентификаторы, по которым нельзя однозначно определить интерфейс. Как правило, сетевые адаптеры идентифицируют по IP-адресу, реже — по MAC. Также можно идентифицировать интерфейс по расположению PnP (номеру слота PCI) или его номеру. На практике самыми распространенными идентификаторами считаются имена адаптеров (lo, eth0, eth1 и другие).

    Как работает сетевой интерфейс

    Во время работы приложение отправляет данные на сетевой интерфейс, где данные делятся на части и инкапсулируются в необходимые блоки, а позже — в пакеты, если их нужно передать по TCP/IP. Далее они отправляются на нужный сетевой интерфейс с IP-получателя.

    Например, на устройстве может быть подключено несколько проводных интерфейсов, каждому из которых присваивается свой сетевой адрес в зависимости от того, к какой подсети он подключен. При первой установке Ethernet в операционной системе запускается автоматическая настройка — интерфейсу присваивается имя ent0. А также добавляются адаптеры Ethernet 2 и IEEE 802.3 с именами en0 и et0 соответственно.

    Физическое соединение

    При физическом Ethernet-соединении используются MAC-адреса — уникальные идентификаторы, которые присвоены всем устройствам внутри компьютерной сети. Администратор сети может назначать их самостоятельно — например, если нужно организовать подключение по технологии Token Ring.

    Есть несколько типов MAC-адресов:

    • индивидуальный (unicast), когда данные получает только один компьютер в сети;
    • групповой (multicast), когда данные поступают на все устройства с этим адресом (например, 01:00:0C:CC:CC:CC);
    • широковещательный (broadcast), когда данные получают все устройства в сети (FF:FF:FF:FF:FF:FF).

    Если в одной сети есть два устройства с одинаковыми MAC-адресами, они будут работать нестабильно или начнутся проблемы в таблице коммутации (mac-flapping).

    MAC-адреса лежат в основе сетей на канальном уровне, которую используют протоколы более высокого (сетевого) уровня. Для преобразования MAC-адресов в адреса сетевого уровня и обратно необходимо использовать специальные протоколы — например, ARP и RARP.

    Протоколы и адресация

    Для обмена данными в сети необходимо использовать сетевые протоколы. Это набор правил, который определяет, каким образом передавать информацию между физическими устройствами или логическими объектами (процессами).

    К семейству протоколов TCP/IP обычно относят весь набор реализаций стандартов RFC. Приведем основные из них:

    • Internet Protocol, IP;
    • Address Resolution Protocol, ARP;
    • Internet Control Message Protocol, ICMP;
    • User Datagram Protocol, UDP;
    • Transport Control Protocol, TCP;
    • Routing Information Protocol, RIP;
    • Telnet;
    • Simple Mail Transfer Protocol, SMTP;
    • Domain Name System, DNS.

    Во время конфигурирования устройств администратор назначает для них IP-адреса поколения IPv4 или IPv6. Первый — в 32-битном или 4-байтном формате, второй — в 128-битном.

    Отличия ipv4 и ipv6

    Каждый адрес — это совокупностью двух идентификаторов: номера сети (NetID) и хоста (HostID). Устройства с одинаковыми номерами сети могут взаимодействовать друг с другом. Если же они разные, для соединения нужен маршрутизатор.

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

    Для IPv6 маски подсети работают схожим образом, но вместо единицы используется f. Кроме того, разрядов в такой маске будет больше, чем в маске IPv4. Если в четвертой версии их 32, то в шестой уже 128, что равно количеству бит в соответствующих IPv4- и IPv6-адресах.

    Обработка ошибок и контроль потока

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

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

    Кроме того, в стеке TCP/IP предусмотрена функция управления потоком, которая ограничивает скорость передачи данных.

    Управление соединениями

    Чтобы установить соединение, протокол TCP использует «тройное рукопожатие». Приложение на хосте отправляет серверу запрос на подключение. Машина подтверждает запрос, после чего клиент определяет параметры соединения. Далее начинается обмен данными на прикладном уровне. Прервать процесс может как клиент, так и сервер.

    Посмотреть созданные подключения можно с помощью команды netstat с флагом -a. Чтобы посмотреть подключения конкретно по протоколу TCP, необходимо использовать параметр -p tcp.

    параметр -p tcp

    Прием и передача данных

    Уровень сетевого интерфейса отвечает за добавление и удаление заголовков протоколов передачи, необходимых для доставки сообщений. Программа передает данные на сетевой интерфейс, информация спускается «вниз» по модели TCP/IP. Далее на каждом уровне соответствующий сетевой протокол инкапсулирует исходные данные. В адаптере сообщение из цифрового сигнала преобразуется в аналоговый и отправляется до пункта назначения.

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

    Если сумма совпадает, данные помещаются в оперативную память устройства. При несовпадении — отбрасываются, а на сервер отправляется сигнал об ошибке. Для обработки такой информации адаптер и сервер затрачивают ресурсы, поэтому иногда пользователи посылают много «мусорных» пакетов, чтобы нагрузить системы и сделать их недоступными. Это обычно называют DOS-атаками.

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

    Debian и Ubuntu

    Перед настройкой сетевого интерфейса необходимо узнать его имя. Это можно сделать через список интерфейсов.

    $ ip addr 

    Пример интерфейсов

    Из примера выше видим, что к устройству подключены интерфейсы localhoct (lo) и Ethernet (ens33). Теперь мы можем, например, настроить динамический или статический IP.

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

    настройка статического ip

    В этих примерах мы используем следующие параметры:

    • iface ens33 inet static/dhcp — указывает, что интерфейс (ens33) находится в диапазоне адресов IPv4 (inet) со статическим (static) / динамическим (dhcp) IP;
    • address 192.168.0.1 — указывает IP-адрес нашей сетевой карты;
    • netmask 255.255.255.0 — указывает значение маски подсети;
    • gateway — адрес шлюза;
    • dns-nameservers 192.168.0.254 8.8.8.8 — адреса DNS-серверов;
    • auto ens33 — указывает системе, что интерфейс ens33 необходимо автоматически включать при загрузке системы с вышеуказанными параметрами.

    Redhat, Fedora, CentOS

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

    Утилиты для работы с интерфейсами сети

    ifconfig: просмотр информации об интерфейсах

    ifconfig (Interface Configuration) — это командная утилита (драйвер) в UNIX и UNIX-подобных системах, таких как Linux. Она позволяет просматривать и изменять конфигурации сетевых интерфейсов.

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

    вывод ifconfig -a

    route: настройка таблицы маршрутизации

    Команду route используют для просмотра и настройки таблицы маршрутизации в операционных системах UNIX и UNIX-подобных системах, включая Linux.

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

    вывод route

    ip: настройка и управление сетевыми интерфейсами

    Утилита ip — это мощный инструмент для настройки и управления сетевыми интерфейсами в операционных системах Linux. Она предоставляет более современный и гибкий подход к работе с сетевыми настройками, если сравнивать с устаревшей утилитой ifconfig.

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

    вывод ip link show

    Межсетевые экраны в разных ОС

    Для контроля соединений и безопасности также используют встроенные межсетевые экраны. Среди них — Microsoft Defender (Windows) и Netfilter (Linux). С помощью них можно проверять пакеты, состояния соединений, программы и протоколы.

    Пример настройки в Windows

    Важно: настройка может повлечь обрыв соединений. Рекомендуем выполнять инструкции только на тестовых машинах с прямым доступом.

    1. Открываем Windows Defender Firewall, переходим в Inbound rules и удаляем все правила по умолчанию.

    Win Defender Firewall

    2. Добавим новое правило. Для этого нажимаем new rule, переходим в менеджер создания правила и выбираем por. А после — определяемся с протоколом и прописываем порт.

    новое правило

    3. Далее разрешаем подключение. Для этого нужно выбрать пункт Allow the connection и применить его к типу инфрейсов Public. И в завершение прописываем имя правила — оно может быть любым. То же самое выполняем для всех правил из списка. Только для исходящего трафика нужно создавать правила в разделе Outbound Rules.

    Пример настройки в Debian и Ubuntu

    Воспользуемся стандартной утилитой iptables и попробуем настроить разрешение для подключения по SSH.

    Так как с утилитой можно работать только терминально, необходимо изучить список основных параметров и таблиц. Об этом мы подробно рассказали в отдельной статье. Поэтому сразу перейдем к команде, с помощью которой добавим разрешение для межсетевого экрана:

    sudo iptables -A INPUT -p tcp --syn -m conntrack --ctstate NEW --dport 22 -j ACCEPT 

    Базовый файрвол Selectel

    Если необходимо закрыть доступ к целой группе серверов, можно использовать базовый файрвол Selectel. Он работает, как стандартный ACL (access control list), iptables или Microsoft Defender.

    Базовый файрвол — бесплатный stateless-файрвол (файрвол без сохранения состояния). Анализирует и фильтрует весь входящий и исходящий IPv4-трафик по добавленным правилам фильтрации. Поддерживает протоколы: TCP, UDP, ICMP, IPIP, GRE.

    файрвол Selectel

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

    Заключение

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *