Estou trabalhando com um aplicativo que envia tráfego multicast entre um cliente e um servidor. Este tráfego é enviado via multicast. O cliente e o servidor estão usando interfaces VLAN e precisam se comunicar em uma VLAN específica para poder se comunicar corretamente. O cliente e o servidor estão na mesma sub-rede (portanto, não há saltos de rede) e seus IPs estão na mesma sub-rede (portanto, o único roteamento em andamento é uma rota para a difusão seletiva da interface de VLAN).
Usando tcpdump
, posso ver o tráfego na interface não marcada de ambos os hosts, mas, se observar a interface marcada, só vejo o tráfego da máquina local. Confirmei que o tráfego que vem na interface não marcada também tem a tag vlan adequada.
Para ajudar a ilustrar isso, digamos:
VLAN: 10
Multicast: 239.1.1.1
O que estou vendo é:
[root@client]# tcpdump -ei ens192 host 239.1.1.1
.... vlan 10 ... client.[port] > 239.1.1.1.[port]
.... vlan 10 ... server.[port] > 239.1.1.1.[port]
.... vlan 10 ... client.[port] > 239.1.1.1.[port]
.... vlan 10 ... server.[port] > 239.1.1.1.[port]
e a mesma ideia do outro lado:
[root@server]# tcpdump -ei ens192 host 239.1.1.1
.... vlan 10 ... server.[port] > 239.1.1.1.[port]
.... vlan 10 ... client.[port] > 239.1.1.1.[port]
.... vlan 10 ... server.[port] > 239.1.1.1.[port]
.... vlan 10 ... client.[port] > 239.1.1.1.[port]
Mas quando eu tcpdump
a interface marcada:
[root@client]# tcpdump -ei ens192.10 host 239.1.1.1
.... client.[port] > 239.1.1.1.[port]
.... client.[port] > 239.1.1.1.[port]
Mesma ideia do servidor.
Eu tentei sysctl net.ipv4.conf.all.rp_filter=0
sem alteração.
Eu também executei strace -fe trace=network -p [PID of software] 2>&1 | grep 239.1.1.1
no cliente e no servidor, e havia apenas send_to
chamadas sendo feitas, nada foi recebido (o que eu esperava depois de não ver a entrada na interface marcada).
Também confirmei com ip maddr
que ens192.10
está inscrito em 239.1.1.1
, embora todas as outras interfaces VLAN também estejam inscritas, o que achei um pouco suspeito. Confirmei com tcpdump
que o tráfego não está chegando em nenhuma das outras interfaces de VLAN. Eu admito que não sei como este software está executando as assinaturas, já que não tenho acesso ao código fonte / interno.
O sistema operacional é o RHEL 7.5.
Existe alguma razão pela qual o tráfego da VLAN corretamente marcado não apareça na interface de VLAN apropriada?
EDIT: Além disso, há outro tráfego mutlicast trabalhando muito bem nesta interface VLAN, o problema parece específico para este software.