Как подключить 2 сети без доступа к конфигурации роутера?

Я пытаюсь подключить 2 устройства в разных подсетях.

Device 1:
IP address: 172.20.35.1
netmask: 255.255.0.0
gateway: 172.20.1.1

Device 2:
IP address: 172.20.100.100
netmask: 255.255.255.0
gateway: 172.20.100.1

Маршрутизатор имеет IP-адрес 172.20.1.1,

Когда я отправляю дейтаграмму UDP с устройства 1 на устройство 2, устройство 2 получает его, но не может ответить, поскольку IP-адрес шлюза (устройство 2) неверен.

Но не должен ли маршрутизатор соединить эти две сети вместе, как показано здесь http://www.eventhelix.com/realtimemantra/networking/ip_routing.htm? Должны ли маршруты быть настроены вручную?

Кроме того: Что, если я изменю конфигурацию сети device 2 как показано ниже?

Device 1:
IP address: 172.20.35.1
netmask: 255.255.0.0
gateway: 172.20.1.1

Device 2:
IP address: 192.168.170.100
netmask: 255.255.255.0
gateway: 192.168.170.1

С этим сетевым конфигом, device 2 никогда не получает дейтаграмму UDP. Это почему?

РЕДАКТИРОВАТЬ:

Просто для ясности. Я на самом деле не новичок. Описанная проблема мне известна, так как многие из моих клиентов, как правило, настраивают свои устройства так, как я описал выше, и в итоге не могут связаться с ними TELNET, Мне удалось решить эту проблему путем реализации multicast tunnel позволяя пользователю изменять конфигурацию сети на удаленном устройстве, используя multicast UDP protocolвсякий раз, когда они портят конфигурацию, как показано выше. Во всяком случае, у меня было телефонное интервью в компании, и менеджер сказал, что трафик между такими устройствами всегда будет возможен, потому что для этого нужны маршрутизаторы. Меня пригласили на личное собеседование, и я знаю, что этот вопрос снова возникнет. Поэтому я разместил этот вопрос здесь, чтобы помочь мне сформулировать лучший ответ.

2 ответа

Решение

Я пытаюсь подключить 2 устройства в разных подсетях.

Устройство 1: IP-адрес: 172.20.35.1 маска сети: 255.255.0.0 шлюз: 172.20.1.1

Устройство 2: IP-адрес: 172.20.100.100 маска сети: 255.255.255.0 шлюз: 172.20.100.1

Маршрутизатор имеет IP-адрес 172.20.1.1!! Когда я отправляю дейтаграмму UDP с устройства 1 на устройство 2, устройство 2 получает его, но не может ответить, поскольку IP-адрес шлюза (устройство 2) неверен.

Настоящая проблема заключается в перекрывающихся подсетях, в сочетании с отсутствием прокси-arp на интерфейсе маршрутизатора с 172.20.1.1.

Хост по адресу 172.20.35.1 считает, что 172.20.1.1 находится в той же подсети, поэтому 172.20.35.1 ARP напрямую для 172.20.1.100. Однако в подсети 172.20.0.0/16 нет ответа.

Есть несколько вариантов решения проблемы:

  1. (Краткосрочный взлом) Включить proxy-arp на 172.20.1.1. До тех пор, пока 172.20.1.1 имеет маршрут к 172.20.35.0/24, 172.20.1.1 будет отвечать на ARP для 172.20.1.100 со своим собственным mac-адресом и, при отсутствии других проблем, вы получите двунаправленную связь между этими подсетями.

  2. (Долгосрочный) Реорганизовать свою сеть без перекрытия подсетей. Это требует переадресации хостов; потенциально много хозяев.

  3. Выполните NAT 172.20.35.0/24, чтобы он не выглядел как та же подсеть, что и все остальное. Решения NAT могут постепенно усложняться для поддержки, но это устраняет необходимость в proxy arp.

Также: что, если я изменю конфигурацию сети device 2 как показано ниже.

С этим сетевым конфигом, device 2 никогда не получает дейтаграмму UDP. Это почему?

Похоже, вам нужен маршрут до 192.168.170.0/24

Я думаю, что на самом деле есть несколько проблем. Первый такой:

без доступа к конфигурации роутера

Все предлагаемые действия Майка требуют изменения конфигурации маршрутизатора.

Вторая проблема заключается в следующем:

Маршрутизатор имеет IP-адрес 172.20.1.1!!

Пересылка трафика (т.е. маршрутизация) между подсетями A и B возможна тогда и только тогда, когда маршрутизатор имеет IP-интерфейсы в обеих подсетях. IP-интерфейс маршрутизатора - это IP-адрес, поэтому, если у вашего маршрутизатора только один IP-адрес, маршрутизация невозможна.

Вы не уточняете, что именно вы имеете в виду под "маршрутизатором", но, например, ваш обычный DSL-маршрутизатор работает таким образом. У него есть только один IP-адрес, который используется во внутренней сети, другой IP-адрес он получает по линии DSL от интернет-провайдера. Таким образом, он получит два IP-адреса и сможет маршрутизировать трафик между этими двумя подсетями. Обычно у вас даже нет возможности создать новые VLAN, чтобы иметь больше подсетей на стороне локальной сети.

Вот немного любопытства. Вы настроили свой клиент 1 с IP-адресом с подсетью /16 (маска 255.255.0.0). Диапазон IP-адресов подсети 172.20.0.0/16 составляет 172.20.0.1-172.20.255.255, последним из которых является широковещательный адрес. IP-адрес маршрутизатора обычно является самым низким или самым высоким в подсети, поэтому я ожидаю 172.20.0.1 или 172.20.255.254. Это не правило, просто как обычно это делается.

Если подсеть вашего маршрутизатора на самом деле / ​​16, вы легко справитесь с первой проблемой: настройте второе устройство с маской подсети 255.255.0.0 и используйте 172.20.1.1 в качестве шлюза по умолчанию. Это поместит его в одну подсеть с устройством 1, и трафик будет проходить. Это не маршрутизация, это переключение L2.

Я отправляю дейтаграмму UDP с устройства 1 на устройство 2, устройство 2 получает его, но не может ответить, поскольку IP-адрес шлюза (устройство 2) неверен.

Это не обязательно связано с вашим адресом шлюза. UDP является односторонним протоколом. Сам протокол не содержит никакого механизма для отправки ответов или подтверждений. Чтобы ваше устройство 2 отвечало на дейтаграмму UDP, вы должны запустить приложение, которое ответит при получении пакета. Если вы тестируете соединение, используйте ping, который разработан для этой цели. ICMP - это протокол TCP, поэтому он двусторонний. Ваше устройство 1 отправит эхо-запрос ICMP (т. Е. Пакет проверки связи) на устройство 2, которое ответит ответом ICMP.

При такой конфигурации сети устройство 2 никогда не получает дейтаграмму UDP. Это почему?

Здесь мы возвращаемся к интерфейсам IP. Как говорит Майк, у вас должен быть маршрут в эту сеть, поэтому ваш маршрутизатор должен иметь IP-адрес 192.168.170.1/24.

Возвращаясь к названию вашего вопроса. Если вы не можете настроить маршрутизатор, единственное, что вы можете сделать, - это настроить подсеть и шлюз устройства 2, как я описал выше, и это будет работать, только если в подсети маршрутизатора /16. Все остальные представленные решения требуют доступа к конфигурации маршрутизатора.

Другие вопросы по тегам