Date created: Friday, December 13, 2013 2:04:18 PM. Last modified: Friday, June 3, 2016 4:18:31 PM
Bi/Multi-Lateral Peering Example
Example peering LAN config for private peerings and router sourced multi-lateral peerings;
/* Place local supernets into FIB */
routing-options {
static {
route 1.2.3.0/8 {
discard;
tag 66666;
}
route 4.5.6.0/8 {
discard;
tag 66666;
}
}
martians {
0.0.0.0/8 orlonger;
100.64.0.0/10 orlonger;
127.0.0.0/8 orlonger;
169.254.0.0/16 orlonger;
192.0.0.0/24 orlonger;
192.0.2.0/24 orlonger;
192.168.0.0/16 orlonger;
198.18.0.0/15 orlonger;
198.51.100.0/24 orlonger;
203.0.113.0/24 orlonger;
224.0.0.0/4 orlonger;
240.0.0.0/4 orlonger;
}
autonomous-system 66666;
}
protocols {
bgp {
traceoptions {
file log-bgp size 1m files 5;
flag state;
flag normal;
flag open detail;
}
log-updown;
remove-private;
group peering-route-servers {
type external;
/* Policy statements and can strung together like the import filter, or a large statement created with multiple terms like the export filter */
export PS-Peering;
import [ PS-Deny-IXP-Prefixes PS-Deny-Own-Prefixes PS-Filter-Prefix-Size PS-No-Private-ASN PS-AS-Expand-x2 ];
peer-as 65655;
neighbor 10.0.58.1;
}
group peering-private-peers {
type external;
export PS-Peering;
import [ PS-Deny-IXP-Prefixes PS-Deny-Own-Prefixes PS-Filter-Prefix-Size PS-No-Private-ASN PS-AS-Expand-x2 ];
neighbor 10.0.0.5 {
description AS12345;
peer-as 12345;
}
neighbor 10.0.0.6 {
description AS78910;
peer-as 78910;
}
family inet {
any {
prefix-limit {
/* Try to detect full table leaks */
maximum 10000;
teardown 80 idle-timeout 60;
}
}
}
}
}
}
policy-options {
policy-statement PS-Peering {
term 1 {
from {
protocol static;
tag 66666;
}
then {
as-path-prepend "66666 66666";
next-hop self;
accept;
}
}
term 2 {
from {
protocol bgp;
community MATCH-66666-66666;
}
then {
community delete MATCH-66666;
accept;
}
}
term 10 {
then {
trace;
reject;
}
}
}
policy-statement PS-AS-Expand-x2 {
then {
as-path-expand last-as count 2;
accept;
}
}
policy-statement PS-Deny-IXP-Prefixes {
term 1 {
from {
route-filter 1.0.0.0/22 orlonger;
route-filter 2.0.0.0/22 orlonger;
}
then {
trace;
reject;
}
}
}
policy-statement PS-Deny-Own-Prefixes {
term 1 {
from {
route-filter 1.2.3.0/8 orlonger;
route-filter 4.5.6.0/8 orlonger;
}
then {
trace;
reject;
}
}
}
policy-statement PS-Filter-Prefix-Size {
from {
route-filter 0.0.0.0/0 prefix-length-range /27-/32;
route-filter 0.0.0.0/0 prefix-length-range /0-/5;
}
then {
trace;
reject;
}
}
policy-statement PS-No-Private-ASN {
from as-path private-asn;
then {
trace;
reject;
}
}
community MATCH-66666 members 66666:*;
community MATCH-66666-66666 members 66666:66666;
as-path private-asn 64512-65535;
}
Previous page: ASN Filtering
Next page: Inter-AS MPLT Option B - AS Loops