Какова цель настройки маски сети на интерфейсе ipv4 на компьютере с Linux?

361
user6668153

Мне интересно, для чего используется маска сети в сетевом стеке Linux.

Давайте предположим, что у меня есть интерфейс eth0, настроенный на ip 1.1.1.1 и маску сети 255.255.255.0

сейчас я отправляю пакет в 1.1.1.2 и пакет в 1.2.3.4. Почему мой Linux-компьютер должен знать сетевую архитектуру для обслуживания этих двух запросов?

Я ожидаю, что в обоих случаях будет отправлен запрос arp, и для первого ответит реальный хост, а для второго ответит соответствующий маршрутизатор.

0

2 ответа на вопрос

2
RedGrittyBrick

Я ожидаю, что в обоих случаях будет отправлен запрос arp, и для первого ответит реальный хост, а для второго ответит соответствующий маршрутизатор.

Нет, маршрутизатор предоставляет ответ ARP, только если запрос ARP направлен на IP-адреса одного из собственных интерфейсов маршрутизатора.

Клиент использует маску сети, чтобы решить, является ли IP-адрес назначения локальным или должен маршрутизироваться.

Если клиент определяет, что пункт назначения находится за пределами локальной сети, он выбирает соответствующий маршрутизатор из своей таблицы маршрутизации. Часто это будет «шлюз по умолчанию», настроенный статически или, скорее всего, в настоящее время, DHCP, при запуске.

Затем клиент будет передавать запрос ARP, чтобы найти MAC-адрес для IP-адреса маршрутизатора, после получения ответа arp он может затем отправлять пакеты на маршрутизатор, которые имеют MAC-адрес маршрутизатора и IP-адрес конечного получателя. Клиент также сохраняет MAC-адрес и IP-адрес маршрутизатора в своем ARP-кеше, чтобы избежать необходимости выполнять дополнительные запросы ARP для той же информации.

0
MSalters

Ваш локальный компьютер имеет кэш ARP. Это таблица ответов ARP для каждого IP-адреса. Вам не нужно 4 миллиарда записей в этом кэше. Маска сети сообщает вам, какие адреса следует кэшировать.

Тем не менее, соответствующий маршрутизатор (шлюз) также будет иметь локальный адрес, потому что он должен быть достижимым. (Вы можете явно настроить это также). Таким образом, пакеты к 1.2.3.4 фактически инициируют запрос ARP для настроенного адреса шлюза (скажем, 1.1.1.254). Поскольку это маршрутизатор, 1.1.1.254 не удивится, когда получит пакет для 1.2.3.4.

Я ненавижу понижать голосование, поэтому я не буду делать это с вами, но этот ответ действительно неправильный, и RedGrittyBrick верен: маска сети используется для определения того, какие IP-адреса доступны напрямую (* т.е. *, они принадлежат одному и тому же физическому сегменту и, таким образом, не требуется шлюз) из IP-адресов, которые требуют пересечения одного или нескольких шлюзов, которые затем требуют ** маршрутизации **. Ничего общего с ARP-кешем (хотя, конечно, это пригодится). MariusMatutiae 8 лет назад 0