Roteamento VPN multisite

Roteamento VPN multisite

Atualmente, estou configurando uma VPN multisite (3 sites).

Aqui está um desenho rápido:

insira a descrição da imagem aqui

Até agora a configuração está boa e funcionando conforme o esperado. O ping de 10.10.20.1 <-> 10.10.10.1 e também de 10.10.30.1 <-> 10.10.10.1 está funcionando bem.

Agora quero descobrir como conectar de 10.10.20.1 a 10.10.30.1.

Acho que preciso usar iptablespara fazer isso, correto?

Se alguém puder explicar quais etapas são necessárias e por que me ajudaria muito!

Responder1

Não faça NAT. NAT é um erro que deve ser evitado sempre que possível. Ele quebra o princípio ponta a ponta usado como base do TCP/IP.

Com rotas estáticas você precisa apontá-las para o túnel. Se os roteadores trocarem informações de roteamento (OSPF, ...) as rotas deverão surgir automaticamente. Para ativar os túneis, podem ser necessárias rotas estáticas (o roteamento dinâmico só é atualizado quando o túnel estiver ativo).

Responder2

Eu descobri. Aqui está minha solução longa e rápida:

solução longa (não exatamente)

No servidor inferior:

iptables -A FORWARD -s 10.10.30.0/24 -d 10.10.20.0/24 -i enp2s0 -m policy --dir in --pol ipsec --reqid 2 --proto esp -j ACCEPT
iptables -A FORWARD -s 10.10.20.0/24 -d 10.10.30.0/24 -o enp2s0 -m policy --dir out --pol ipsec --reqid 2 --proto esp -j ACCEPT
iptables -A FORWARD -s 10.10.20.0/24 -d 10.10.30.0/24 -i enp2s0 -m policy --dir in --pol ipsec --reqid 1 --proto esp -j ACCEPT
iptables -A FORWARD -s 10.10.30.0/24 -d 10.10.20.0/24 -o enp2s0 -m policy --dir out --pol ipsec --reqid 1 --proto esp -j ACCEPT

No servidor superior esquerdo:

ip route add 10.10.30.0/24 via 138.x.x.1 dev eth0 proto static src 10.10.20.1 table 220
iptables -A FORWARD -s 10.10.30.0/24 -d 10.10.20.0/24 -i eth0 -m . policy --dir in --pol ipsec --reqid 2 --proto esp -j ACCEPT
iptables -A FORWARD -s 10.10.20.0/24 -d 10.10.30.0/24 -o eth0 -m policy --dir out --pol ipsec --reqid 2 --proto esp -j ACCEPT

No servidor superior direito:

ip route add 10.10.20.0/24 via 108.x.x.1 dev eth0 proto static src 10.10.30.1 table 220
iptables -A FORWARD -s 10.10.20.0/24 -d 10.10.30.0/24 -i eth0 -m policy --dir in --pol ipsec --reqid 2 --proto esp -j ACCEPT
iptables -A FORWARD -s 10.10.30.0/24 -d 10.10.20.0/24 -o eth0 -m policy --dir out --pol ipsec --reqid 2 --proto esp -j ACCEPT

Embora funcione, o roteamento do cisne forte está proibindo conexões como um tcpdump revelou.

[bottom]$ tcpdump -nni enp2s0 icmp
15:35:22.512437 IP 109.x.x.x > 85.x.x.x: ICMP host 109.x.x.x unreachable - admin prohibited, length 48

solução rápida

Esta solução é muito legal porque o Strongswan/IPsec gerencia todas as rotas iptable e estáticas para você e também permite acesso às sub-redes especificadas.

No servidor inferior:

# /etc/ipsec.conf
conn top-left-to-bottom
    ...
    leftsubnet=10.10.10.0/24,10.10.30.0/24
    ...

conn top-right-to-bottom
    ...
    leftsubnet=10.10.10.0/24,10.10.20.0/24
    ...

No servidor superior esquerdo:

# /etc/ipsec.conf
conn top-left-to-bottom
    ...
    rightsubnet=10.10.10.0/24,10.10.30.0/24
    ...

No servidor superior direito:

# /etc/ipsec.conf
conn top-right-to-bottom
    ...
    rightsubnet=10.10.10.0/24,10.10.20.0/24
    ...

Esta é a aparência de um ping tcpdumped bem-sucedido:

[bottom]$ tcpdump -nni enp2s0 icmp
15:52:37.160859 IP 10.10.20.1 > 10.10.30.1: ICMP echo request, id 1296, seq 1, length 64
15:52:37.164971 IP 10.10.30.1 > 10.10.20.1: ICMP echo reply, id 1296, seq 1, length 64

informação relacionada