Использовали ли вы команду `ip` в Linux?

«Использовали ли вы команду `ip` в Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, команда ip из пакета iproute2 — это мой основной инструмент для диагностики и управления сетью в Linux. Я использую её вместо устаревших ifconfig, route и arp.

Практические примеры из моей работы в DevOps:

  1. Диагностика: Первое, что я делаю при проблемах с сетью.

    # Показать все интерфейсы с деталями (аналог `ifconfig -a`)
    ip addr show
    # Показать статистику по пакетам и ошибкам для конкретного интерфейса
    ip -s link show eth0
  2. Настройка в скриптах автоматизации (например, в облачных init-скриптах):

    # Добавить дополнительный IP-адрес к интерфейсу
    ip addr add 10.0.0.5/24 dev eth0 label eth0:0
    # Поднять/опустить интерфейс
    ip link set eth0 up
    ip link set eth0 down
  3. Работа с маршрутизацией (критично для роутинга в Docker/Kubernetes или VPN):

    # Показать таблицу маршрутизации (аналог `route -n`)
    ip route show
    # Добавить маршрут по умолчанию через шлюз
    ip route add default via 10.0.0.1 dev eth0
    # Добавить маршрут к конкретной сети
    ip route add 192.168.100.0/24 via 10.0.0.100 dev eth0

Почему ip лучше: Она поддерживает все современные сетевые функции (пространства имен, VXLAN, macvlan), имеет стабильный и машиночитаемый вывод (удобно для парсинга), а ifconfig часто не показывает, например, состояние LOWER_UP (есть ли физическая связь).