Определение MAC- и IP-адресов в Linux

CompTIABeginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы узнаете, как находить важную информацию о сетевых адресах в системе 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

Вы увидите подробный вывод со списком всех сетевых интерфейсов. Обычно присутствуют следующие интерфейсы:

  1. lo: Это интерфейс обратной петли (loopback), виртуальный сетевой интерфейс, который система использует для связи с самой собой. Он всегда имеет IP-адрес 127.0.0.1.
  2. eth0 (или похожее имя, например enp0s5): Это ваш основной Ethernet-интерфейс, который подключает систему к внешней сети. Обратите внимание на поля altname, которые содержат альтернативные имена интерфейса.
  3. 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.