No Boost ASIO, como posso definir o endereço IP de origem para representar o endereço IP de outro servidor?
Eu tenho um programa de servidor C ++ baseado no Boost ASIO e gostaria de poder definir o endereço IP de origem usado pelo TCP para o de outro servidor. Eu sei que é possível ler os endereços IP de origem e destino, mas presumivelmente eles também podem ser configurados?
Presumivelmente, se eu definir o endereço IP de origem "errado" no código C ++, haverá alguma interação com a pilha de rede. A pilha de rede não redefinirá o endereço IP de origem na saída, mesmo que o código C ++ esteja correto? A maneira correta de fazer isso é escrever código C ++ ASIO para escolher uma interface de rede virtual específica? Um que está configurado com o endereço IP estático "errado"? Eu já vi isso antes como uma maneira de controlar o endereço IP de origem. É isso que eu preciso fazer?
Eu estou querendo saber quais seriam as consequências disso. Ter duas máquinas com o mesmo endereço IP estático configurado pode fazer com que o servidor "normal" pare de funcionar completamente, o que seria ruim.
Tenho portas Windows e Linux do meu servidor que posso usar, caso o código proposto funcione em um sistema operacional e não no outro. Atualmente, estou inclinado para o Kali Linux, pois posso "arpspoof" do servidor principal e efetivamente desligá-lo por um tempo.