Что я хочу сделать (в Windows Box), так это traceroute
использовать tracepath
TCP на определенном порту.
Насколько я знаю, Windows tracert
будет использовать ТОЛЬКО ICMP. Но можно ли tracert
каким-то образом использовать это, чего я не знаю?
Я считаю, что в Linux следующие два варианта помогут мне добиться того, что я хочу:
traceroute mail.yourserver.com -p25 -T
Опция -p25
указывает ему использовать порт 25 в качестве порта назначения и -T
говорит ему использовать пакеты TCP вместо ICMP.
tracepath 192.168.1.99/443
Отправит пакет, предназначенный для порта 443, на 192.168.1.99 и сообщит вам, на каком узле пакет застрял.
Кто-нибудь знает о порте traceroute
или tracepath
какой-либо другой утилите Windows для выполнения того же? Если нет встроенного решения для Windows, есть ли стороннее решение?
Наконец-то я нашел решение для этого, которое хорошо работает для меня:
TCP Traceroute on Windows And Linux
http://simulatedsimian.github.io/tracetcp.html
https://github.com/SimulatedSimian/tracetcp/releases
и для записи о том, как это работает:
https://support.logicboxes.com/helpdesk/index.php?/Knowledgebase/Article/View/11/37/using-tcp-traceroute-on-windows-and-linux
А вот копия одного из простых/типичных примеров использования:
C:\tracetcp>tracetcp www.redhat.com:443 -h 3
Tracing route to 184.85.48.112 [a184-85-48-112.deploy.akamaitechnologies.com] on
port 443
Over a maximum of 30 hops.
3 32 ms 50 ms 56 ms 172.20.16.65
4 34 ms 14 ms 33 ms 172.26.16.1
5 503 ms 14 ms 68 ms 172.20.7.34
6 43 ms 170 ms 25 ms 203.117.35.9
7 28 ms 86 ms 26 ms 203.117.34.2
8 216 ms 168 ms 99 ms 203.117.34.14
9 * * * Request timed out.
10 Destination Reached in 211 ms. Connection established to 184.85.48.112
Trace Complete.
Вы ДОЛЖНЫ установить библиотеку winpcap, чтобы эта версия работала. tracetcp был протестирован с версиями 3.* и 4.* этой библиотеки. (Поскольку WinXP SP2 удалил необработанные сокеты.) Но если вы работаете в сети, у вас, вероятно, уже установлены winpcap и wireshark.
Я думаю, что это не сработает, потому что порты TCP - это L4, который не используется для маршрутизации. Маршрутизаторам в середине пути нужно только проверить уровень L3, чтобы принять решение о том, куда отправить этот пакет (если только они не используют PBR), но если пакет предназначался им, скорее всего, у них отбрасывается ACL. множество пакетов, предназначенных им (22TCP, 23TCP, 80TCP и т. д.), если у них нет правильного, надежного источника. Также все неиспользуемые порты, скорее всего, защищены этим ACL.
Я знаю, что у нас есть ACL на входных интерфейсах, но я думаю, что большинство транзитных компаний не будут перегружать свои маршрутизаторы ACL, потому что они могут получать пакеты отовсюду. Если вы подключены к Интернету через интернет-провайдера, который не осуществляет транзит, и ваш сервер находится у того же интернет-провайдера в том же месте, то этот тест может иметь смысл для вас.
Гео Бадж
Йенс Линк
Гео Бадж
Майк Пеннингтон