Введение
В этой лабораторной работе вы освоите базовые навыки управления 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-адрес и новый статический 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
На этом этапе вы установите шлюз по умолчанию и протестируете сетевое соединение. Шлюз по умолчанию (default gateway) — это маршрутизатор, на который ваша система отправляет трафик, если пункт назначения находится в другой сети (например, в интернете).
В вашей системе уже есть шлюз по умолчанию, предоставленный лабораторной средой. Его изменение или удаление приведет к разрыву соединения. Чтобы безопасно попрактиковаться с этой командой, мы добавим новый, второй маршрут по умолчанию с более высоким значением метрики (metric). Более высокая метрика означает более низкий приоритет, поэтому система не будет использовать его для реального трафика, что обеспечит безопасность нашего соединения.
Давайте добавим маршрут шлюза по умолчанию для сети
192.168.1.0/24. Мы установим IP-адрес шлюза192.168.1.1и присвоим емуmetricсо значением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-адрес из лабораторной среды, например, частный адрес
10.x.x.xили172.16.x.x. Статический IP192.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Теперь пропингуйте этот 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 для отслеживания сетевого пути по хопам до пункта назначения, проверяя конфигурацию маршрутизации.



