Eu tenho dois roteadores de modem ADSL e um servidor todos no mesmo intervalo de endereços IP atribuídos estaticamente (192.168.0.1/24).
Internet 1 -- (1.1.1.1) Modem 1 (192.168.0.1) -- Switch -- (192.168.0.3) Server
Internet 2 -- (2.2.2.2) Modem 2 (192.168.0.2) -----/
Cada um dos modems encaminha as portas para o servidor, por exemplo, ssh. Isso funciona em um modem, mas não no outro. Se eu fizer um rastreamento de pacote, os pacotes ssh chegam ao servidor e são retornados pelo gateway padrão, que pode ter um IP externo diferente da origem. Se não corresponder à origem, a resposta será descartada e a conexão ssh expirará.
por exemplo. Se o gateway padrão no servidor for 192.168.0.1, os pacotes ssh tomarão os seguintes caminhos:
Request: SSH to 1.1.1.1 -> 192.168.0.1 -> 192.168.0.3
Response: 192.168.0.3 -> 192.168.0.1 -> 1.1.1.1
Result: WORKS! :-D
Request: SSH to 2.2.2.2 -> 192.168.0.2 -> 192.168.0.3
Response: 192.168.0.3 -> 192.168.0.1 -> 1.1.1.1
Result: WRONG RESPONSE IP (2.2.2.2 != 1.1.1.1)
Eu entendo por meio de conversas com pessoas na rede do IRC ## que o que eu quero é "Roteamento Baseado na Origem", um tipo de Roteamento Baseado em Políticas.
Pelo que eu posso dizer, um PBR é parecido com:
access-list 1 permit 192.168.0.1
access-list 2 permit 192.168.0.2
!
interface async 1
ip policy route-map equal-access
!
route-map equal-access permit 10
match ip address 1
set ip default next-hop 192.168.0.1
route-map equal-access permit 20
match ip address 2
set ip default next-hop 192.168.0.2
route-map equal-access permit 30
set default interface null0
Eu passei muitas horas olhando para tutoriais e exemplos sobre isso, mas eles não parecem se aproximar das minhas necessidades. Especificamente, não consigo entender:
- Como o IP de origem é correspondido ao IP de resposta,
- O significado de 'async' no exemplo acima,
- Se o exemplo acima for até mesmo remotamente correto para minhas necessidades, e
- Onde devo colocar essa configuração em um servidor Ubuntu padrão?