Введение
В этой лабораторной работе вы освоите основные навыки управления IP-адресацией в среде Linux. Вы начнете с использования современной команды ip для проверки сетевых интерфейсов вашей системы. После этого вы вручную настроите статический IP-адрес, установите шлюз по умолчанию для обеспечения связи с внешними сетями, а затем проверите ваше соединение с помощью утилиты ping.
Далее вы изучите динамическую настройку IP-адресации, освободив статический адрес и используя команду dhclient для автоматического получения нового IP-адреса от DHCP-сервера. В завершение лабораторной работы вы используете команды arp и traceroute для дальнейшей проверки и верификации вашей сетевой конфигурации, убедившись, что все компоненты работают корректно.
Проверка сетевых интерфейсов с помощью ip a
На этом этапе вы научитесь проверять сетевые интерфейсы в вашей системе Linux. Прежде чем настраивать IP-адрес, вы должны сначала определить имя сетевого интерфейса, который вы хотите настроить. Каждое соединение, будь то проводное или беспроводное, управляется через сетевой интерфейс.
Современная и стандартная команда для просмотра и управления сетевыми интерфейсами в Linux — это ip. Мы будем использовать ее с аргументом a (или address) для отображения всех сетевых интерфейсов и назначенных им IP-адресов.
Откройте терминал. Вы должны уже находиться в каталоге
~/project.Чтобы вывести список всех сетевых интерфейсов и их текущих конфигураций, выполните следующую команду:
ip aВы увидите вывод, похожий на следующий. Точные детали, такие как имена интерфейсов (
eth0,enp0s5), IP-адреса и MAC-адреса, будут отличаться при каждом запуске новой лабораторной среды.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 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:16:3e:0f:23:a5 brd ff:ff:ff:ff:ff:ff altname enp0s5 inet 172.16.50.11/24 metric 100 brd 172.16.50.255 scope global dynamic eth0 valid_lft 1892159972sec preferred_lft 1892159972sec 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:bb:cb:56:62 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
Понимание вывода:
1: lo: Это loopback-интерфейс (интерфейс обратной связи), виртуальный интерфейс, который система использует для связи с самой собой. Он всегда имеет IP-адрес127.0.0.1.2: eth0: Это ваш основной Ethernet (проводной) интерфейс. Ваш интерфейс может иметь другое имя или показыватьaltname(альтернативные имена), такие какenp0s5. Это интерфейс, с которым мы будем работать.3: docker0: Вы можете увидеть другие интерфейсы, такие какdocker0, который используется движком контейнеров Docker. Для целей этой лабораторной работы вы можете его проигнорировать.inet 172.16.50.11/24: Это IPv4-адрес, назначенный вашему интерфейсу. Отображаемый адрес будет отличаться. Это адрес, который позволяет вам подключиться к этой удаленной лаборатории.link/ether ...: Это MAC-адрес интерфейса, уникальный идентификатор оборудования.
Теперь, когда вы можете идентифицировать свой основной сетевой интерфейс (eth0), вы готовы научиться его настраивать.
Настройка дополнительного статического IP-адреса
На этом этапе вы вручную назначите дополнительный статический IP-адрес вашему сетевому интерфейсу. Статический IP-адрес полезен для серверов, которые должны быть постоянно доступны по одному и тому же адресу.
Важное примечание: Поскольку вы находитесь в удаленной лабораторной сессии, вы не должны удалять существующий IP-адрес или отключать сетевой интерфейс. Это приведет к разрыву вашего соединения. Вместо этого мы добавим второй IP-адрес к интерфейсу, что является распространенной и безопасной практикой.
Назначьте новый статический IP-адрес
192.168.1.10с маской подсети/24интерфейсуeth0. Если ваш интерфейс имеет другое имя, используйте его.sudo ip addr add 192.168.1.10/24 dev eth0Эта команда добавляет новый адрес, не затрагивая существующий. При успешном выполнении она не выводит никакого сообщения.
Наконец, проверьте, был ли назначен новый IP-адрес. Снова используйте команду
ip a, указав интерфейсeth0.ip a show eth0Теперь вы должны увидеть оба IP-адреса: исходный динамический и новый статический, перечисленные для интерфейса
eth0.2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:16:3e:0f:23:a5 brd ff:ff:ff:ff:ff:ff altname enp0s5 inet 172.16.50.11/24 metric 100 brd 172.16.50.255 scope global dynamic eth0 valid_lft 1892159595sec preferred_lft 1892159595sec inet 192.168.1.10/24 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::216:3eff:fe0f:23a5/64 scope link valid_lft forever preferred_lft foreverОбратите внимание, что второе поле
inetтеперь показывает192.168.1.10/24. Вы успешно добавили временный статический IP-адрес, сохранив при этом ваше соединение.
Установка шлюза по умолчанию и проверка подключения с помощью ping
На этом этапе вы настроите шлюз по умолчанию и проверите сетевое подключение. Шлюз по умолчанию — это маршрутизатор, которому ваша система отправляет трафик, когда пункт назначения находится в другой сети (например, в Интернете).
В вашей системе уже есть шлюз по умолчанию, предоставленный лабораторной средой. Его изменение или удаление нарушит ваше соединение. Чтобы безопасно попрактиковаться с этой командой, мы добавим новый, второй маршрут по умолчанию с более высоким метрическим значением. Более высокое метрическое значение означает более низкий приоритет, поэтому система не будет использовать его для реального трафика, сохраняя наше соединение в безопасности.
Добавим маршрут шлюза по умолчанию для сети
192.168.1.0/24. Мы установим IP-адрес шлюза192.168.1.1и присвоим ему метрическое значение200.sudo ip route add default via 192.168.1.1 dev eth0 metric 200default: Указывает, что это маршрут по умолчанию.via 192.168.1.1: IP-адрес маршрутизатора шлюза.dev eth0: Маршрут доступен через интерфейсeth0.metric 200: Делает этот маршрут менее предпочтительным, чем основной существующий маршрут (который имеет более низкое метрическое значение).
Проверьте, был ли добавлен маршрут, отобразив таблицу маршрутизации.
ip routeВывод будет сложным и может отличаться, но он должен содержать две строки, начинающиеся с
default. Ваш исходный шлюз будет иметь более низкое метрическое значение (например, 100), а наш новый — метрическое значение 200.default via 172.16.50.253 dev eth0 proto dhcp src 172.16.50.11 metric 100 default via 192.168.1.1 dev eth0 metric 200 172.16.50.0/24 dev eth0 proto kernel scope link src 172.16.50.11 metric 100 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10 ... (могут присутствовать другие маршруты)Теперь протестируем подключение с помощью
ping. Эта команда отправляет ICMP-запрос "echo request" на хост, чтобы проверить, доступен ли он. Попробуем пропинговать шлюз, который мы только что настроили для нашей воображаемой сети.ping -c 3 192.168.1.1Ожидаемый результат: Эта команда должна завершиться неудачно. Поскольку мы добавили IP-адрес
192.168.1.10/24кeth0, система предполагает, что192.168.1.1находится в той же локальной сети. Она попытается достичь его напрямую, но устройства с таким адресом не существует, поэтому вы увидите сообщение "Destination Host Unreachable" (Хост назначения недоступен).PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. From 192.168.1.10 icmp_seq=1 Destination Host Unreachable From 192.168.1.10 icmp_seq=2 Destination Host Unreachable From 192.168.1.10 icmp_seq=3 Destination Host Unreachable --- 192.168.1.1 ping statistics --- 3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2039msЭто правильный и ожидаемый результат. Вы научились добавлять маршрут по умолчанию и использовать
pingдля тестирования.
Возврат к динамическому IP-адресу с помощью dhclient
На этом шаге вы удалите созданные вами статические конфигурации, а затем используете dhclient для обновления аренды динамического IP-адреса от DHCP-сервера.
Во-первых, инструмент dhclient, который является частью пакета isc-dhcp-client, может быть не установлен по умолчанию. Убедимся, что он доступен.
Обновите список пакетов вашей системы и установите DHCP-клиент:
sudo apt-get update sudo apt-get install -y isc-dhcp-clientТеперь безопасно удалим статический IP-адрес и маршрут, которые мы добавили на предыдущих шагах, не нарушая ваше соединение.
Удалите статический IP-адрес из
eth0:sudo ip addr del 192.168.1.10/24 dev eth0Удалите добавленный нами статический маршрут по умолчанию:
sudo ip route del default via 192.168.1.1 dev eth0Теперь ваша сетевая конфигурация вернулась в исходное состояние. Чтобы продемонстрировать работу
dhclient, давайте запросим обновление IP-адреса от DHCP-сервера.Сначала освободите текущую аренду DHCP.
sudo dhclient -r eth0Затем запросите новую аренду у DHCP-сервера.
sudo dhclient eth0Вы можете увидеть сообщение
RTNETLINK answers: File exists. Это нормально. Оно просто означает, чтоdhclientпытается добавить маршруты, которые уже существуют, поэтому изменения не требуются. Ваше соединение останется стабильным.Проверьте свою конфигурацию, снова просмотрев интерфейс
eth0.ip a show eth0Теперь вывод должен показывать только ваш исходный динамический IP-адрес, вероятно, в диапазоне
172.16.x.xили172.17.x.x. Статический IP-адрес192.168.1.10должен исчезнуть.2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:16:3e:0f:23:a5 brd ff:ff:ff:ff:ff:ff altname enp0s5 inet 172.16.50.11/24 metric 100 brd 172.16.50.255 scope global dynamic eth0 valid_lft 1892159460sec preferred_lft 1892159460sec inet6 fe80::216:3eff:fe0f:23a5/64 scope link valid_lft forever preferred_lft foreverВы успешно очистили статическую конфигурацию и обновили аренду динамического IP-адреса.
Проверка конфигурации сети с помощью arp и traceroute
На этом заключительном этапе вы научитесь использовать arp и traceroute для проверки вашей сетевой конфигурации.
Сначала убедимся, что необходимые инструменты установлены. arp входит в состав net-tools, а traceroute — в собственный пакет.
Установите
net-toolsиtraceroute:sudo apt-get update sudo apt-get install -y net-tools traceroute
Использование arp для просмотра ARP-кэша
Протокол разрешения адресов (ARP) сопоставляет IP-адрес с физическим MAC-адресом в локальной сети. Результаты хранятся в ARP-кэше.
Чтобы заполнить ваш ARP-кэш, сначала найдите IP-адрес вашего шлюза по умолчанию из таблицы маршрутизации.
ip route | grep defaultВывод покажет вам IP-адрес шлюза. Обратите внимание, что IP-адрес будет отличаться.
default via 172.16.50.253 dev eth0 default via 172.16.50.253 dev eth0 proto dhcp src 172.16.50.11 metric 100Теперь отправьте ping на этот IP-адрес шлюза (например,
172.16.50.253в приведенном выше примере), чтобы сгенерировать трафик.ping -c 1 <your-gateway-ip>Отобразите ARP-кэш с помощью
arp -a.arp -aВы увидите IP- и MAC-адрес вашего шлюза. Вы также можете увидеть запись
<incomplete>для адреса192.168.1.1, который мы пытались пропинговать ранее, что является нормальным.? (192.168.1.1) at <incomplete> on eth0 _gateway (172.16.50.253) at ee:ff:ff:ff:ff:ff [ether] on eth0Это подтверждает, что ваша система успешно разрешила IP-адрес шлюза в MAC-адрес.
Использование traceroute для отслеживания сетевых путей
Команда traceroute показывает последовательность маршрутизаторов ("хопов"), которые пакеты проходят для достижения пункта назначения.
Отследим маршрут до общедоступного домена, такого как
google.com.traceroute google.comКоманда выведет путь. Примечание: Во многих облачных средах первый хоп, показанный
traceroute, может быть внутренним IP-адресом и не совпадать с шлюзом по умолчанию в вашей таблице маршрутизации. Это нормальное поведение.traceroute to google.com (142.250.189.174), 30 hops max, 60 byte packets 1 10.220.9.2 (10.220.9.2) 0.345 ms ... 2 11.73.5.1 (11.73.5.1) 1.978 ms ... 3 ... 8 sfo03s24-in-f14.1e100.net (142.250.189.174) 3.001 ms ...- Первый хоп — это маршрутизатор внутри сети поставщика услуг лаборатории.
- Последующие хопы показывают путь через Интернет к конечному пункту назначения.
- Звездочки (
* * *) могут появляться, если маршрутизатор на пути не отвечает на запросыtraceroute, что может быть связано с брандмауэром или другой сетевой политикой.
Поздравляем! Теперь вы научились проверять, статически и динамически настраивать IP-адресацию в системе Linux, а также использовать ключевые инструменты, такие как ping, arp и traceroute, для проверки и устранения неполадок в вашей сети.
Резюме
В этой лаборатории вы освоили основные навыки управления IP-адресацией в среде Linux. Вы начали с проверки сетевых интерфейсов и их текущих конфигураций с помощью команды ip a для идентификации целевых интерфейсов, таких как eth0. Затем вы отработали ручное назначение статического IP-адреса и маски подсети с помощью ip addr add, после чего настроили шлюз по умолчанию с помощью ip route add для обеспечения связи с внешними сетями. В отличие от ручной настройки, вы также узнали, как автоматически получать IP-адрес, маску подсети и шлюз от DHCP-сервера с помощью команды dhclient.
Кроме того, вы изучили основные инструменты для проверки и устранения неполадок сети. Вы использовали команду ping для подтверждения базовой сетевой связности как с шлюзом по умолчанию, так и с внешними хостами. Чтобы получить более глубокое представление об уровне сети, вы изучили кэш протокола разрешения адресов (ARP) с помощью команды arp, чтобы увидеть сопоставления IP-адресов с MAC-адресами. Наконец, вы использовали traceroute для пошагового отслеживания сетевого пути к пункту назначения, проверяя вашу конфигурацию маршрутизации.



