Почему я не могу перехватить какие-либо пакеты в той же локальной сети в случайном режиме
Я только что прочитал про беспорядочный режим, можно ли включить интернет интерфейс? Итак, я создал небольшую тестовую среду, я открыл 3-х капельный сервер на digitalocean, включив частную сеть. так что я в конечном итоге с 3-х серверов в 10.130.x.x
локальная сеть.
сервер1: 10.130.247.92
сервер2: 10.130.237.218
сервер3: 10.130.237.219
в server1 я использую tshark для захвата пакетов из eth1(интерфейс частной сети)
tshark -i eth1
А в server2 я постоянно пингую server1
ping 10.130.247.92
теперь server1 перехватывает все ICMP-пакеты с server2, а тем временем я включаю беспорядочный режим eth1 в server3
ifconfig eth1 promisc
и начать перехватывать eth1, но я не смог перехватить ICMP-пакет на server1.
Это почему? Я предполагаю, что сеть основана на коммутаторах, а не на концентраторах, поэтому server3 не может перехватывать пакеты с server2 на sever1, даже если они все находятся в одной локальной сети, и включен случайный режим
1 ответ
Ваше предположение, что виновником является правильное переключение. Случайный режим означает, что контроллер Ethernet будет принимать пакеты с любым MAC-адресом назначения. Это не гарантирует, что такой пакет будет отправлен этому контроллеру.
Даже если эти хосты находятся в одной подсети, в эти дни хосты в этой подсети, вероятно, будут подключены к коммутатору Ethernet. Коммутатор отслеживает входящие пакеты со всех портов и узнает, за каким портом он видит определенные MAC-адреса. Таким образом, если блок A подключен к порту 0, блок B - к порту 1, а блок C - к порту 2, и предполагается, что каждый хост уже отправил по крайней мере один пакет, поэтому коммутатор знает, кто где, если A отправляет пакет в B, коммутатор будет отправлять пакет только на порт 1. Если вы включили неразборчивый режим на C, вы не увидите пакет, отправленный с A на B.
Вот несколько более подробное объяснение того, как работает обучение MAC.