Skip to content
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion bird/ibgp.conf
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ template bgp ibgp_peers {
graceful restart on;
# bfd on;
ipv4 {
next hop self;
next hop self ebgp;
igp table OSPF_table;
table BGP_table;
import filter {
Expand Down
78 changes: 78 additions & 0 deletions bird/ibgp_rr.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
template bgp ibgp_peers {
local as LOCAL_ASN;
source address SERVE_IP;
graceful restart on;
# bfd on;
ipv4 {
add paths on;
next hop self ebgp;
igp table OSPF_table;
table BGP_table;
import all;
export filter {
if source != RTS_BGP then reject;
accept;
};
};
}

template bgp ibgp_rr {
local as LOCAL_ASN;
source address SERVE_IP;
rr client;
rr cluster id <cluster_id, an ip>;
graceful restart on;
# bfd on;
ipv4 {
add paths tx;
next hop self ebgp;
igp table OSPF_table;
table BGP_table;
import all;
export filter {
if source != RTS_BGP then reject;
accept;
};
};
}

template bgp ibgp_rr_client {
local as LOCAL_ASN;
source address SERVE_IP;
graceful restart on;
# bfd on;
ipv4 {
add paths rx;
next hop self ebgp;
igp table OSPF_table;
table BGP_table;
import all;
export filter {
if source != RTS_BGP then reject;
accept;
};
};
}

# plain ibgp between RRs
protocol bgp IBGP_<name> from ibgp_peers {
neighbor <peer_serve_ip> internal;
}

# ibgp from RR Server to RR Client
protocol bgp IBGP_<name> from ibgp_rr {
neighbor <peer_serve_ip> internal;
}

# or a dynamic protocol
protocol bgp IBGP_RRClient from ibgp_rr {
neighbor range <your_cidr> internal;
dynamic name "RRClient";
# password "string" # when needed
}

# ibgp from RR Client to RR Server
protocol bgp IBGP_<name> from ibgp_rr_client {
neighbor <peer_serve_ip> internal;
}