Routing

 View Only

Advertise public prefixes using rib-groups

  • 1.  Advertise public prefixes using rib-groups

    Posted 07-20-2023 06:03

    Hello Juniper Community,

    We are currently experimenting with next-table and rib-groups. We have two pair of routing instances running on two MX routers (for redundancy). Instance 1 (which is called internet-global) is used for generating the default route, instance 2 (which is called internet-default) is used for aggregating our public prefixes to instance 1. These instances are currently connected to each other using the lt-interface (logical tunnel). We would like to replace this with next-table and rib-groups, because of the speed limitation. NOTE: instance 1 is a virtual router and instance 2 is a VRF. Changing the routing instance type is not an option for us.

    I already made some changes in the config. Here is the config of instance 1:

    show routing-instances internet-global     
    description "EDGE VR, Full table, not in MPLS";
    instance-type virtual-router;
    interface ae0.10;
    interface ae0.101;
    interface ae0.211;
    interface ae0.4002;
    interface ae0.4012;
    interface ae0.4013;
    interface ae0.4016;
    interface lo0.1000;
    routing-options {
        rib internet-global.inet6.0 {
            generate {
                route ::/0 discard;
            }
        }
        generate {
            route 0.0.0.0/0 discard;
        }
        autonomous-system xxxx22;
    } 

    Here is the config of instance 2, also a side note, the route are being currently aggregated so I replaced the aggregate with static routes discard for the prefixes and added a policy with the three prefixes exact then accept then reject:

    show routing-instances internet-default   
    description "Internet VRF - axxxx22 subnets only!";
    instance-type vrf;
    interface ae0.11;
    interface ae0.100;
    interface ae0.900;
    interface ae0.901;
    interface ae0.905;
    interface ae0.906;
    interface ae0.911;
    interface ae0.913;
    interface ae0.914;
    interface ae0.915;
    interface ae0.916;
    interface ae0.917;
    interface ae0.920;
    interface ae0.921;
    interface ae0.922;
    interface ae0.924;
    interface ae0.926;
    interface ae0.927;
    interface ae0.998;
    route-distinguisher xxxx76L:100;
    vrf-target target:xxxx76L:100;
    vrf-table-label;                        
    routing-options {
        rib internet-default.inet6.0 {
            aggregate {
                defaults {
                    as-path {
                        path 6xxx9;
                    }
                }
                route 2xxx:xxc0::/29;
                route 2xxx:xxx0::/29;
            }
        }
        static {
            rib-group default-to-global
            defaults {
                as-path {
                    path 6xxx9;
                }
            }
            route xxx.xx.32.0/22 discard;
            route xxx.xxx.56.0/23 discard;  
            route xxx.xxx.58.0/24 discard;
            route 0.0.0.0/0 next-table internet-global.inet.0
        }
        router-id xxx.xxx.58.252;
        autonomous-system 6xxx9 loops 2 independent-domain;
    }

    Here is the output of instance 1 routing table:

    run show route table internet-global.inet   
    
    internet-global.inet.0: 13 destinations, 14 routes (12 active, 0 holddown, 1 hidden)
    + = Active Route, - = Last Active, * = Both
    
    XXX.XX.32.0/22     *[Static/5] 00:07:52
                          Discard
    XXX.XXX.56.0/23    *[Static/5] 00:07:52
                          Discard
    XXX.XXX.58.0/24    *[Static/5] 00:07:52
                          Discard
    XXX.XXX.58.252/32  *[Direct/0] 02:49:55
                        > via ae0.10
                        [Local/0] 02:49:55
                          Local via ae0.10
    XXX.XXX.58.255/32  *[Direct/0] 3d 18:48:18
                        > via lo0.1000   

    Here is the output of instance 2 routing table:

    run show route table internet-default.inet              
    
    internet-default.inet.0: 76 destinations, 77 routes (76 active, 0 holddown, 0 hidden)
    + = Active Route, - = Last Active, * = Both
    
    0.0.0.0/0          *[Static/5] 00:09:17
                          to table internet-global.inet.0

    I have a couple of questions about this topic. The first is that the routes are being advertised as discard in the routing table of instance 1, how do I fix this? I want to be able to use them. When I export the prefixes using a policy without the static routes, I don't see them in the routing table and I get no traffic. When I use rib-groups without the import-policy all the routing entries of instance 2 get imported to instance 1 (which we absolutely don't want). Anyone who has experienced this before? One more thing, on  instance 1 I have generate routes with discard, do I need to delete those, since I'm using next-table default-route in instance 2?

    Thank in advance!

    Best regards,



    ------------------------------
    Mohammad Ayash
    ------------------------------