Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
4 changes: 2 additions & 2 deletions bird/ibgp.conf
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@ 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 {
dn11_update_cross_ibgp();
dn11_update_server_location();
accept;
};
export filter {
if source != RTS_BGP then reject;
dn11_update_server_location();
unset(bgp_med);
accept;
};
Expand Down
80 changes: 80 additions & 0 deletions bird/ibgp_rr.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
template bgp ibgp_base {
local as LOCAL_ASN;
source address SERVE_IP;
graceful restart on;
# bfd on;
ipv4 {
next hop self ebgp;
igp table OSPF_table;
table BGP_table;
import filter {
dn11_update_cross_ibgp();
dn11_update_server_location();
accept;
};
}
}

template bgp ibgp_peers from ibgp_base {
ipv4 {
next hop self ebgp;
export filter {
if source != RTS_BGP then reject;
accept;
};
};
}

# for ibgp between rr
template bgp ibgp_rrs from ibgp_peers {
ipv4 {
add paths tx;
add paths rx;
}
}

template bgp ibgp_rr from ibgp_base {
rr client;
rr cluster id <cluster_id, an ip>;
ipv4 {
add paths tx;
export filter {
if source != RTS_BGP then reject;
accept;
};
};
}

template bgp ibgp_rr_client from ibgp_base {
ipv4 {
add paths rx;
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;
}