20. ifconfig vs ip: что отличает и сравнение сетевой конфигурации

Распределения на основе Linux имеют набор команд, которые обеспечивают способ настройки сети легким и мощным образом через командную строку. Этот набор команд доступен из пакета net-tools, который существует давно практически во всех распределениях, и включает команды такие как: ifconfig, route, nameif, iwconfig, iptunnel, netstat, arp.

Ifconfig Vs IP Command

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

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

ip – Замена для ifconfig

ifconfig существует уже давно и до сих пор используется для настройки, отображения и управления сетевыми интерфейсами многими, но теперь на существующих в распределениях Linux есть новая альтернатива, которая намного мощнее. Эта альтернатива – это команда ip из пакета iproute2util.

Хотя эта команда может показаться немного сложной сначала, но она намного более широкая в функциональном плане, чем ifconfig. Она функционально организована на двух уровнях сетевого стека, т.е. Уровень 2 (Уровень Связи), Уровень 3 (Уровень IP) и выполняет работу всех вышеупомянутых команд из пакета net-tools.

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

  1. Отображение или изменение свойств интерфейса.
  2. Добавление, удаление записей кеша ARP вместе с созданием новой статической записи ARP для хоста.
  3. Отображение MAC-адресов, связанных со всеми интерфейсами.
  4. Отображение и изменение таблиц маршрутизации ядра.

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

Теперь мы можем начать подчеркивать особенности ifconfig и то, как они эффективно заменяются командой ip.

Команды ip против ifconfig

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

Отображение всех сетевых интерфейсов в Linux

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

Команда ifconfig
$ ifconfig
ifconfig: Check IP Address
Команда ip
$ ip a
ip: Check IP Address

Добавление или удаление IP-адреса в Linux

Ниже приведена команда для назначения IP-адреса 192.168.80.174 интерфейсу eth0.

ifconfig – Добавление/удаление IP-адреса
# ifconfig eth0 add 192.168.80.174

Синтаксис для добавления/удаления интерфейса с помощью команды ifconfig:

# ifconfig eth0 add 192.168.80.174
# ifconfig eth0 del 192.168.80.174
ip – Добавление/удаление IP-адреса
# ip a add 192.168.80.174 dev eth0

Синтаксис для добавления/удаления интерфейса с помощью команды ip:

# ip a add 192.168.80.174 dev eth0
# ip a del 192.168.80.174 dev eth0

Добавление MAC-адреса аппаратного обеспечения на сетевой интерфейс

Ниже приведена команда для установки аппаратного адреса интерфейса eth0 в указанное значение. Это можно проверить, проверив значение HWaddr в выводе команды ifconfig.

ifconfig – Добавление MAC-адреса

Здесь синтаксис для добавления MAC-адреса с использованием команды ifconfig:

# ifconfig eth0 hw ether 00:0c:29:33:4e:aa
ip – Добавление MAC-адреса

Здесь синтаксис для добавления MAC-адреса с использованием команды ip:

# ip link set dev eth0 address 00:0c:29:33:4e:aa

Настройка других конфигураций сетевого интерфейса

Помимо установки IP-адреса или MAC-адреса, другие конфигурации, которые можно применить к интерфейсу, включают:

  1. MTU (Максимальный размер передаваемого блока)
  2. Флаг многоадресной рассылки
  3. Длина очереди передачи
  4. Режим promiscuous
  5. Включить или отключить все многоадресные режимы
ifconfig – Другие конфигурации сети
ip – Другие конфигурации сети

a. Set MTU value to 2000.

 

# ifconfig eth0 mtu 2000
# ip link set dev eth0 mtu 2000

b. Enable or Disable multicast flag.

 

# ifconfig eth0 multicast
# ip link set dev eth0 multicast on

c. Setting the transmit queue length.

 

# ifconfig eth0 txqueuelen 1200
# ip link set dev eth0 txqueuelen 1200

d. Enabling or disabling promiscuous mode.

 

# ifconfig eth0 promisc
# ip link set dev eth0 promisc on

e. Enable or disable all multicast mode.

 

# ifconfig eth0 allmulti
# ip link set dev eth0 allmulti on

5. Включение или отключение сетевого интерфейса

Ниже приведены команды для включения или отключения определенного сетевого интерфейса.

ifconfig – Отключение/Включение сетевого интерфейса

Ниже приведена команда для отключения интерфейса eth0, и это можно проверить по выводу ifconfig, который по умолчанию показывает только те интерфейсы, которые активны.

# ifconfig eth0 down

Чтобы повторно включить интерфейс, просто замените down на up.

# ifconfig eth0 up
ip – Отключение/Включение сетевого интерфейса

Ниже приведена команда ip в качестве альтернативы ifconfig для отключения определенного интерфейса. Это можно проверить по выводу команды 'ip a', которая по умолчанию показывает все интерфейсы, активны они или нет, но подчеркивает их статус вместе с описанием.

# ip link set eth0 down

Чтобы повторно включить интерфейс, просто замените down на up.

# ip link set eth0 up

6. Включить или отключить использование протокола ARP

Ниже приведены команды для включения или отключения протокола ARP на определенном сетевом интерфейсе.

ifconfig – Включение/Отключение протокола ARP

Команда включает протокол ARP для использования с интерфейсом eth0. Чтобы отключить эту опцию, просто замените arp на -arp.

# ifconfig eth0 arp
ip – Включение/Отключение протокола ARP

Это команда – альтернатива ip для включения ARP на интерфейсе eth0. Чтобы отключить, просто замените on на off.

# ip link set dev eth0 arp on

Вывод

Таким образом, мы выделили особенности команды ifconfig и то, как их можно выполнить с помощью команды ip. В настоящее время дистрибутивы Linux предоставляют пользователю обе команды, чтобы он мог использовать их в зависимости от своего удобства. Итак, какая команда удобнее для вас, которую вы предпочитаете использовать? Укажите это в своих комментариях.

Если вы хотите узнать больше об этих двух командах, то вам следует ознакомиться с нашими предыдущими статьями, которые показывают некоторые практические примеры команд ifconfig и ip в более подробном виде.

Не пропустите: 15 примеров “ifconfig” для настройки сетевого интерфейса в Linux

Не пропустите: 10 примеров команды “ip” для настройки сетевого интерфейса в Linux

Source:
https://www.tecmint.com/ifconfig-vs-ip-command-comparing-network-configuration/