route-map HANDLE-LOCAL-PREF-COMMUNITIES { rule 2 { action permit match { community { community-list LOCAL-PREF-0 } } on-match { next } set { community { delete LOCAL-PREF-0 } local-preference 0 } } rule 3 { action permit match { large-community { large-community-list LARGE-LOCAL-PREF-0 } } on-match { next } set { large-community { delete LARGE-LOCAL-PREF-0 } local-preference 0 } } rule 10 { action permit match { community { community-list LOCAL-PREF-10 } } on-match { next } set { community { delete LOCAL-PREF-10 } local-preference 10 } } rule 11 { action permit match { large-community { large-community-list LARGE-LOCAL-PREF-10 } } on-match { next } set { large-community { delete LARGE-LOCAL-PREF-10 } local-preference 10 } } rule 20 { action permit match { community { community-list LOCAL-PREF-100 } } on-match { next } set { community { delete LOCAL-PREF-100 } local-preference 100 } } rule 21 { action permit match { large-community { large-community-list LARGE-LOCAL-PREF-100 } } on-match { next } set { large-community { delete LARGE-LOCAL-PREF-100 } local-preference 100 } } rule 30 { action permit match { community { community-list LOCAL-PREF-150 } } on-match { next } set { community { delete LOCAL-PREF-150 } local-preference 150 } } rule 31 { action permit match { large-community { large-community-list LARGE-LOCAL-PREF-150 } } on-match { next } set { large-community { delete LARGE-LOCAL-PREF-150 } local-preference 150 } } rule 40 { action permit match { community { community-list LOCAL-PREF-200 } } on-match { next } set { community { delete LOCAL-PREF-200 } local-preference 200 } } rule 41 { action permit match { large-community { large-community-list LARGE-LOCAL-PREF-200 } } on-match { next } set { large-community { delete LARGE-LOCAL-PREF-200 } local-preference 200 } } rule 999 { action permit } } route-map HANDLE-PEER-AS211615-COMMUNITIES { rule 10 { action permit match { large-community { large-community-list PREPEND-1-AS211615 } } on-match { next } set { as-path { prepend-last-as 1 } large-community { delete PREPEND-1-AS211615 } } } rule 20 { action permit match { large-community { large-community-list PREPEND-2-AS211615 } } on-match { next } set { as-path { prepend-last-as 2 } large-community { delete PREPEND-2-AS211615 } } } rule 30 { action permit match { large-community { large-community-list PREPEND-3-AS211615 } } on-match { next } set { as-path { prepend-last-as 3 } large-community { delete PREPEND-3-AS211615 } } } rule 40 { action deny match { large-community { large-community-list NO-ANNOUNCE-TO-AS211615 } } set { large-community { delete NO-ANNOUNCE-TO-AS211615 } } } rule 9999 { action permit } } route-map HANDLE-PEER-AS212815-COMMUNITIES { rule 10 { action permit match { large-community { large-community-list PREPEND-1-AS212815 } } on-match { next } set { as-path { prepend-last-as 1 } large-community { delete PREPEND-1-AS212815 } } } rule 20 { action permit match { large-community { large-community-list PREPEND-2-AS212815 } } on-match { next } set { as-path { prepend-last-as 2 } large-community { delete PREPEND-2-AS212815 } } } rule 30 { action permit match { large-community { large-community-list PREPEND-3-AS212815 } } on-match { next } set { as-path { prepend-last-as 3 } large-community { delete PREPEND-3-AS212815 } } } rule 40 { action deny match { large-community { large-community-list NO-ANNOUNCE-TO-AS212815 } } set { large-community { delete NO-ANNOUNCE-TO-AS212815 } } } rule 9999 { action permit } } route-map HANDLE-PRIVATE-COMMUNITIES { rule 20 { action permit match { community { community-list PREPEND-1 } } on-match { next } set { as-path { prepend-last-as 1 } community { delete PREPEND-1 } } } rule 30 { action permit match { community { community-list PREPEND-2 } } on-match { next } set { as-path { prepend-last-as 2 } community { delete PREPEND-2 } } } rule 40 { action permit match { community { community-list PREPEND-3 } } on-match { next } set { as-path { prepend-last-as 3 } community { delete PREPEND-3 } } } rule 9999 { action permit } } route-map HANDLE-PRIVATE-LARGE-COMMUNITIES { rule 20 { action permit match { large-community { large-community-list PREPEND-1 } } on-match { next } set { as-path { prepend-last-as 1 } large-community { delete PREPEND-1 } } } rule 30 { action permit match { large-community { large-community-list PREPEND-2 } } on-match { next } set { as-path { prepend-last-as 2 } large-community { delete PREPEND-2 } } } rule 40 { action permit match { large-community { large-community-list PREPEND-3 } } on-match { next } set { as-path { prepend-last-as 3 } large-community { delete PREPEND-3 } } } rule 50 { action permit } } route-map RPL-ACT-TRANSIT-DELETE_COMMUNITY { rule 10 { action permit match { community { community-list PRIVATE-COMMUNITIES } } set { community { delete PRIVATE-COMMUNITIES } } } rule 20 { action permit match { large-community { large-community-list PRIVATE-LARGE-COMMUNITIES } } set { large-community { delete PRIVATE-LARGE-COMMUNITIES } } } rule 30 { action permit } } route-map RPL-ALLOW-ALL-NETARIS { rule 10 { action permit call RPL-FROM-NETARIS } } route-map RPL-AS211615-IBGP-IN-V4 { rule 10 { action permit call RPL-DROP-BOGONS on-match { next } } rule 20 { action permit call RPL-DROP-DEFAULT-ROUTE on-match { next } } rule 30 { action permit call HANDLE-PRIVATE-COMMUNITIES on-match { next } } rule 200 { action permit on-match { next } } rule 310 { action permit match { ip { address { prefix-len 32 } } large-community { large-community-list BLACKHOLE } } set { community { add 65535:666 } ip-next-hop 192.0.2.1 } } rule 320 { action permit match { community { community-list BLACKHOLE } ip { address { prefix-len 32 } } } set { community { add 65535:666 } ip-next-hop 192.0.2.1 } } rule 9999 { action permit } } route-map RPL-AS211615-IBGP-IN-V6 { rule 10 { action permit call RPL-DROP-BOGONS on-match { next } } rule 20 { action permit call RPL-DROP-DEFAULT-ROUTE on-match { next } } rule 999 { action permit } } route-map RPL-AS211615-IBGP-OUT-V4 { rule 10 { action permit call HANDLE-PEER-AS211615-COMMUNITIES on-match { next } } rule 20 { action permit call HANDLE-PRIVATE-COMMUNITIES on-match { next } } rule 30 { action permit call RPL-ACT-TRANSIT-DELETE_COMMUNITY on-match { next } } rule 40 { action permit call RPL-ALLOW-ALL-NETARIS } rule 50 { action permit call RPL-DEFAULT-ROUTES on-match { next } } rule 200 { action permit on-match { next } } rule 300 { action permit match { ip { address { prefix-list PFX-AS211615-IRR-V4 } } } } rule 9999 { action deny } } route-map RPL-AS211615-IBGP-OUT-V6 { rule 20 { action permit } } route-map RPL-AS211615-TUNNEL-MESH-IN-V4 { rule 10 { action permit call RPL-MESH-PAR1-AMS1-IN-V4 on-match { next } } rule 20 { action permit call HANDLE-PRIVATE-COMMUNITIES on-match { next } } rule 200 { action permit on-match { next } set { local-preference 99 } } rule 310 { action permit match { ip { address { prefix-len 32 } } large-community { large-community-list BLACKHOLE } } set { ip-next-hop 192.0.2.1 } } rule 320 { action permit match { community { community-list BLACKHOLE } ip { address { prefix-len 32 } } } set { ip-next-hop 192.0.2.1 } } rule 9999 { action permit } } route-map RPL-AS211615-TUNNEL-MESH-IN-V6 { rule 10 { action permit call RPL-MESH-PAR1-AMS1-IN-V6 on-match { next } } rule 20 { action permit call HANDLE-PRIVATE-COMMUNITIES on-match { next } } rule 200 { action permit on-match { next } set { local-preference 99 } } rule 310 { action permit match { ipv6 { address { prefix-len 128 } } large-community { large-community-list BLACKHOLE } } set { ipv6-next-hop { global 0100:: } } } rule 320 { action permit match { community { community-list BLACKHOLE } ipv6 { address { prefix-len 128 } } } set { ipv6-next-hop { global 0100:: } } } rule 9999 { action permit } } route-map RPL-AS211615-TUNNEL-MESH-OUT-V4 { rule 10 { action permit call HANDLE-PEER-AS211615-COMMUNITIES on-match { next } } rule 20 { action permit call RPL-ALLOW-ALL-NETARIS } rule 200 { action permit on-match { next } } rule 9999 { action permit } } route-map RPL-AS211615-TUNNEL-MESH-OUT-V6 { rule 10 { action permit call HANDLE-PEER-AS211615-COMMUNITIES on-match { next } } rule 200 { action permit on-match { next } } rule 9999 { action permit } } route-map RPL-AS212815-TRANSIT-IN-V4 { rule 10 { action permit call RPL-DROP-BOGONS on-match { next } } rule 20 { action permit call RPL-DROP-DEFAULT-ROUTE on-match { next } } rule 30 { action permit call RPL-HANDLE-RPKI on-match { next } } rule 200 { action permit on-match { next } set { community { add 64615:110 } large-community { add 211615:101:212815 } local-preference 120 } } rule 310 { action permit match { ip { address { prefix-len 32 } } large-community { large-community-list BLACKHOLE } } set { community { add 65535:666 } ip-next-hop 192.0.2.1 } } rule 320 { action permit match { community { community-list BLACKHOLE } ip { address { prefix-len 32 } } } set { community { add 65535:666 } ip-next-hop 192.0.2.1 } } rule 9999 { action permit } } route-map RPL-AS212815-TRANSIT-IN-V6 { rule 10 { action permit call RPL-DROP-BOGONS on-match { next } } rule 20 { action permit call RPL-DROP-DEFAULT-ROUTE on-match { next } } rule 30 { action permit call RPL-HANDLE-RPKI on-match { next } } rule 200 { action permit on-match { next } set { community { add 64615:110 } large-community { add 211615:101:212815 } local-preference 120 } } rule 310 { action permit match { ipv6 { address { prefix-len 128 } } large-community { large-community-list BLACKHOLE } } set { community { add 65535:666 } ipv6-next-hop { global 0100:: } } } rule 320 { action permit match { community { community-list BLACKHOLE } ipv6 { address { prefix-len 128 } } } set { community { add 65535:666 } ipv6-next-hop { global 0100:: } } } rule 9999 { action permit } } route-map RPL-AS212815-TRANSIT-OUT-V4 { rule 10 { action permit call HANDLE-PEER-AS212815-COMMUNITIES on-match { next } } rule 20 { action permit call HANDLE-PRIVATE-COMMUNITIES on-match { next } } rule 30 { action permit call RPL-ACT-TRANSIT-DELETE_COMMUNITY on-match { next } } rule 200 { action permit on-match { next } } rule 300 { action permit match { ip { address { prefix-list PFX-AS211615-IRR-V4 } } } } rule 9999 { action deny } } route-map RPL-AS212815-TRANSIT-OUT-V6 { rule 10 { action permit call HANDLE-PEER-AS212815-COMMUNITIES on-match { next } } rule 20 { action permit call HANDLE-PRIVATE-COMMUNITIES on-match { next } } rule 30 { action permit call RPL-ACT-TRANSIT-DELETE_COMMUNITY on-match { next } } rule 200 { action permit on-match { next } } rule 300 { action permit match { ipv6 { address { prefix-list PFX-AS211615-IRR-V6 } } } } rule 9999 { action deny } } route-map RPL-DEFAULT-ROUTES { rule 10 { action permit match { ip { address { prefix-list DEFAULT-ROUTES } } } } rule 20 { action permit match { ipv6 { address { prefix-list DEFAULT-ROUTES } } } } rule 100 { action deny } } route-map RPL-DROP-BOGONS { rule 10 { action deny match { ip { address { prefix-list PFX-BOGONS-IRR-V4 } } } } rule 20 { action deny match { ipv6 { address { prefix-list PFX-BOGONS-IRR-V6 } } } } rule 30 { action permit } } route-map RPL-DROP-DEFAULT-ROUTE { rule 10 { action deny match { ip { address { prefix-list DEFAULT-ROUTES } } } } rule 20 { action deny match { ipv6 { address { prefix-list DEFAULT-ROUTES } } } } rule 30 { action permit } } route-map RPL-FROM-NETARIS { rule 10 { action permit match { as-path FROM-NETARIS } set { community { add 64615:500 } large-community { add 211615:501:211615 } local-preference 200 } } } route-map RPL-FROM-185-171-202-73 { rule 1 { action permit set { src 185.171.202.73 } } } route-map RPL-HANDLE-RPKI { rule 10 { action permit match { rpki valid } } rule 20 { action permit match { rpki notfound } } rule 30 { action deny match { rpki invalid } } } route-map RPL-MESH-PAR1-AMS1-IN-V4 { rule 10 { action permit description "locpref = 99 - 12ms" on-match { next } set { local-preference 87 } } rule 50 { action permit match { as-path AVATEL local-preference 666 } set { local-preference 150 } } rule 9999 { action permit } }