Not able to configure bgp with BIRD
Hi all, I was trying to configure bgp using BIRD on a server running rhel 7.6. The issue I am facing is that the neighbor AS seems to be rejecting the routes sent by my local AS. However, my server seems to be learning routes sent by the neighbor AS router. Have provided some details from the logs below. I wanted to ask what could be the probable reason that the remote is rejecting the packets? 2021-04-22 17:48:56 <TRACE> bgp1 > added [best] 172.19.1.192/28 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 < rejected by protocol 172.19.1.192/28 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 > added [best] 172.19.1.200/30 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 < rejected by protocol 172.19.1.200/30 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 > added [best] 172.19.1.200/29 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 < rejected by protocol 172.19.1.200/29 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 > added [best] 172.19.1.201/32 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 < rejected by protocol 172.19.1.201/32 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 > added [best] 172.19.42.0/24 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 < rejected by protocol 172.19.42.0/24 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 > added [best] 172.19.43.0/24 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 < rejected by protocol 172.19.43.0/24 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 > added [best] 172.19.44.0/24 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 < rejected by protocol 172.19.44.0/24 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 > added [best] 172.19.48.0/24 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 < rejected by protocol 172.19.48.0/24 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 > added [best] 172.19.42.101/32 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 < rejected by protocol 172.19.42.101/32 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 > added [best] 172.19.42.102/32 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 < rejected by protocol 172.19.42.102/32 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 > added [best] 172.19.42.103/32 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 < rejected by protocol 172.19.42.103/32 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 > added [best] 172.19.42.104/32 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 < rejected by protocol 172.19.42.104/32 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 > added [best] 172.19.42.105/32 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 < rejected by protocol 172.19.42.105/32 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 > added [best] 172.19.43.101/32 via 10.33.5.33 on enp26s0d1 In consequence to this, BIRD throws an error after sometime saying `*bgp1: Error: Hold timer expired *` and `bgp1: Received: Hold timer expired` However from the logs I figured out that the difference between most latest KEEPALIVE message and the error being thrown is 2 secs. Since I have set HOLD time to 180 sec in config shouldn't this error be never thrown since the KEEPALIVE message will reset it? Sharing that logs too below 2021-04-22 20:12:44 <TRACE> bgp1: Got KEEPALIVE 2021-04-22 20:12:45 <TRACE> bgp1: Got KEEPALIVE 2021-04-22 20:12:46 <TRACE> bgp1: Got KEEPALIVE 2021-04-22 20:12:47 <TRACE> bgp1: Got KEEPALIVE 2021-04-22 20:12:48 <TRACE> bgp1: Got KEEPALIVE 2021-04-22 20:12:49 <TRACE> bgp1: Got KEEPALIVE 2021-04-22 20:12:50 <TRACE> bgp1: Got KEEPALIVE 2021-04-22 20:12:51 <TRACE> bgp1: Got KEEPALIVE 2021-04-22 20:12:53 <TRACE> bgp1: Got KEEPALIVE 2021-04-22 20:12:53 <TRACE> bgp1: Got KEEPALIVE 2021-04-22 20:12:55 <TRACE> bgp1: Got KEEPALIVE 2021-04-22 20:12:56 <TRACE> bgp1: Got KEEPALIVE 2021-04-22 20:12:57 <TRACE> bgp1: Got KEEPALIVE 2021-04-22 20:12:59 <RMT> bgp1: Error: Hold timer expired I am new to configuring routing and hence my understanding can be wrong somewhere. Please feel free to correct me and ask for more details if required. Thanks in advance. Thanking you, Dhruv Bhagadia.
On Fri, Apr 23, 2021 at 09:52:15AM +0530, Dhruv Bhagadia wrote:
Hi all,
I was trying to configure bgp using BIRD on a server running rhel 7.6. The issue I am facing is that the neighbor AS seems to be rejecting the routes sent by my local AS. However, my server seems to be learning routes sent by the neighbor AS router. Have provided some details from the logs below. I wanted to ask what could be the probable reason that the remote is rejecting the packets?
2021-04-22 17:48:56 <TRACE> bgp1 > added [best] 172.19.1.192/28 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 < rejected by protocol 172.19.1.192/28 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 > added [best] 172.19.1.200/30 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 < rejected by protocol
Hi This is just a confusing log that say a route received from the peer (e.g. 172.19.1.192/28) is not sent back to the peer.
In consequence to this, BIRD throws an error after sometime saying `*bgp1: Error: Hold timer expired *` and `bgp1: Received: Hold timer expired`
That is probably unrelated.
However from the logs I figured out that the difference between most latest KEEPALIVE message and the error being thrown is 2 secs. Since I have set HOLD time to 180 sec in config shouldn't this error be never thrown since the KEEPALIVE message will reset it? Sharing that logs too below
Hold time is negotiated as min of local and remote hold time. So perhaps remote side has too short hold time (that would make why it sends keepalives so often)? You can see real hold time in 'show protocols all'. -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
Hi Ondrej, Thanks for reverting
This is just a confusing log that say a route received from the peer (e.g. 172.19.1.192/28) is not sent back to the peer.
Is this the expected behavior or is there something suspicious here w.r.t bgp?
Hold time is negotiated as min of local and remote hold time. So perhaps remote side has too short hold time (that would make why it sends keepalives so often)? You can see real hold time in 'show protocols all'.
Here's the output of bgp specific `show protocols all` bgp1 BGP master up 21:46:26 Established Description: My BGP uplink Preference: 100 Input filter: ACCEPT Output filter: (unnamed) Routes: 57 imported, 1 exported, 57 preferred Route change stats: received rejected filtered ignored accepted Import updates: 57 0 0 0 57 Import withdraws: 0 0 --- 0 0 Export updates: 58 57 0 --- 1 Export withdraws: 0 --- --- --- 0 BGP state: Established Neighbor address: <ip> Neighbor AS: <AS> Neighbor ID: <id> Neighbor caps: refresh restart-able AS4 Session: external AS4 Source address: <ip> Hold timer: 3/4 Keepalive timer: 55/60 Is there some wiki/resource pointing out to the details of what above params and their values mean? Like what does Hold timer `3/4`, Keepalive timer `55/60`, export updates, withdrawn, etc Thanking you, Dhruv Bhagadia On Fri, Apr 23, 2021 at 7:37 PM Ondrej Zajicek <santiago@crfreenet.org> wrote:
On Fri, Apr 23, 2021 at 09:52:15AM +0530, Dhruv Bhagadia wrote:
Hi all,
I was trying to configure bgp using BIRD on a server running rhel 7.6. The issue I am facing is that the neighbor AS seems to be rejecting the routes sent by my local AS. However, my server seems to be learning routes sent by the neighbor AS router. Have provided some details from the logs below. I wanted to ask what could be the probable reason that the remote is rejecting the packets?
2021-04-22 17:48:56 <TRACE> bgp1 > added [best] 172.19.1.192/28 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 < rejected by protocol 172.19.1.192/28 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 > added [best] 172.19.1.200/30 via 10.33.5.33 on enp26s0d1 2021-04-22 17:48:56 <TRACE> bgp1 < rejected by protocol
Hi
This is just a confusing log that say a route received from the peer (e.g. 172.19.1.192/28) is not sent back to the peer.
In consequence to this, BIRD throws an error after sometime saying `*bgp1: Error: Hold timer expired *` and `bgp1: Received: Hold timer expired`
That is probably unrelated.
However from the logs I figured out that the difference between most latest KEEPALIVE message and the error being thrown is 2 secs. Since I have set HOLD time to 180 sec in config shouldn't this error be never thrown since the KEEPALIVE message will reset it? Sharing that logs too below
Hold time is negotiated as min of local and remote hold time. So perhaps remote side has too short hold time (that would make why it sends keepalives so often)? You can see real hold time in 'show protocols all'.
-- Elen sila lumenn' omentielvo
Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
participants (2)
-
Dhruv Bhagadia -
Ondrej Zajicek