Vários endereços IP em uma única NIC recebendo UDP de sub-redes diferentes

1

Desculpe se não estou usando o idioma certo para tudo isso, sou um desenvolvedor de software e não um administrador de servidor / rede!

Eu tenho uma máquina Windows com uma única NIC com vários endereços IP configurados. Por exemplo, o endereço da NIC é 172.1.48.3 . Tem três endereços IP configurados em Propriedades - > Propriedades do Ip 4 - > Avançado, todos em diferentes sub-redes 172.1.48.3 , 172.1.88.3 e 172.1.104.3 . (A máscara de sub-rede é 255.255.255.0 em todos estes).

Eu tenho um programa escutando três soquetes UDP com cada um desses endereços IP.

Três coisas na rede estão sendo transmitidas para cada sub-rede: 172.1.48.255 , 172.1.88.255 e 172.1.104.255 .

Eu posso ver no wireshark que o UDP está vindo desses endereços, então 172.1.48.255 -> 172.1.48.3 , 172.1.88.255 -> 172.1.88.3 etc. No entanto, estou vendo 'contaminação cruzada' entre os sockets. O soquete UDP vinculado a 172.1.48.3 está recebendo mensagens UDP de 172.1.48.3 , 172.1.88.3 e 172.1.104.3 .

Ou não estou entendendo o UDP corretamente ou algo com a rede. Eu acho que é um problema ter esses três endereços IP separados em um NIC, porque ele funciona bem se cada IP tiver sua própria máquina (e, portanto, NIC).

Alguém sabe por que um soquete 172.1.48.3 estaria recebendo mensagens transmitidas para uma sub-rede diferente 172.1.104.255 ?

    
por Joe 14.06.2018 / 16:44

2 respostas

2

Porque o tráfego de transmissão é por natureza ... transmitido. Se você olhar a parte do quadro Ethernet do tráfego UDP no Wireshark, verá que o endereço MAC de destino (camada 2) é FF-FF-FF-FF-FF-FF, que inclui todos os hosts conectados à mesma rede física. segmento. Todos os hosts conectados ao mesmo segmento de rede física receberão esse tráfego e examinarão o endereço da Camada 3 e determinarão se devem aceitar e processar o tráfego ou não. Os hosts que não estão na mesma rede de destino da Camada 3 aceitarão o tráfego e, em seguida, o descartarão ... mas aceitarão isso.

    
por 14.06.2018 / 20:43
1

Anyone know why a socket would be receiving messages broadcasts?

Porque ... é assim que as transmissões (Layer2) funcionam. Cada placa de rede física no mesmo domínio de broadcast L2 receberá os mesmos pacotes de transmissão.

Se você quiser separá-los, é preciso separá-los fisicamente ou logicamente .

    
por 15.06.2018 / 12:24