Введение
В этой лабораторной работе вы научитесь определять основную информацию о сетевых адресах в системе 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 interface), виртуальный сетевой интерфейс, который система использует для связи с самой собой. Он всегда имеет 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)
На этом шаге вы найдете IPv4-адрес (Internet Protocol Version 4). В отличие от физического 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)
На этом заключительном шаге вы определите IPv6-адрес (Internet Protocol Version 6). 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.



