No momento, estou tentando resolver o seguinte problema, mas minhas pesquisas no Google/SO não produziram um cenário correspondente até agora:
Do meu host Linux, devo alcançar o host de destino 172.19.28.152. No entanto, devido a complicações de rede corporativa, devo usar um endereço IP diferente para esse alvo: 10.187.19.132.
Preciso resolver o problema na camada IP porque o aplicativo não permite alterar o alvo (ele sempre usará o endereço IP 172..., e não há como eu alterar esse comportamento no meu cenário). Além disso, o aplicativo não me permite especificar um nome DNS em vez disso.
Por isso, quero configurar o nftables para fazer o seguinte:
Se um pacote deixar meu próprio host com o destino 172.19.28.152, substitua o IP de destino por 10.187.19.132. Quando o destino responder, reescreva 10.187.19.132 com o original 172.19.28.152 (NAT) Meu problema é que não consigo descobrir a sintaxe para tal regra.
Deixe-me explicar de outra forma: você quer que um host remoto pareça estar em um endereço IP diferente daquele que você realmente precisa acessar.
Esta é
DNAT
uma tradução do tipo padrão, em nftables parece o seguinteEm vez disso,
OUTPUT
você pode precisar usar a cadeia que você criou anteriormente; o nftables não fornece cadeias padrão. Ela pode ser criada com algo comoSe você só precisa estabelecer comunicações do seu lado para esse sistema, não precisa de nenhuma outra regra. O rastreador de conexão adicionará registros expect, então as respostas serão capturadas e traduzidas de volta corretamente.
Se, por outro lado, o controle remoto também deve ser capaz de iniciar comunicações com sua máquina, você precisa, inversamente, de uma
SNAT
regra semelhante à seguinte:POSTROUTING
é, novamente, deve ser substituído pela cadeia da função correspondente que você criou anteriormente, com algo assim: