Введение
В этой лабораторной работе вы узнаете, как находить важную информацию о сетевых адресах в системе Linux с помощью современной и мощной команды ip a. Основная цель — научиться эффективно проверять сетевые интерфейсы вашей системы и находить конкретные данные в выводе команды, включая MAC-адреса, IPv4-адреса и IPv6-адреса.
Вы начнете с выполнения команды ip a, чтобы получить полный обзор всех сетевых интерфейсов, таких как интерфейс обратной петли (lo) и основной Ethernet-интерфейс (eth0). Затем вы научитесь анализировать подробный вывод, чтобы находить строку link/ether для MAC-адреса, строку inet для IPv4-адреса и строку inet6 для IPv6-адреса, что закрепит ваше понимание основ сетевого анализа в Linux.
Отображение информации обо всех сетевых интерфейсах с помощью ip a
На этом этапе вы узнаете, как использовать команду ip, которая является современным и предпочтительным инструментом для просмотра и управления сетевыми интерфейсами, IP-адресами и маршрутами в системах Linux. Мы начнем с самой базовой команды для отображения информации обо всех доступных сетевых интерфейсах.
Команда ip a — это сокращение от ip address show. Она предоставляет исчерпывающий обзор сетевой конфигурации вашей системы.
Сначала убедитесь, что вы находитесь в терминале. Ваш путь по умолчанию — ~/project. Теперь выполните команду ip a, чтобы вывести список всех сетевых интерфейсов и связанных с ними адресов.
ip a
Вы увидите подробный вывод со списком всех сетевых интерфейсов. Обычно присутствуют следующие интерфейсы:
lo: Это интерфейс обратной петли (loopback), виртуальный сетевой интерфейс, который система использует для связи с самой собой. Он всегда имеет IP-адрес127.0.0.1.eth0(или похожее имя, напримерenp0s5): Это ваш основной Ethernet-интерфейс, который подключает систему к внешней сети. Обратите внимание на поляaltname, которые содержат альтернативные имена интерфейса.docker0: Если установлен Docker, вы можете увидеть интерфейсdocker0— это виртуальный мост, созданный Docker для сетевого взаимодействия контейнеров.
Ваш вывод будет выглядеть примерно так, как показано ниже, хотя конкретные имена и адреса могут отличаться.
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:16:3e:0e:d8:3c brd ff:ff:ff:ff:ff:ff
altname enp0s5
altname ens5
inet 172.16.50.202/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
valid_lft 1892159975sec preferred_lft 1892159975sec
inet6 fe80::216:3eff:fe0e:d83c/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:60:7e:6f:bc brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
Уделите время изучению вывода. В следующих шагах мы разберем эту информацию, чтобы найти конкретные детали, такие как MAC-адрес и IP-адреса.
Поиск MAC-адреса (link/ether)
На этом этапе вы научитесь определять MAC-адрес (Media Access Control) из вывода команды ip a. MAC-адрес — это уникальный идентификатор аппаратного уровня, присвоенный сетевой карте (NIC). Его также называют физическим адресом, и он представлен в виде 12-значного шестнадцатеричного числа.
На предыдущем шаге вы выполнили ip a и увидели много информации. Теперь давайте сосредоточимся на поиске MAC-адреса. Найдите свой основной сетевой интерфейс, который обычно называется eth0. MAC-адрес находится в строке, начинающейся с link/ether.
Чтобы упростить задачу, можно передать вывод команды ip a в команду grep, чтобы отфильтровать только строку, содержащую MAC-адрес. Символ конвейера | берет вывод команды слева и передает его в качестве входных данных для команды справа.
В терминале выполните следующую команду:
ip a | grep "link/ether"
Эта команда отобразит только те строки из вывода ip a, которые содержат строку "link/ether".
Вы увидите гораздо более короткий вывод, что позволит легко заметить MAC-адреса. 12 шестнадцатеричных символов, разделенных двоеточиями, и есть MAC-адреса.
link/ether 00:16:3e:0e:d8:3c brd ff:ff:ff:ff:ff:ff
link/ether 02:42:60:7e:6f:bc brd ff:ff:ff:ff:ff:ff
Интерфейс обратной петли lo не имеет традиционного MAC-адреса, поэтому он не появится в этом отфильтрованном выводе. Адрес 00:16:3e:0e:d8:3c в данном примере является MAC-адресом интерфейса eth0. Ваш адрес будет другим, но будет иметь тот же формат.
Поиск IPv4-адреса (inet)
На этом этапе вы найдете IP-адрес версии 4 (IPv4). В отличие от физического MAC-адреса, IP-адрес — это логический адрес, назначенный вашему устройству для связи в сети. IPv4-адреса являются наиболее распространенным форматом и представлены четырьмя числами, разделенными точками (например, 192.168.1.10).
В выводе команды ip a IPv4-адрес находится в строке, начинающейся с inet. Мы можем снова использовать команду grep для фильтрации вывода, как мы делали это для MAC-адреса. Чтобы избежать совпадения с inet6, рекомендуется добавить пробел после inet в шаблоне поиска.
В терминале выполните следующую команду, чтобы найти все IPv4-адреса, настроенные в вашей системе:
ip a | grep "inet "
Команда отфильтрует вывод, чтобы показать только строки, содержащие IPv4-адреса. Обычно вы увидите несколько: один для интерфейса обратной петли (lo), один для основного сетевого интерфейса (eth0) и, возможно, другие, такие как docker0.
inet 127.0.0.1/8 scope host lo
inet 172.16.50.202/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
Из этого вывода можно выделить несколько IPv4-адресов:
127.0.0.1: Это адрес обратной петли, который система использует для связи с самой собой.172.16.50.202/24: Это основной IPv4-адрес для интерфейсаeth0, используемый для связи с другими устройствами в сети./24— это нотация CIDR, которая определяет маску подсети. Ваш адрес будет другим.172.17.0.1/16: Это IPv4-адрес для мостаdocker0.
Поиск IPv6-адреса (inet6)
На этом заключительном этапе вы определите IP-адрес версии 6 (IPv6). IPv6 является преемником IPv4 и был разработан для решения проблемы исчерпания IPv4-адресов. IPv6-адреса имеют длину 128 бит и записываются в шестнадцатеричной нотации, разделенные двоеточиями (например, 2001:0db8:85a3:0000:0000:8a2e:0370:7334).
Как и в случае с IPv4, команда ip a отображает информацию об IPv6. Строка, содержащая IPv6-адрес, четко помечена как inet6. Мы воспользуемся grep в последний раз, чтобы выделить эту информацию.
В терминале выполните следующую команду, чтобы найти все IPv6-адреса в вашей системе:
ip a | grep "inet6"
Эта команда покажет строки, содержащие IPv6-адреса для ваших интерфейсов.
inet6 ::1/128 scope host
inet6 fe80::216:3eff:fe0e:d83c/64 scope link
Из этого вывода можно выделить два IPv6-адреса:
::1/128: Это сжатый формат IPv6-адреса обратной петли, эквивалентный127.0.0.1в IPv4.fe80::216:3eff:fe0e:d83c/64: Это link-local (локальный для канала) IPv6-адрес для интерфейсаeth0. Link-local адреса автоматически настраиваются на всех интерфейсах с поддержкой IPv6 и используются для связи только в пределах одного сегмента локальной сети. Ваш адрес будет другим.
Поздравляем! Теперь вы научились использовать команду ip a для определения MAC-адреса, IPv4-адреса и IPv6-адреса в системе Linux.
Резюме
В этой лабораторной работе вы узнали, как использовать команду ip a для определения сетевых адресов в Linux. Вы выполнили ip a — современный и предпочтительный инструмент для настройки сети — чтобы отобразить исчерпывающую информацию обо всех сетевых интерфейсах. Вывод показал данные как для интерфейса обратной петли (lo), так и для основного Ethernet-интерфейса (eth0), предоставив полный обзор сетевой конфигурации системы.
Изучая вывод команды ip a, вы научились находить конкретные сетевые идентификаторы. Вы успешно определили MAC-адрес, расположенный в строке с меткой link/ether. Кроме того, вы нашли IPv4-адрес системы рядом с меткой inet и IPv6-адрес рядом с меткой inet6, освоив фундаментальный навык получения важной информации о сетевых адресах в системе Linux.



