Pool de IPs virtuais para NAT com StrongSwan VPN

2

Estou tentando entender a configuração VPN de site para site usando StrongSwan, que permitirá que sites remotos se conectem ao nosso AWS VPC. O problema é que os gateways remotos estarão potencialmente usando a mesma sub-rede que o VPC e não poderão realizar nenhum NAT no final, de modo que tudo terá que ser feito no gateway da AWS.

Eu me deparei com o suporte ao "IP virtual" do IKEV2 e StrongSwan e acho que, com uma combinação de regras IPTable, pode ser a solução para esse problema. Embora eu tenha algumas perguntas sobre essa arquitetura, você pode ver no diagrama a seguir. Eu defini uma sub-rede especial em nossa VPC para dispositivos VPN remotos mapeados, isso é para garantir que tenhamos o espaço disponível, pois haverá muito escalonamento automático acontecendo em outro lugar na VPC.

Eventualmente, qualquer arquitetura que eu escolher precisará ser capaz de suportar vários sites remotos que se conectam ao nosso VPC.

  1. Emprimeirolugar,essaarquiteturaparecerazoável,dadaasituaçãoouexisteumamaneiramelhorderealizarissointeiramente?

Supondoquearespostaàpergunta1sejasim,

  • Será bastante fácil determinar uma sub-rede virtual de forma que ela não se sobreponha ao meu VPC (10.0.0.0/16) ou ao site remoto (10.0.0.0/16), digamos que eu escolha manualmente 11.0 0,0 / 24. Como faço para acompanhar quem é quem no pool virtual? O endereço é simplesmente mapeado de 1 para 1, por exemplo, 10.0.0.15 - > 11.0.0.15? Qual é a melhor maneira de acompanhar esse mapeamento?

  • Gosto da ideia de uma sub-rede especial "Sub-rede de VPN mapeada" porque posso acompanhar meu espaço disponível. No entanto, na sua opinião, essa abordagem apenas torna a topologia excessivamente complexa? A outra opção seria eliminar essa sub-rede e simplesmente usar os pools de ip virtuais.

  • Supondo que a resposta à questão 3 seja sim,

    1. Qual é a melhor maneira de implementar regras de IPTable NAT, de tal forma que endereçadas no conjunto virtual são roteadas PRE / POST para a "Sub-rede VPN Mapeada". Algo assim?

    Regras,

    iptables -t nat -A PREROUTING -d <virtual address> -j DNAT --to-destination <mapped vpc address>
    
    iptables -t nat -A POSTROUTING -d <mapped vpc address> -j SNAT --to-source <virtual address>
    

    Após alguns testes básicos, parece que o mapeamento da sub-rede remota para a sub-rede virtual não é de 1 para 1. Também não consigo mapear toda a sub-rede, apenas o gateway remoto está sendo mapeado.

    Configuração do gateway local

    config setup
            charonstart=yes
            plutostart=no
    
    conn %default
            ikelifetime=60m
            keylife=20m
            rekeymargin=3m
            keyingtries=1
            keyexchange=ikev2
            authby=secret
    
    conn testConn
            leftid=%any
            left=10.0.0.11
            leftsubnet=10.0.0.0/16
            leftfirewall=yes
            right=%any
            rightsourceip=16.16.0.0/16
            rightsubnet=10.0.0.0/16
            auto=add
    

    Configuração do cliente remoto

    config setup
            charonstart=yes
            plutostart=no
    
    conn %default
            ikelifetime=60m
            keylife=20m
            rekeymargin=3m
            keyingtries=1
            keyexchange=ikev2
            authby=secret
    
    conn testConn
            left=%any
            leftsourceip=%config
            leftsubnet=10.0.0.0/16
            leftid=%any
            leftfirewall=yes
            right=<Gateway Public IP>
            rightsubnet=10.0.0.0/16
            rightid=%any
            auto=start
    

    Registros Charon

    charon: 04[IKE] peer requested virtual IP %any
    charon: 04[CFG] assigning new lease to '10.0.0.10'
    charon: 04[IKE] assigning virtual IP 16.16.0.1 to peer '10.0.0.10'
    

    Como diabos eu obtenho toda a sub-rede remota para mapear no pool de IP virtual!?!?

        
    por anders 07.04.2015 / 19:13

    0 respostas