Força o tráfego de rede local através do switch

0

Eu tenho uma máquina com três placas de rede. Um cartão está conectado a uma WAN e os outros dois cartões estão conectados ao mesmo switch com a mesma sub-rede (192.168.1.0/24). O que eu quero fazer é enviar dados entre os dois cartões, mas certifique-se de que os dados realmente passem pelo switch, em vez de ficarem internos à pilha de rede do Linux.

Quando eu configuro as duas placas normalmente e tento pingar uma da outra, isso funciona, mas o Wireshark não mostra nenhum tráfego, então não está indo para a rede.

Eu tentei configurar rotas estáticas para o switch tentando forçar todo o tráfego a ter que passar pelo switch. Quando faço isso, os pings são respondidos pela rede e recebo uma enxurrada de solicitações ARP não respondidas tentando encontrar o outro endereço. Mas qualquer um dos endereços pode fazer ping em outra máquina na sub-rede, e essa máquina pode efetuar o ping de qualquer endereço.

Eu tentei alterar as configurações do filtro de arp no Kernel do Linux, mas sem sorte.

Alguma sugestão? Obrigado!

Além disso, pontos de bônus para configurar um NIC com o alias de IP para fazer a mesma coisa.

    
por pfbrewst 08.03.2018 / 21:44

1 resposta

-1

Sou novo aqui, mas posso ter a resposta para essa pergunta.

O sistema operacional tentará reconhecer que a outra placa de rede é um dev local. Acho que você pode usar a opção ' dev ' para ' ip route ' para forçar a saída da outra placa de rede.

Por exemplo, eu tenho um endereço IP:

45.32.160.129

E a rota para esta sub-rede mostra o dispositivo dev ens3

45.32.160.0/24 dev ens3 proto kernel scope link src 45.32.160.129

Mas digamos que eu tenha outra placa de rede, ens4 em 45.32.161.4/24:

45.32.161.0/24 dev ens4 proto kernel scope link src 45.32.161.4

então você pode usar a opção ' dev ' para ' ip route ' para especificar o dispositivo usado. Desta forma, você pode especificar que a outra placa de rede use-se para o ens3 ip em vez de usar o ens3 (próprio) quando você tentar acessá-lo a partir da máquina local. O truque para isso é que você tem que usar o roteamento de políticas também. Porque você não pode ter a placa de rede tentando acessar a mesma e sair da interface de outras placas também porque ela nunca se encontrará. Portanto, você precisa especificar com o roteamento de política / origem que ele deve apenas passar pelo outro cartão quando esse cartão estiver tentando acessá-lo. É aí que você teria que especificar uma correspondência de origem. Ainda mais, então você teria que se certificar de que está vinculado ao endereço de fonte ip correto em seu software de rede de escolha que você está tentando usar ou testar. Isso deve forçá-lo a acessar a outra placa de rede através do switch. É claro que você faria o mesmo para a outra carta, mas o contrário.

Isso pode resolver seu problema. Observe a página man ' ip route ' da precedência de rota e o parâmetro ' dev '. Em seguida, observe a correspondência de regras para fazer a parte da política. Deve ser algo como isto:

ip rule add from 45.32.161.4 lookup from1
ip rule add from 45.32.160.129 lookup from2

Em seguida, adicione as rotas opostas:

ip route add 45.32.160.129 via 45.32.161.4 dev ens4 table from1
ip route add 45.32.161.4 via 45.32.160.129 dev ens3 table from2

E você precisa que essas tabelas sejam criadas em / etc / iproute2

    
por 08.03.2018 / 22:22