Управление сетевыми подключениями

Конфигурация сети и команда ip

Последнее обновление: 17.03.2024

Сегодня почти каждый компьютер так или иначе подключен к какой-нибудь сети и взаимодействует в сети с другими компьютерами. Соответственно управление сетевыми подключениями играет важную роль, в том числе и в Linux. На аппаратном уровне за взаимодействие с сетью отвечает сетвая карта. Каждая сетевая карта имеет MAC-адрес (Media Access Control). Это касается не только проводной сетевой карты персонального компьютера, но и мобильного телефона, который используется для работы в интернете. Эти MAC-адреса уникальны во всем мире.

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

Поскольку IP-адреса имеют числовой формат (например, 179.123.45.67), который не очень удобаен для обычных людей, также для обращения к другим компьютерам в сети применяются специальные имена или домены. Эти имена преобразуются в IP-адреса сервером службы DNS (Domain Name Service). Таким образом, чтобы компьютер мог взаимодействовать с другими компьютерами в сети, у этого компьютера должен быть IP-адрес, и он должен знать, где найти DNS-серверы. Подобную информацию можно установить вручную, но во многих случаях она устанавливается автоматически с помощью DHCP-сервера.

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

ip [ OPTIONS ] OBJECT { COMMAND | help }

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

  • link: используется для управления или отображения свойств сетевого устройства, мониторинга текущего состояния сетевого интерфейса.

  • addr/address: используется для управления или отображения сетевых адресов IPv4 или IPv6 на устройстве.

  • route: используется для управления или отображения записей в таблице маршрутизации.

  • rule: используется для управления или отображения правил в базе данных политики маршрутизации.

  • neigh: используется для управления или отображения записей в кэше ARP. ARP предоставляет информацию о том, какой IP-адрес каким MAC-адресом используется. Используя эту опцию, можно изменить информацию ARP или отобразить ее.

  • netns: используется для управления пространствами имен IP-сетей — технология, которая обычно используется в облачной среде и позволяет управлять изолированными сетевыми средами, используя один и тот же сетевой интерфейс.

  • tunnel: используется для управления или отображения IP-туннелей. Обычно применяется только при настройке подключений к виртуальной частной сети (VPN).

  • madr: используется для управления или отображения адресов многоадресной рассылки для интерфейсов. Адрес многоадресной рассылки — это групповой адрес, который можно добавить на сетевую карту. Использование многоадресной рассылки позволяет пользователю или приложению одновременно обращаться ко всем узлам, которые предоставляют одну и ту же функциональность.

  • mroute: используется для управления или отображения записей кэша многоадресной маршрутизации.

  • monitor: используется для наблюдения за тем, что происходит на данном устройстве.

Для каждого из объектов можно использовать некоторый набор опций. При этом для каждого объекта этот набор опций может отличаться. Самый простой способ узнать об этих опциях — использовать команду ip, за которой следует объект, а затем ключевое слово help. Например, чтобы узнать, как использовать объект monitor, надо ввести следующую команду:

ip monitor help

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

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

ip addr show

Например:

eugene@Eugene:~$ ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN group default qlen 1000
    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: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 15:77:eb:f6:01:51 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.108/24 brd 192.168.0.255 scope global dynamic noprefixroute enp6s0
       valid_lft 6716sec preferred_lft 6716sec
    inet6 1d82::61ec:e5ee:fe37:156/64 scope link 
       valid_lft forever preferred_lft forever
3: wlp4s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:72:8b:7e:68:f0 brd ff:ff:ff:ff:ff:ff

Здесь видно, на компьютере условно три сетевых устройства, каждое из которых предваряется номером. Так устройство номер 1 - lo или loopback device (устройство обратной связи) представляет сетевой интерфейс, используемый для внутренних целей на компьютере.

Для каждого устройства задан ряд атрибутов в угловых скобках. В частности, атрибут BROADCAST указывает, что устройство способно отправлять широковещательные сообщения на другие узлы сети. Атрибут MULTICAST указывает, что устройство также может отправлять многоадресные пакеты. Атрибут UP указывает, что устройство работает.

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

Строки, которые начинаются с inet, показывают назначенные сетевой карте адреса с соответствующими масками подсети.

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

ip link show

Еще одна распространненая задача - просмотр таблицы маршрутов:

ip route show
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850