Seria possível executar o squid em seu namespace de rede se o systemd permitisse a execução de processos em namespaces de rede nomeados. Veja link , parece que isso não é uma correção. No entanto, existem algumas soluções listadas aqui.
Como alternativa, você pode executar o squid no namespace de rede padrão e usar tcp_outgoing_address definido como o endereço IP de um encapsulamento no seu namespace de rede. Em seguida, use o roteamento de política (regra de IP) para definir a rota padrão por meio do namespace vpn / network para o tráfego originado desse endereço IP.
Você não precisa realmente de um namespace de rede; contanto que sua VPN não substitua sua principal rota padrão, você pode usar o roteamento de política para definir uma rota padrão através da VPN para o tráfego que vem do seu endereço IP na VPN. Isso funciona bem se você tiver o mesmo endereço IP sempre na VPN.
por exemplo,
systemctl start openvpn
edite o arquivo / etc / iproute2 / rt_tables:
...
101 vpn1
então
ip route add default via 192.168.0.1 table vpn1 (# where 192.168.0.1 is the remote gateway IP on the VPN)
ip rule add from 192.168.0.99 lookup vpn1 (# where 192.168.0.99 is the local IP address on the VPN)
edite o /etc/squid3/squid.conf:
...
tcp_outgoing_address 192.168.0.99 [[!]aclname] ...
...
(Use squids acls para selecionar o tráfego que você quer ir através da VPN).
Você pode usar a mesma técnica com um namespace de rede nomeado, o que permite que isso funcione mesmo nos endereços IP locais e remotos na alteração da VPN. Nesse caso, você precisa configurar o nat / masquerading no namespace e um túnel entre o namespace padrão e o namespace da VPN. Nesse caso, o encapsulamento terá endereços IP estáticos atribuídos, de modo que funcionará em torno dos endereços IP dinâmicos atribuídos pela VPN.