Мы с коллегой предположили, что это было явное «нет», но, по общему признанию, наши сетевые знания ограничены.
Возможно ли вообще, что без предварительного знания конфигурации сети (т. Е. Без использования DHCP или статической IP-конфигурации) вы могли бы определить шлюз сети? Если это действительно возможно, то как?
Во-первых, я рискну предположить, что в 90% случаев это первый IP-адрес в вашей подсети (так, 10.10.5.0/24
, это было бы 10.10.5.1
) - хотя в моей сети он есть .17
и один на .23
(и вообще ничего на .1
); так что делайте из этого то, что хотите.
Если это сеть Wi-Fi, вы можете прослушивать в беспорядочном режиме и посмотреть, какой является наиболее распространенный пункт назначения для внешнего трафика, а если другие используют шлюз, вы можете вывести его оттуда (значительно уменьшив количество IP-адресов для проверки с ).
Если это полностью коммутируемая сеть, все становится намного сложнее, но то, что я делал в прошлом, - это отслеживание запросов ARP и систематический просмотр наиболее активно рекламируемых устройств ARP.
Но это все долгий способ сказать нет, нет способа сказать со 100% уверенностью, на каком IP-адресе находится сетевой шлюз, или даже если сеть имеет шлюз.
Практический пример: однажды я унаследовал сторожевой брандмауэр, и у меня были его парольные фразы, но я понятия не имел, какую сеть он слушал, что очень похоже на ваше теоретическое затруднительное положение. В итоге я запустил Wireshark и начал захватывать ARP-трафик. Через некоторое время MAC-адрес сторожевого устройства начал появляться в глобальном широковещательном трафике, выполняя бесплатные ARP-запросы, ища IP-адрес какого-то неизвестного предварительно настроенного устройства. Оттуда было довольно просто настроить себя на правильную подсеть и найти ее IP-адрес.
Эл Вест поднимает интересный момент - шлюзы IPv6 довольно легко найти, если они используют автоконфигурацию - каждый маршрутизатор объявляет себя (через RA), вы можете просто слушать их. Если это сеть DHCP или сеть без автоконфигурации ИЛИ DHCP, применяются те же правила, что и выше.
Как и Марк, и Поли заявили в своих ответах, это, вероятно, можно было бы сделать, но это нетривиально, и для этого потребуется определенное количество удачных догадок и предположений.
В качестве гипотетического примера: вы можете подключить портативный компьютер к сети и запустить программу захвата пакетов. По крайней мере, вы собираетесь получить некоторый широковещательный трафик (ARP, NetBIOS и т. Д.). Это позволит вам определить IP-адреса, используемые в сети (но не скажет, какая маска подсети используется). Затем вы можете выбрать случайный IP-адрес из диапазона, используемого в сети (вам нужно будет сделать обоснованное предположение относительно маски подсети, и вам придется надеяться, что адрес еще не используется). Затем вы можете запустить сканирование ARP в сети с помощью программы сканирования ARP и надеяться, что программа сможет точно идентифицировать устройства, которые отвечают на сканирование ARP, и если это так, вы можете угадать из идентификации устройства, какое устройство может быть маршрутизатором, вы вы также можете сделать это самостоятельно, посмотрев на первые 3 октета MAC-адресов, которые идентифицируют производителя, и найдите их в этом Список OUI чтобы найти устройство, которое, вероятно, будет DG. Например, любые обнаруженные устройства Cisco в 99% случаев будут коммутаторами или маршрутизаторами. Отсюда нужно угадывать и делать предположения об IP-адресах, возвращаемых при сканировании ARP, относительно того, какой из них является идентификатором DG.
Как видите, этот метод (я уверен, что есть и другие способы сделать это) вряд ли является научным и вряд ли даст гарантированные результаты.
Думаю, я должен не согласиться с @Mark Henderson здесь. За исключением крайних случаев:
В остальном это возможно. Но это нетривиально и может занять значительное время. Я создал сценарии, которые делают это, чтобы проверить исследование маршрутизации в недокументированных сетях. Сначала вам нужно решить несколько проблем:
Чтобы решить первую часть, вы можете tcpdump
интерфейс, и он покажет некоторый трафик, надеюсь, некоторый широковещательный или arp-трафик. Обычно лучше всего попробовать DHCP, но если это не сработает, вы можете просто прослушать в течение часа, а затем выбрать IP-адрес, который находится в диапазоне, который вы видите. Кроме того, если вы часто видите запросы arp в этой сети, вероятно, их делает маршрутизатор. Это означает, что вы должны сначала протестировать их источник в качестве шлюза, прежде чем тестировать другие доступные хосты.
Чтобы решить вторую часть, после того, как вы получите назначенный IP-адрес, запустите nmap
или strobe
и выяснить, какие еще устройства есть в сети.
Чтобы решить последнюю часть, настройте статический маршрут с помощью route
укажите либо IP-адрес по умолчанию (0.0.0.0), либо какой-либо конкретный IP-адрес и посмотрите, сможете ли вы пропинговать свой внешний тестовый хост. Это может быть простой тест ICMP, или я бы предложил HTTP-запрос с CGI, который возвращает ваш исходный IP-адрес, чтобы вы могли определить, к чему вы подключены через NAT.
Поскольку (IP) шлюз настроен на каждом подключенном узле, а не является частью фактической конфигурации сети, сама сеть не может сказать вам, что такое «шлюз» - такого зверя нет.
Однако с помощью беспорядочного обнюхивания ARP вы можете выяснить, к какому узлу относятся все остальные узлы. с помощью в качестве шлюза, и предполагаю, что это сработает и для вас.