Supere o roteamento assimétrico ao migrar entre conjuntos de ISPs

5

Estamos migrando de um conjunto de endereços para outro conjunto, ambos / 24, e tentando minimizar qualquer tempo de inatividade durante a migração. Idealmente, nós correríamos por um período de tempo quando desligássemos os velhos circuitos. Há um total de 4 conexões de internet, com cada par rodando BGP.

Cada um deles é roteado para um Cisco ASA, que é conectado a um switch que possui vários servidores conectados a essa sub-rede.

No diagrama acima, a parte da mão esquerda é o que existe hoje, e eu estou olhando para adicionar o lado direito.

Eu conectei o ASA e tenho ambos na sub-rede 10.20.20.0/24, com a primeira interface ASA como 10.20.20.1 e a segunda interface ASA como 10.20.20.254.

O problema aqui é que todos os servidores têm o 10.20.20.1 como sua rota padrão, e eu realmente gostaria de direcionar o tráfego de volta do jeito que ele veio. Isto é, internet - > ASA # 2 - > servidor - > de volta ao ASA # 2. Como é hoje, é claro, ele envia a resposta de volta ao ASA # 1 e não encontra uma tradução para ele.

Estou indo por esse caminho errado?

Edit: Eu devo mencionar que Outside # 1 e Outside # 2 possuem diferentes redes públicas / 24. Estamos migrando de um bloco fornecido pelo provedor para nosso próprio bloco.

    
por fullstop 11.02.2016 / 21:35

1 resposta

0

Isso foi o que acabei fazendo:

#!/bin/sh
echo 200 asa1 >> /etc/iproute2/rt_tables
echo 201 asa2 >> /etc/iproute2/rt_tables
ip route add table asa1 default via 10.20.20.1 dev eth0 metric 100
ip route add table asa2 default via 10.20.20.254 dev eth0 metric 100
ip rule add prio 100 from all fwmark 1 lookup asa1
ip rule add prio 110 from all fwmark 2 lookup asa2
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
iptables -t mangle -A OUTPUT -j CONNMARK --restore-mark
iptables -t mangle -A INPUT -m mac --mac-source $(MAC_ASA1) -j MARK set-mark 1
iptables -t mangle -A INPUT -m mac --mac-source $(MAC_ASA2) -j MARK --set-mark 2
iptables -t mangle -A INPUT -j CONNMARK --save-mark

Substitua MAC_ASA1 / MAC_ASA2 pelo endereço de hardware da interface conectada no ASA. Isso pode ser obtido da tabela ARP.

Você também deve estar ciente do nome do dispositivo Ethernet, especialmente se estiver usando systemd com os nomes de interface de estilo mais recentes.

    
por 17.02.2016 / 16:16