Roteamento OpenVPN sem afetar a tabela de roteamento do host

1

Eu tenho um servidor Linux OpenVPN com dois clientes, A e B. Eu os configurei com client-to-client para que eles possam conversar um com o outro. Eu quero fazer o cliente A para ser a rota padrão para o cliente B para que B possa acessar a Internet através da rota: B- > server- > A > NAT- > internet. A Internet é a rota padrão de A e os túneis A e B estão na Internet usando suas próprias rotas padrão nativas.

No momento, com um TUN e sem diretivas de roteamento especiais, posso fazer ping de A para servidor, B para servidor e A para B, mas não há rota além de B.

A dificuldade é ... A já possui algumas tabelas de roteamento complexas (plural), acionadas por uma pilha de regras de iptables. Eu não quero que o OpenVPN toque neles porque isso quebrará o roteamento em outro lugar. O servidor tem uma rota padrão completamente diferente. Então preciso dizer:

  1. rota padrão de B para ser o servidor
  2. OpenVPN no servidor para rotear pacotes endereçados globalmente recebidos de B para A
  3. A para NAT os pacotes e enviá-los para fora da interface global
  4. O mesmo acontece ao contrário

Eu acho que configurei o iptables para fazer 3. Eu poderia fazer algumas regras de iptables para fazer B para um forwarding usando uma nova tabela de roteamento ... mas todas elas estão dentro de uma interface TUN para que o iptables não veja eles. Se eu usar iroute , isso interferirá no roteamento no servidor.

Uma opção é um dispositivo TAP - faça a ponte entre o servidor e, em vez de NAT, conecte o servidor a B TAP na interface WAN. Eu tenho isso tanto quanto A-server-B (virar tudo para dev tap , nenhuma outra alteração), mas então eu perco contato com B quando eu conecto tapB e WAN (depois de desligar o NAT). Isso também causa feedback positivo: o ruído do outro tráfego na interface WAN de A (solicitações ARP etc) é sintonizado no TAP, o que causa tráfego extra na interface WAN e assim por diante.

Outra opção é dois dispositivos TUN e iptables entre eles ... este é meu último recurso.

Então ... como posso dizer ao OpenVPN para fazer o encaminhamento de pacotes dentro de suas próprias interfaces, sem perturbar o roteamento no lado do SO?

    
por user1908704 17.12.2012 / 14:32

0 respostas