ifconfig или ip: в чем разница и их сравнение

Сети Linux

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

Ifconfig-Vs-IP-Command

 

 

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

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

 

 

Команда ip — замена для команды ifconfig

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

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

 

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

  • Отображение или изменение свойств интерфейса.
  • Добавление, удаление записей ARP Cache вместе с созданием новой записи Static ARP для узла.
  • Отображение MAC-адресов, связанных со всеми интерфейсами.
  • Отображение и изменение таблиц маршрутизации ядра.

 

 

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

 

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

 

 

Команды ip и ifconfig

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

 

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

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

 

Команда ifconfig
$ ifconfig

 

ifconfig-Check-IP-Address

 

 

Команда ip
$ ip a

 

ip-Check-IP-Address

 

 

2. Добавление или удаление 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

 

 

4. Добавление физического адрес (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

 

 

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

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

  • MTU (максимальная единица передачи)
  • Многоадресный флаг
  • Длина очереди передачи
  • Режим Promiscuous 
  • Включение или отключение всех режимов многоадресной рассылки

 

 

а. Установка значения MTU на 2000.
ifconfig — Сетевые конфигурации MTU
# ifconfig eth0 mtu 2000

 

 

IP — Сетевые конфигурации MTU
# ip link set dev eth0 mtu 2000

 

 

б. Включение или отключение флага многоадресной рассылки.
ifconfig — флаг многоадресной рассылки
# ifconfig eth0 multicast

 

 

IP — флаг многоадресной рассылки
# ip link set dev eth0 multicast on

 

 

с. Установка длины очереди передачи.
ifconfig — очередь передачи
# ifconfig eth0 txqueuelen 1200

 

 

IP — очередь передачи
# ip link set dev eth0 txqueuelen 1200

 

d. Включение или отключение режима Promiscuous.
ifconfig — режим Promiscuous
# ifconfig eth0 promisc

 

 

IP — режим Promiscuous
# ip link set dev eth0 promisc on

 

е. Включение или отключение всех режимов многоадресной рассылки.
ifconfig — многоадресная рассылки
# ifconfig eth0 allmulti

 

 

IP — многоадресная рассылки
# ip link set dev eth0 allmulti on

 

 

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

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

 

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

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

# ifconfig eth0 down

 

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

# ifconfig eth0 up

 

ip — отключение / включение сетевого интерфейса

Приведенная ниже команда ip является альтернативой для ifconfig для отключения определенного интерфейса. Это может быть подтверждено выводом команды «ip a», которая по умолчанию показывает все интерфейсы, down или up, но выводит их статус вместе с описанием:

# 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

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

# ip link set dev eth0 arp on

 

Итоги

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

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

 

Не пропустите«15 полезных команд ifconfig для настройки сетевого интерфейса в Linux»

Не пропустите«10 полезных «IP» команд для настройки сетевых интерфейсов»

 

 

Спасибо за уделенное время на прочтение статьи!

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

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасностикурсы DevNet (программируемые сети) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
Сети Linux

Больше похожих постов

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

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

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Most Viewed Posts
Меню