[Juniper SRX] IP Monitoring com 3 WAN links redundântes

Pessoal,


Recentemente obtive uma missão para provisionar a feature ip-monitoring no SRX com 3 links WAN, ou seja, são 3 default routes disponíveis no ambiente.

Para quem não conhece, a funcionalidade ip-monitoring fica realizando probes(testes) em um determinado link para um endereço ip, caso não obtenha sucesso na resposta é aplicado um novo next-hop para a rota em questão.

 

Porem muitos devem ter obtivo dificuldade se tentou realizar o provisionamento para 3 links, neste momento vemos vários problemas quando são aplicadas falhas em conjuntos de links, por exemplo WAN 1 e WAN 2 sofrerem uma interrupção? A funcionalidade irá entrar em loop, pois irá aplicar next-hop para policy que verifica o WAN1 e uma outra para WAN2, fazendo com que o Juniper se perca para sua tabela de rotamento.

 

Como uma tentativa de resolver o problema, abri um case junto ao fabricante, mas de nada adiantou pois o engenheiro solicitou aplicarmos event-options, que além de ser extremamente complexo, impacta diretamente na performance e administração do ambiente. Acabei pensando por algumas horas cheguei a está solução que vou lhes apresentar abaixo:

 

##  Interfaces WAN ##
WAN 1 : ge-0/0/0 address 10.31.31.1/24    gateway 10.31.31.2
WAN 2 : ge-0/0/1 address 10.32.32.1/24    gateway 10.32.32.2
WAN 3 : ge-0/0/2 address 10.33.33.1/24    gateway 10.33.33.2

## Tabela de roteamento ##
routing-options {
    static {
        route 0.0.0.0/0 {
            qualified-next-hop 10.31.31.2 {
                preference 10;
            }
            qualified-next-hop 10.32.32.2 {
                preference 11;
            }
        }
    }
}

 

## Configurando RPM e IP-Monitoring ##
services {
    rpm {
        probe ISP1 {
            test TESTISP1 {
                target address 8.8.8.8;
                probe-count 3;
                probe-interval 2;
                test-interval 4;
                thresholds {
                    successive-loss 4;
                }
                destination-interface ge-0/0/0.0;
                next-hop 10.31.31.2;
            }
        }
        probe ISP2 {
            test TESTISP1 {
                target address 8.8.8.8;
                probe-count 3;
                probe-interval 2;
                test-interval 4;
                thresholds {
                    successive-loss 4;
                }
                destination-interface ge-0/0/0.0;
                next-hop 10.31.31.2;
            }
            test TESTISP2 {
                target address 8.8.8.8;
                probe-count 3;
                probe-interval 2;
                test-interval 4;
                thresholds {
                    successive-loss 4;
                }
                destination-interface ge-0/0/1.0;
                next-hop 10.32.32.2;
            }
        }
    }
    ip-monitoring {
        policy ISP1-POLICY {
            match {
                rpm-probe ISP1;
            }
            then {
                preferred-route {
                    route 0.0.0.0/0 {
                        next-hop 10.32.32.2;
                        preferred-metric 9;
                    }
                }
            }
        }
        policy ISP2-POLICY {
            match {
                rpm-probe ISP2;
            }
            then {
                preferred-route {
                    route 0.0.0.0/0 {
                        next-hop 10.33.33.2;
                        preferred-metric 8;
                    }
                }
            }
        }
    }
}

 

Download Configuração completa

 

Esse artigo fora criado por Junovan Fantin.
Caso desejarem compartilhar este conteúdo, não esqueçam de mencionar suas referências.

.