Введение
В каждой зоне Lantern Festival работают локальные службы, но сотрудники пока не могут получить программу другой зоны. Вы восстановите ограниченный путь между раздельными сетями, сохранив доступ к радиорубке.
Вы должны распознавать IPv4-адреса, простой диапазон /24, роли клиента и сервера и порты, уметь вводить команды и смотреть адреса через ip addr. Подготовленные узлы Linux используют общее ядро: это сетевые пространства имён, а не отдельные физические машины. Программирование, межсетевые экраны, динамическая маршрутизация и вычисление подсетей не требуются.
Используйте Area Plan для настоящих запросов программ, Area A и Area B для их клиентов, а West Router и East Router для изменения маршрутов. Каждый терминал сохраняет свой каталог и сетевое состояние. Открытие вкладки не сбрасывает прогресс. Эта работа начинается независимо. Время оценено автором с учётом чтения и обычных ошибок; исследования времени выполнения начинающими не проводилось.
Восстановить путь к Workshop
В этом шаге вы сначала проверите работающий локальный пример, затем исследуете удалённый адрес. Начните в Area Plan. На карточке Main Stage выберите Request from Area A. Ожидайте вступительное выступление и шествие фонарей, завершающиеся строкой Request received from: 10.71.0.10. Вернитесь кнопкой «Назад» браузера. На Broadcast Room выберите Request from Area A: её сигнал тоже доступен. Эти рабочие службы нужно сохранить.
Переключитесь на Area A. Терминал уже находится в /home/labex/project/festival-routes/a. pwd выводит этот каталог. ip -4 addr show показывает IPv4-адреса; dev eth0 выбирает интерфейс курса.
pwd
ip -4 addr show dev eth0
Ожидайте 10.71.0.10/24. В этом плане /24 означает, что адреса, начинающиеся на 10.71.0, локальны. Workshop использует другую подсеть, 10.72.0.0/24. Маршрутизатор передаёт пакеты между сетями, не изменяя их исходные адреса.
HTTP — протокол запросов и ответов подготовленной службы программ. curl запрашивает HTTP-ресурс. --noproxy '*' обходит настройки прокси для всех адресов; кавычки сохраняют буквальный *. -f считает ошибки HTTP неуспехом, -s скрывает индикатор прогресса, а -S продолжает показывать ошибки. --max-time 3 ограничивает всю попытку тремя секундами. Порт 8080 принадлежит подготовленной службе программ.
curl --noproxy '*' -fsS --max-time 3 http://10.71.0.10:8080/programme.txt
Прочитайте всю локальную программу, включая адрес источника. Теперь попробуйте Workshop. Следующий запрос должен завершиться неудачей; сеть он не повреждает.
curl --noproxy '*' -fsS --max-time 3 http://10.72.0.10:8080/programme.txt
Ожидайте ошибку соединения вместо программы. Сразу прочитайте фактический код завершения: $? хранит статус последней команды, а echo выводит его.
echo $?
Ненулевой статус означает неудачную попытку. Ошибка соединения (часто 7), тайм-аут (28) и отказ HTTP (22 при -f) описывают разные наблюдения; ни одно не определяет все возможные причины. Отказ порта может означать, что узел достигнут, но ни одна служба не приняла соединение. При опечатке сначала проверьте вкладку, точный адрес и порт, затем повторите запрос. Не сбрасывайте VM.
Локальная служба и третья сеть работают. Теперь нужно выяснить, какой путь выберет West Router для Workshop.
Прочитать решение маршрутизатора
Здесь вы отличите шлюз клиента по умолчанию от маршрута к конкретному назначению на маршрутизаторе. Начните в Area A. ip route читает действующую таблицу; ip route get спрашивает ядро о выборе пути, не отправляя запрос программы.
ip route
ip route get 10.72.0.10
Ожидайте via 10.71.0.1 dev eth0: следующий узел — соседний West Router. via указывает соседа, dev — выходной интерфейс. Это ещё не доказывает, что West Router знает дальнейший путь.
Переключитесь на West Router, рабочий каталог которого оканчивается на /west. Прочитайте интерфейсы и маршруты:
ip -4 addr show
ip route
ip route get 10.72.0.10
Последний запрос должен показать RTNETLINK answers: No route to host. Интерфейс LAN имеет 10.71.0.1/24; transit имеет 172.22.0.1/24. Соседний East Router использует 172.22.0.2/24 и подключает Workshop через 10.72.0.1/24. Broadcast Room находится за интерфейсом broadcast на West Router, 10.73.0.1/24.
Подготовленный unreachable default metric 32760 — намеренный маршрут по умолчанию: в изолированном упражнении назначения без другого совпадения отклоняются. Обычный маршрут по умолчанию может использовать шлюз. Здесь сохраните существующий. metric 32760 задаёт предпочтение среди маршрутов с одним префиксом; при таком сравнении меньшее значение предпочтительнее. Маршрут к 10.72.0.0/24 конкретнее маршрута по умолчанию и меняет путь только этой зоны. Не заменяйте маршрут по умолчанию и не очищайте таблицу целиком.
В Area Plan раскройте West Router · live routing table, чтобы сравнить ту же нативную таблицу. Карта показывает структуру; запросы программы проверяют настоящую связь. В первой работе обратный маршрут East Router уже подготовлен. Нужен только недостающий маршрут назначения на West Router.
Добавить ограниченный путь
Здесь вы добавите один маршрут и получите удалённый ресурс полностью. Начните в West Router. Терминал уже имеет административные права внутри пространства имён курса. ip route add добавляет действующий маршрут; 10.72.0.0/24 — диапазон назначения, via 172.22.0.2 — соседний маршрутизатор, dev transit — канал к нему.
ip route add 10.72.0.0/24 via 172.22.0.2 dev transit
Успех обычно ничего не выводит. Прочитайте решение снова:
ip route get 10.72.0.10
Ожидайте via 172.22.0.2 dev transit. Показанный src относится к запросу, созданному самим маршрутизатором; пересылаемый трафик Area A сохраняет собственный адрес. Переключитесь на Area A и сделайте настоящий клиентский запрос:
curl --noproxy '*' -fsS --max-time 3 http://10.72.0.10:8080/programme.txt
Ожидайте Workshop, мастерскую бумажных фонарей, ритм-круг и Request received from: 10.71.0.10.
Сохранить программу и остальные пути
В этом шаге вы сохраните удалённый ресурс и локальный путь вместе с доступом к радиорубке. Начните в Area A. -o remote-programme.txt сохраняет полученные байты в каталог этого терминала. cat читает сохранённый файл.
curl --noproxy '*' -fsS --max-time 3 -o remote-programme.txt http://10.72.0.10:8080/programme.txt
cat remote-programme.txt
Проверьте также защищённый путь к радиорубке:
curl --noproxy '*' -fsS --max-time 3 http://10.73.0.10:8080/programme.txt
В Area Plan вернитесь на главную страницу и выберите Request from Area A у Workshop. Прочитайте ту же программу и исходный адрес. Кнопкой «Назад» браузера снова запросите Main Stage и Broadcast Room. В раскрываемой таблице должны оставаться исходные маршрут по умолчанию и подключённые маршруты.
Если add сообщает File exists, прочитайте ip route в West Router. replace добавляет или обновляет только названный префикс:
ip route replace 10.72.0.0/24 via 172.22.0.2 dev transit
Если вы случайно добавили 10.72.1.0/24, он не соответствует этому назначению. Удалите только неверную запись командой ip route del 10.72.1.0/24, затем используйте правильный показанный маршрут. При других опечатках тоже прочитайте таблицу и удаляйте лишь добавленный вами лишний префикс. Никогда не используйте flush. Сохраните адреса, исходные маршруты, каналы и службы. Повторите то же скачивание, если неудачная попытка не оставила полного файла. Эти маршруты действуют в текущем сеансе; сохранение после перезагрузки вне этой работы.

Найдите на карте двух соседей транзитного канала и сравните строки назначения с сохранёнными маршрутами по умолчанию. Раскрытые таблицы показывают настоящие маршруты ядра в работающей среде.
Резюме
Вы применили настоящие запросы маршрутизации и ограниченные маршруты для передачи программ фестиваля, сохранив исходные адреса и остальные пути. Шлюз клиента — только первый узел; каждому маршрутизатору нужно рабочее решение о дальнейшем пути.



