Как работает интерфейс loopback

Эта версия пакета предполагает, что вы используете Grub Legacy (0.97), который, согласно этому: https://wiki.archlinux.org/ index.php / Boot_loaders , не поддерживает UEFI. Прочтите эту статью, чтобы узнать о других загрузчиках, которые вы можете использовать.

Также, чтобы избежать путаницы, имейте в виду, что Arch называет Grub 2 «Grub» и Grub .97 «Grub Legacy».

5
07.08.2019, 16:41
2 ответа

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

При пинге 10.0.3.2 ответ приходит не от какого-то внешнего устройства, а от самого петлевого интерфейса. Когда вы добавляете адрес в петлевом интерфейсе, например.

sudo ip addr add 10.0.3.1/24 dev lo

добавлен маршрут к 10.0.3.0/24. Вы можете увидеть это с

ip route show table local

Что-то вроде

local 10.0.3.0/24 dev lo proto kernel scope host src 10.0.3.1

должно появиться.Эта запись таблицы маршрутизации сообщает, что пакет, отправленный на любой адрес между 10.0.3.1 и 10.0.3.254, отправляется через интерфейс lo, с которого он немедленно вернулся.

РЕДАКТИРОВАТЬ: уточнение в ответ на комментарий ниже.

Вот что происходит, когда вы пингуете 10.0.3.2: ядро ​​получает IP-пакет для доставки с адресом назначения 10.0.3.2. Как и при доставке любого пакета, ядро ​​сверяется с таблицей маршрутизации. В этом случае соответствующая запись выглядит так: local 10.0.3.0/24 dev lo proto kernel scope host src 10.0.3.1, в которой говорится, что пакет должен быть доставлен через интерфейс lo с исходный адрес 10.0.3.1.

Теперь, поскольку пакет был передан интерфейсу lo, петлевой интерфейс делает то, что обычно делает: он берет пакет из очереди отправки и помещает его в очередь получения. С точки зрения ядра мы получили входящий пакет, готовый к использованию серверным процессом, прослушивающим сокет. (В случае ping ядро ​​обрабатывает его внутри.) Теперь мы получили «удаленный» ICMP-пакет с адресом назначения 10.0.3.2, который, возможно, не является одним из наших локальных адресов, но он был доставлен в петлю. интерфейс тем не менее.

Затем ядро ​​отправляет ответ на эхо-запрос: пакет ответа ICMP с обратными адресами: 10.0.3.2 в качестве адреса источника и 10.0.3.1 в качестве адреса назначения. Это доставляется через петлевой интерфейс обратно в программу ping, которая показывает, что мы получили ответ от 10.0.3.2.

17
27.01.2020, 20:33

Отвечая на другой ваш вопрос: "Почему я не могу получить пакеты на enp0s3?"

Он указывает на локальную сеть 192.168.10.0/24

Таким образом,если у вас нет сервера в локальной сети, который отвечает на запросы о доставке пакетов, вы не получите ничего по этому маршруту.

0
27.01.2020, 20:33

Теги

Похожие вопросы