1

Допустим, у нас есть два хоста, это A 10.0.1.3 и B 10.0.1.4. А А хочет отправить пакет в В, будет ли А искать маршрутизатор для отправки пакета? Или он просто использует ARP для отправки пакета по уровню связи данных.

Моя проблема в том, что если хост просто использует ARP для отправки пакетов в одной подсети, как мы можем отправлять пакеты с помощью VPN. И кажется, что если мы назначим ip хосту, это уже не имеет смысла.

3 ответа3

2

При отсутствии определенного определенного маршрута, A сверится со своей таблицей маршрутизации, определит, что пункт назначения находится в локальной сети, и найдет arp для него.

Если вы не хотите, чтобы это делалось, добавьте маршрут, в котором указано, куда должен быть отправлен пакет. Допустим, ваш VPN находится на 10.0.1.6:

route add -host 10.0.1.4 gw 10.0.1.6

или же

route add 10.0.1.4 mask 255.255.255.255 10.0.1.6

Это добавит более конкретный маршрут, чем тот, который создан локальной сетью, и, следовательно, вынудит отправлять пакет на 10.0.1.6.

В идеале, вы никогда не должны иметь устройства с одинаковым сетевым адресом в разных подсетях.

1

Здесь есть два момента, чтобы ответить:

Нормальная ситуация:

В обычной сети (например, без VPN) происходит следующее:

А хочет отправить в Б

  • Посмотрите в таблице маршрутизации, чтобы увидеть, как он должен передавать свои данные.
  • A находит запись для хостов в той же подсети.
  • Отправьте пакет в NIC в этой подсети, адресованный B.

Маршрутизатор не задействован. Не существует «использования ARP по уровню связи данных» (что бы это ни значило). Стек IP на A будет просто адресовать пакет B на сетевой карте, выбранной из таблицы маршрутизации. Если A уже имеет кешированный MAC-адрес B, он просто запустит свой пакет. Если у него нет MAC, то сначала ему нужно будет выполнить обнаружение ARP, прежде чем он сможет собрать пакет.

VPN

Теперь VPN немного меняет дело.

Если B является хостом VPN, он все равно будет находиться в той же подсети. Однако существует некоторый дополнительный механизм для перехвата данных, отправляемых на хосты по VPN. Обычно это в виде другого сетевого адаптера, который будет действовать как туннель к другой стороне VPN. Кроме программного обеспечения VPN на обеих сторонах маршрутизаторы не задействованы.

0

В той же подсети ни один пакет не отправит маршрутизатору для связи двух хостов.

Чтобы понять VPN, я объясню два вида ссылок:

  1. Точка-точка: связь между двумя устройствами, не более. Это так же, как водопровод. Если вы пролили немного воды с одной стороны, она выйдет с другой стороны.

  2. Multi-Access: интерфейс устройства будет видеть больше, чем устройство может общаться.

Ethernet является каналом множественного доступа, к коммутатору Ethernet может быть подключено более двух устройств (типичный коммутатор, который используется в наши дни). Таким образом, исходному устройству необходимо указать адрес устройства назначения на канальном уровне (MAC-адрес назначения в заголовке Ethernet). Поэтому Ethernet использует ARP для получения MAC-адреса узла назначения

VPN - это канал «точка-точка», пакет отправляется с одной стороны, выходит с другой стороны. Любой адрес (IP, MAC, ...), который имеет адресат, получит пакет. Таким образом, VPN не требует ARP, и IP-адрес назначения не важен (не требуется находиться в одной маске подсети).

Если вы видите незашифрованный пакет VPN с Wireshark, вы увидите два заголовка сетевого уровня, но один заголовок канала данных! Поскольку VPN является двухточечной, второй заголовок канального уровня не имеет никакого эффекта.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .