Basicamente tentando dobrar a ponte e o NAT à minha vontade com um projeto bastante singular.
Eu simplifiquei o que estou fazendo abaixo (VM = máquina virtual Kali para teste):
ZoneX são namespaces de rede, vexxxs são links virtuais criados com ip link
A premissa é criar um gateway para a LAN que possa desviar o tráfego (baseado no que é) para ZoneX ou ZoneY modificar o tráfego e encaminhá-lo para ZoneZ e finalmente para o gateway de redes reais.
Eu tentei algumas coisas diferentes, mas o principal problema é criar uma tempestade layer2 ... não é legal em VMs ... ou o namespace de rede NAT (ZoneZ) encaminha o tráfego de retorno pela primeira interface na tabela NAT da VM do cliente (que às vezes é incorreta).
O principal objetivo é dividir o tráfego em várias zonas, mas o tráfego de retorno deve ser o mesmo caminho de volta. A próxima etapa é então poder encadear várias zonas para modificar o tráfego de várias maneiras.
*** EDITAR
Um exemplo de conexão seria uma pesquisa de DNS para 8.8.8.8 e uma solicitação TCP para 8.8.8.8, ambos da VM.
Em primeiro lugar, o pedido do DNS passa para a eth0 sobre o brA para ve001, para a ZoneA, onde o pacote é marcado (usando o iptables) e passado para ve003 > ve004 etc. para ve006 onde é NAT e enviado para a internet. Quando a resposta retorna para ZoneZ (a zona NAT), a pesquisa na tabela NAT é concluída e o pacote é roteado para ve006, porque a entrada ARP para a máquina VM aponta para essa interface.
O principal problema surge quando tenho outro tráfego que quero encaminhar através da rota inferior. O mesmo que antes até ZoneA, no entanto, desta vez, é encaminhado para ve007, através de ZoneY e finalmente para ZoneZ, então passa para o gw NAT e para a internet. No entanto, quando uma resposta é recebida para esta conexão os pacotes vão para a ZoneZ a consulta é feita na tabela NAT, sua tradução e então a consulta da tabela ARP é feita, isto é quando a envia de volta via ve006 que está errado, eu quero para voltar o caminho que veio (neste caso via ve010).
Eu acho que a minha pergunta deveria ser, posso obter a tabela NAT para gravar a interface que foi apresentada e enviá-lo de volta via isso?