Bird Starts but Does Not Listen

Bird starts, and claims that it is waiting for the upstream routers to become neighbors…

2024-07-31 06:25:25.774 isp1: Initializing
2024-07-31 06:25:25.774 isp2: Initializing
2024-07-31 06:25:25.774 isp1: Starting
2024-07-31 06:25:25.774 isp1: State changed to start
2024-07-31 06:25:25.774 isp2: Starting
2024-07-31 06:25:25.774 isp2: State changed to start
2024-07-31 06:25:25.774 Started
2024-07-31 06:25:25.775 isp2: Waiting for 4.4.92.131 to become my neighbor
2024-07-31 06:25:25.775 isp1: Waiting for 4.4.92.130 to become my neighbor

…however, I can see in tcpdump that bird is refusing BGP connections…

08:50:31.055601 IP 4.4.92.130.34302 > 4.4.92.140.179: Flags [S], seq 733565924, win 16384, options [mss 1424,wscale 0,nop,sackOK,eol], length 0
08:50:31.056685 IP 4.4.92.140.179 > 4.4.92.130.34302: Flags [R.], seq 0, ack 733565925, win 0, length 0

…and that’s because bird is not listening…

[root@fw9b log]# netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:8953 0.0.0.0:* LISTEN
tcp6 0 0 :::1013 :::* LISTEN
tcp6 0 0 :::444 :::* LISTEN
tcp6 0 0 :::81 :::* LISTEN

Bird is running.

[root@fw9b log]# ps ax|grep bird
20738 pts/0 S+ 0:00 grep bird
29732 ? Ss 0:00 /usr/sbin/bird

Why isn’t it listening?

google says: Linux uses by default range 32768–61000

so open this Port Range to your FW

Lol. Okay, they’re open now. I also opened port 22 and changed the root password to ‘1234.’ And the IP addresses shown in my previous comments are totally real. :slight_smile:

no need for sarcasm - that the way to go

without open Ports there are no connections

Sorry, I was sure you must be a hacker who thinks I’m clueless. :slight_smile:

Having open ports on the firewall has nothing to do with why a process is not listening.

1 Like

i don’t know what you are trying to archieve with BIRD addon

a small google search says: there is need for opening Ports ^^

and btw. if there are no services waiting on the opend Ports - you can open thousands of Ports - then nothing happens at all

Bird is a lightweight routing daemon, which we are using for BGP. BGP listens on TCP port 179. Port 179 is already open on the firewall, but bird is not listening on that port.

Also, the port range you mentioned is what Linux uses for the source (client) port on connections, not the server ports it listens on.

and btw. if there are no services waiting on the opend Ports - you can open thousands of Ports - then nothing happens at all

Yes, that’s my point. The service is not listening.

1 Like

a first step were to show a Screenshot form your “opend Port”

“Firewall > Firewall Rules”

How will a screen shot of firewall rules help? The problem is that the bird daemon is not listening.

1 Like

okay… good luck then

Here’s hoping!

You might try adding ‘listen bgp’ to your configuration. In the excerpt from the bird documentation below, it looks like ‘address’, ‘port’ and ‘dual’ are all optional parameters so maybe when they say the defaults are ‘0.0.0.0’ and ‘179’ they mean when ‘listen bgp’ is specified without additional parameters as opposed to it being a more global set of defaults for bird. Just a thought.

listen bgp [address address] [port port] [dual]

This option allows to specify address and port where BGP protocol should listen. It is global option as listening socket is common to all BGP instances. Default is to listen on all addresses (0.0.0.0) and port 179. In IPv6 mode, option dual can be used to specify that BGP socket should accept both IPv4 and IPv6 connections (but even in that case, BIRD would accept IPv6 routes only). Such behavior was default in older versions of BIRD.

1 Like

Thanks much for the suggestion, but I got an answer from the bird mailing list. The config needed the following section…

protocol device {
scan time 60;
}

I added that and restarted bird, and now it listens and is participating in BGP.

3 Likes