Option to not open the server-port (179)

Lars Ekman G lars.g.ekman at est.tech
Sun Dec 1 06:48:10 CET 2019


Hi,

The patch is below.

Q1: huh?
Q2: Yes we "watch" the service
Q3: Yes, goBGP. It is simpler to adapt than BIRD, but lacks functionality. If BGB is all you need it may be a good option.

Regards,
L Ekman

diff --git a/proto/bgp/config.Y b/proto/bgp/config.Y
index 7279560b..fbfade8f 100644
--- a/proto/bgp/config.Y
+++ b/proto/bgp/config.Y
@@ -78,7 +78,7 @@ bgp_proto_start: proto_start BGP {

 bgp_loc_opts:
    /* empty */
- | bgp_loc_opts PORT expr { BGP_CFG->local_port = $3; if (($3<1) || ($3>65535)) cf_error("Invalid port number"); }
+ | bgp_loc_opts PORT expr { BGP_CFG->local_port = $3; if ($3>65535) cf_error("Invalid port number"); }
  | bgp_loc_opts AS expr { BGP_CFG->local_as = $3; }
  ;

________________________________
From: Stefan Jakob <tinysammy at gmail.com>
Sent: Saturday, November 30, 2019 11:39 AM
To: Lars Ekman G <lars.g.ekman at est.tech>
Cc: bird-users at network.cz <bird-users at network.cz>
Subject: Re: Option to not open the server-port (179)

Hi Lars,
Hi Bird-List,

Could you share the patch for this workaround please?

Guess we share the same goals?:

a) I want to announce a /32 (IPv4) or /128 IPv6 of course per service.
b) I want to run multiple services on one single maschine in (Linux)
namespaces, f.e. via Docker
c) I want each service to connect to the network, when it's ready for
service by announcing it's more specific (somehow similar to a))
d) bird/bgp shouldnt't need to run as root (which a T179 socket makes difficult)

Q1: How do you orchestrate you services?
Q2: Do you do any service checking and "announcement decision" based
on the result?

Q3: Did you also check exaBGP or goBGP?

Anyone any good experience with the k8s CNI stuff?

Rgds, SJ

On Fri, Nov 29, 2019 at 7:37 AM Lars Ekman G <lars.g.ekman at est.tech> wrote:
>
> Hi,
>
> We have a use-case where we want to deploy multiple BIRD instances on the same machine. The BIRD instance would be a part of public applications with their own (virtual) addreesses. These BIRD instances shall announce the application addresses (only) but not set any local routes.
>
> The goal is to deploy applications independently of each other.
>
> A problem is that BIRD requires that a server port is opened (default 179). While the port is configurable the port numbers must be different for all applications which is hard to do (to assign each application a port is ... undesirable).
>
> Another alternative is to have a central BIRD instance and invent some way for applications to communicate their addresses. While this is certainly doable it adds an unwanted complexity, especially for testing.
>
> I would like an option to not open the server-port.
>
> As an alternative I disabled the check for setting the server port to 0 (any). It is a tiny code change and removes the coordination problem. BIRD will open an ephemeral server port which is of course useless, but we can take the waste of ports.
>
> Best Regards,
> Lars Ekman
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20191201/83a1abf9/attachment.htm>


More information about the Bird-users mailing list