Remove no-export community on juniper

The BGP routes containing no-export community are not advertised to external BGP peers.

There might be a practical scenario where we might need to export routes to ebgp neighbors. In that case we need to remove no-export community.

 

This post explains how we remove no-export community in juniper.

 

In the diagram shown above

 

R1 advertises its loopback (11.11.11.11/32)with no-export community to R2.  R2 will not advertise 11.11.11.11/32 to R3 as it received route no-export community.

 

R1 Configuration:

 

lab@juniper-rtr> show configuration logical-systems R1                          

interfaces {

    lt-2/0/10 {

        unit 0 {

            encapsulation ethernet;

            peer-unit 1;

            family inet {

                address 1.1.1.1/24;

            }

        }

    }

    lo0 {

        unit 100;

    }

}

protocols {

    bgp {

        export exp_no-export-comm;

        group ext-100 {

            type external;

            neighbor 1.1.1.2 {

                peer-as 200;

            }

        }

    }

}

policy-options {

    policy-statement exp_no-export-comm {

        term 1 {

            from protocol direct;

            then {

                community set No_EXPORT;

                accept;

            }

        }

    }

    community No_EXPORT members no-export;

}

routing-options {

    autonomous-system 100;

}

 

R2 Configuration:

 

lab@juniper-rtr> show configuration logical-systems R2  

interfaces {

    lt-2/0/10 {

        unit 1 {

            encapsulation ethernet;

            peer-unit 0;

            family inet {

                address 1.1.1.2/24;

            }

        }

        unit 2 {

            encapsulation ethernet;

            peer-unit 3;

            family inet {

                address 2.2.2.1/24;

            }

        }

    }

}

protocols {

    bgp {

        group ext-100 {

            type external;

            neighbor 1.1.1.1 {

                peer-as 100;

            }

        }

        group ext-AS300 {

            type external;

            neighbor 2.2.2.2 {

                peer-as 300;

            }

        }

    }

}

routing-options {

    autonomous-system 200;

}                                      

 

lab@juniper-rtr>

 

R3 Configuration:

 

lab@juniper-rtr> show configuration logical-systems R3   

interfaces {

    lt-2/0/10 {

        unit 3 {

            encapsulation ethernet;

            peer-unit 2;

            family inet {

                address 2.2.2.2/24;

            }

        }

    }

}

protocols {

    bgp {

        group ext-AS200 {

            type external;

            neighbor 2.2.2.1 {

                peer-as 200;

            }

        }

    }

}

routing-options {

    autonomous-system 300;

}

 

 

Route output in R2:

 

lab@juniper-rtr> show route logical-system R2 11.11.11.11 detail

 

inet.0: 5 destinations, 6 routes (5 active, 0 holddown, 0 hidden)

11.11.11.11/32 (1 entry, 1 announced)

        *BGP    Preference: 170/-101

                Next hop type: Router, Next hop index: 3078

                Address: 0xa5c1e40

                Next-hop reference count: 3

                Source: 1.1.1.1

                Next hop: 1.1.1.1 via lt-2/0/10.1, selected

                Session Id: 0x29e6

                State: <Active Ext>

                Local AS:   200 Peer AS:   100

                Age: 4:23

                Validation State: unverified

                Task: BGP_100.1.1.1.1

                Announcement bits (1): 0-KRT

                AS path: 100 I

                Communities: no-export

                Accepted

                Localpref: 100

                Router ID: 1.1.1.1

 

In R3 route table we do not see 11.11.11.11/32

 

lab@juniper-rtr> show route logical-system R3                     

 

inet.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)

+ = Active Route, - = Last Active, * = Both

 

2.2.2.0/24         *[Direct/0] 00:25:33

                    > via lt-2/0/10.3

2.2.2.2/32         *[Local/0] 00:25:33

                      Local via lt-2/0/10.3

 

 

Configure following policy on R2 to remove no-export community and apply it for the routes received from R1:

 

protocols {

    bgp {

        group ext-100 {

            type external;

            import REMOVE_no-export;

            neighbor 1.1.1.1 {

                peer-as 100;

            }

        }

        group ext-AS300 {

            type external;

            neighbor 2.2.2.2 {

                peer-as 300;

            }

        }

    }

}

policy-options {

    policy-statement REMOVE_no-export {

        then {

            community delete NO_EXPORT;

        }

    }

    community NO_EXPORT members no-export;

}

 

 

Once the bgp import policy is configured to remove no-export community we do not see no-export community for route 11.11.11.11/32 and the same route is exported to R3

 

 

lab@juniper-rtr> show route logical-system R2 11.11.11.11 detail   

 

inet.0: 5 destinations, 6 routes (5 active, 0 holddown, 0 hidden)

11.11.11.11/32 (1 entry, 1 announced)

        *BGP    Preference: 170/-101

                Next hop type: Router, Next hop index: 3078

                Address: 0xa5c1e40

                Next-hop reference count: 3

                Source: 1.1.1.1

                Next hop: 1.1.1.1 via lt-2/0/10.1, selected

                Session Id: 0x29e6

                State: <Active Ext>

                Local AS:   200 Peer AS:   100

                Age: 6:39

                Validation State: unverified

                Task: BGP_100.1.1.1.1

                Announcement bits (2): 0-KRT 1-BGP_RT_Background

                AS path: 100 I

                Accepted

                Localpref: 100

                Router ID: 1.1.1.1

 

 

lab@juniper-rtr> show route logical-system R3                      

 

inet.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)

+ = Active Route, - = Last Active, * = Both

 

2.2.2.0/24         *[Direct/0] 00:27:30

                    > via lt-2/0/10.3

2.2.2.2/32         *[Local/0] 00:27:30

                      Local via lt-2/0/10.3

11.11.11.11/32     *[BGP/170] 00:00:58, localpref 100

                      AS path: 200 100 I, validation-state: unverified

                    > to 2.2.2.1 via lt-2/0/10.3

 

Remove no-export community in Cisco:

 

Similar to juniper configuration on R2, we define route-map and apply to BGP peer in input direction.

                                          

Route before applying route-map. We can see from the below output that route is not advertised to EBGP peer.

 

lab-R2#sh ip bgp vpnv4 vrf NO-EXPORT-TEST 11.11.11.11                              

BGP routing table entry for 111:1441:11.11.11.11/32 version 19502

Paths: (1 available, best #1, table NO-EXPORT-TEST, not advertised to EBGP peer)

  Not advertised to any peer

  10.64.10.1 from 10.64.10.1 (219.91.219.254)

      Origin IGP, localpref 100, valid, external, best

      Community: 65218:20 65218:3202 no-export

      mpls labels in/out 2653/nolabel

lab-R2#

 

 

Route-map Configuration:

 

Configure following route-map on R2 to remove no-export community and apply it for the routes received from R1:

 

 

route-map no-export-remove permit 10

 set community none

 

 

lab-R2 (config-router-af)#neighbor 10.64.10.1 route-map  no-export-remove in

 

 

Route after applying route-map

 

lab-R2#sh ip bgp vpnv4 vrf NO-EXPORT-TEST 11.11.11.11                              

BGP routing table entry for 111:1441:11.11.11.11/32, version 19541

Paths: (1 available, best #1, table NO-EXPORT-TEST)

  Advertised to update-groups:

     51       

   10.64.10.1 from 10.64.10.1 (219.91.219.254)

      Origin IGP, localpref 100, valid, external, best

      mpls labels in/out 2653/nolabel

lab-R2#

 

 

Remove no-export community in Alcatel-Lucent:

 

Configure following policy on R2 to remove no-export community and apply it for the routes received from R1:

 

policy-options

            community "NO_EXPORT" members "no-export"

            policy-statement "NO_EXPORT_REMOVE"

                entry 10

                    from

                        protocol bgp

                    exit

                    action accept

                        community remove "NO_EXPORT"

                    exit

                exit

 

 

bgp

  group "AS100"

     import "NO_EXPORT_REMOVE"

 

 

Once the bgp import policy is configured to remove no-export community we can see no-export community is removed in modified attributes for route 11.11.11.11/32 and the same route is exported to R3

 

lab-alu-rtr # show router 1000 bgp routes 11.11.11.11/32 detail

===============================================================================

 BGP Router ID:2.2.2.1   AS:200        Local AS:200      

===============================================================================

 Legend -

 Status codes  : u - used, s - suppressed, h - history, d - decayed, * - valid

 Origin codes  : i - IGP, e - EGP, ? - incomplete, > - best, b - backup

 

===============================================================================

BGP IPv4 Routes

===============================================================================

-------------------------------------------------------------------------------

Original Attributes

 

Network        : 11.11.11.11/32

Nexthop        : 1.1.1.1

Path Id        : None                  

From           : 1.1.1.1

Res. Nexthop   : 1.1.1.1

Local Pref.    : n/a                    Interface Name : Port 2/2/15:1081:0

Aggregator AS  : None                   Aggregator     : None

Atomic Aggr.   : Not Atomic             MED            : 10

Community      : no-export

Cluster        : No Cluster Members

Originator Id  : None                   Peer Router Id : 1.1.1.1

Fwd Class      : None                   Priority       : None

Flags          : Used  Valid  Best  IGP 

Route Source   : External              

AS-Path        : 100

 

Modified Attributes

 

Network        : 11.11.11.11/32

Nexthop        : 1.1.1.1

Path Id        : None                  

From           : 1.1.1.1

Res. Nexthop   : 1.1.1.1

Local Pref.    : None                   Interface Name : Port 2/2/15:1081:0

Aggregator AS  : None                   Aggregator     : None

Atomic Aggr.   : Not Atomic             MED            : 10

Community      : No Community Members

Cluster        : No Cluster Members

Originator Id  : None                   Peer Router Id : 1.1.1.1

Fwd Class      : None                   Priority       : None

Flags          : Used  Valid  Best  IGP 

Route Source   : External              

AS-Path        : 100