在做相关售前工作的时候,会遇到客户需求在总部和分支之间建立主备***,一旦主链路出现故障业务会自动切换到备份***。这种情况下,在两台Juniper srx设备之间,我们可以使用RPM和IP-MONITORING来配置基于路由的主备***(实验中不涉及路由实例,所以模拟的是一旦ISP1链路down掉,所有流量包括***在内全部切换到IPS2)。


一.实验需求:一旦主链路发生故障,业务流量流经备份隧道。


二.实验步骤:1.在两台SRX设置之间配置两个基于路由的***隧道(主备)。

                   2.配置RPM探针,目标接口为主***的外网接口。

                   3.配置IP-MONITOR,调用RPM探针,将***流量的下一条指定为备份的***接口。

三.实验拓扑:


JUNIPER SRX主备***配置实验1.0_第1张图片



四.实验过程:

1.主备***的配置:

srx320:

1.1接口地址配置:

interfaces {

    ge-0/0/0 {

        unit 0 {

            family inet {

                address 2.2.2.2/24;

            }

        }

    }

    ge-0/0/1 {

        unit 0 {

            family inet {

                address 10.10.11.2/24;

            }

        }

    }

    ge-0/0/2 {

        unit 0 {

            family inet {

                address 172.188.10.1/24;

            }

        }

    }

    st0 {

        unit 1 {

            family inet {

                address 7.7.7.2/24;

            }

        }

        unit 2 {

            family inet {

                address 8.8.8.2/24;

            }

        }

    }

}


1.2安全区域配置:

security {

    zones {

        security-zone trust {

            host-inbound-traffic {

                system-services {

                    all;

                }

                protocols {

                    all;

                }

            }

            interfaces {

                ge-0/0/2.0;

            }

        }

        security-zone untrsut {

            host-inbound-traffic {

                system-services {

                    all;

                }

                protocols {

                    all;

                }

            }

            interfaces {

                ge-0/0/0.0;

            }

        }

        security-zone isp2 {

            host-inbound-traffic {

                system-services {

                    all;

                }

                protocols {

                    all;

                }

            }

            interfaces {

                ge-0/0/1.0;

            }

        }

        security-zone ***-isp1 {

            interfaces {

                st0.1 {

                    host-inbound-traffic {

                        system-services {

                            all;

                        }

                    }

                }

            }

        }

        security-zone ***-isp2 {

            interfaces {

                st0.2 {

                    host-inbound-traffic {

                        system-services {

                            all;

                        }

                    }

                }

            }

        }

    }

}

1.3配置默认策略:

security {

    policies {

        default-policy {

            permit-all;

        }

    }

}

1.4配置路由:

routing-options {

    static {

        route 0.0.0.0/0 next-hop 2.2.2.1;

        route 172.16.10.0/24 next-hop st0.1;

    }

}

1.5配置主备***隧道:

security {

    ike {

        policy p1 {

            mode main;

            proposal-set standard;

            pre-shared-key ascii-text "$9$JWUi.QF/0BEP5BEcyW8ZUj"; ## SECRET-DATA

        }

        gateway G1 {

            ike-policy p1;

            address 1.1.1.2;

            external-interface ge-0/0/0.0;

        }

        gateway G2 {

            ike-policy p1;

            address 10.10.10.2;

            external-interface ge-0/0/1.0;

        }

    }

    ipsec {

        policy p1 {

            proposal-set standard;

        }

        *** P1 {

            bind-interface st0.1;  ----主隧道接口st0.1

            ike {

                gateway G1;

                ipsec-policy p1;

            }

            establish-tunnels immediately;

        }

        *** P2 {

            bind-interface st0.2;  ----备份隧道接口st0.2

            ike {

                gateway G2;

                ipsec-policy p1;

            }

            establish-tunnels immediately;

        }

    }

}

1.6配置RPM探针:

services {

    rpm {

        probe example {

            test test-1 {

                probe-type icmp-ping;

                target address 2.2.2.1;  ----IPS1的网关地址

                probe-count 3;

                probe-interval 15;

                test-interval 10;

                thresholds {

                    successive-loss 3;

                    total-loss 3;

                }

                destination-interface ge-0/0/0.0;

                next-hop 2.2.2.1;

            }

        }

    }

1.7配置IP-MONITOR:

services {

    ip-monitoring {

        policy test {

            match {

                rpm-probe example;

            }

            then {

                preferred-route {

                    route 172.16.10.2/32 {

                        next-hop 8.8.8.1;   ----备份***的路由

                    }

                    route 0.0.0.0/0 {

                        next-hop 10.10.11.1;  

                    }

                }

            }

        }

    }

}

srx300:

略。


五.实验验证:

1.首先检查两端设备的***状态:

可以看到phase1和phase2都已经up。

srx320:

JUNIPER SRX主备***配置实验1.0_第2张图片

srx300:

JUNIPER SRX主备***配置实验1.0_第3张图片

1.2 检查***流量:

srx320:

设备上ping对端主机172.16.10.2,

查看会话,可以看到流量通过st0.1接口也就是走了主隧道。

JUNIPER SRX主备***配置实验1.0_第4张图片

srx300:

流量同样通过st0.1走主隧道:

JUNIPER SRX主备***配置实验1.0_第5张图片

1.3关闭ISP1,检测RPM和IP-MONITOR状态:

RPM检测失败:

JUNIPER SRX主备***配置实验1.0_第6张图片

IP-MONITOR的状态切换:

JUNIPER SRX主备***配置实验1.0_第7张图片

1.4查看路由:

可以看到下一条切换到了st0.2备份接口:

JUNIPER SRX主备***配置实验1.0_第8张图片

1.5查看***隧道:

主隧道已经down掉。

主隧道down.png

1.6查看会话:

***流量由备份接口流出:

JUNIPER SRX主备***配置实验1.0_第9张图片

七.实验结论:

1.主备***切换成功。

2.切换过程中 ***流量的丢包情况:

一共丢了48个包:

JUNIPER SRX主备***配置实验1.0_第10张图片

通过查看session可以发现,出接口从st0.1到st0.2的转换的过程:

JUNIPER SRX主备***配置实验1.0_第11张图片


对此老司机的解释是:

“ip监控只是让路由的优先级变了,但是路由变了,有些会话还没有超时,切换的时间可能会更加长”



八.后续:

在基础的实验上面我们还可以做哪些?

1.假如客户对于***流量的要求很高,根本无法容忍长达一分钟的丢包,我们应该在RPM探针的参数设置上做哪些修改呢(inteval和threshold 值)?

2.老司机还介绍了另外一种方法就是***-monitor,目前还有待尝试。

3.假如添加路由实例,分支机构srx320的isp1出现问题,切换到备份路由,而总部的srx300上,只有到分支的***流量切换到备份链路,其余流量仍然走ISP1,如何操作?

4.集团单线接入,分支双线接入(类似多种具体部署环境,包括了HA ipsec主备,HA动态***主备等等)。

5.ISP3(不可行)。