Определение 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 interface), виртуальный сетевой интерфейс, который система использует для связи с самой собой. Он всегда имеет 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)

На этом шаге вы найдете 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.