Re: Bird 1.5 and 1.6 memory leak

2018-04-13 Thread Jan Maria Matějka
Hello,
if it occurs also on 1.6.4, could you please add also "birdcl show route count" 
output and some logs with debug all switched on?

How does it get leaked, do you reconfigure many times? Does the memory 
consumption increase gradually or by larger amounts?

Thanks
Maria

Quidquid latine dictum sit, altum videtur. 

-Original Message-
From: Willy Goiffon 
To: bird-users@network.cz
Sent: Fri, 13 Apr 2018 6:21 PM
Subject: Bird 1.5 and 1.6 memory leak

Hello,

I installed different version of bird on Ubuntu 16.04 (namely, 1.5.0, 
1.6.3, 1.6.4).
After leaving the daemon running for ~1 hour, the memory used by the
host is over 8Gib. However, when running `birdc show memory`, I get
the following:

 BIRD memory usage
 Routing tables: 21 kB
 Route attributes:   11 kB
 ROA tables:192  B
 Protocols:  22 kB
 Total: 102 kB

My config is pretty basic (edited, see attached) as we have 2 BGP
protocols using 2 ASN (one public, one private), each exporting the
routes learnt from the other.

The leak seems to be related to the traffic going through the server,
as the memory of the host remains still when there is no traffic
going on. It is triggered by bird though, because I don't have the
leak when the routes are configured statically and bird is shut down.

The weird thing about this is that the memory is not used by the bird
process itself. It's shown as used memory by the host, but no process
is actually using this memory.
I know that it's leaking because of bird though because it's the only
process installed and running on this host.

Has anyone ever encountered such a behavior, or can see an issue in
my configuration?

Thanks in advance for your help
-- 
Willy


Re: Unix virtual interfaces

2018-04-12 Thread Jan Maria Matějka
Try
# ip link add lo1 type dummy
# ip a add 10.10.10.10/24 dev lo1

The ifconfig tool is deprecated.

M. 

Quidquid latine dictum sit, altum videtur. 

-Original Message-
From: RICCARDO RUSSO 
To: bird-users@network.cz
Sent: Thu, 12 Apr 2018 4:41 PM
Subject: Unix virtual interfaces

Hello,
I'm running bird 2.0.2 on centOS

I've configured 2 virtual interfaces (eth1:1 and lo:1)

When I run show protocol I don't see them. Are virtual interfaces supported
by bird?
I need it in order to advertise by BGP lo:1

R

---
# ifconfig
eth0: flags=4163  mtu 1500
inet 163.162.230.198  netmask 255.255.255.240  broadcast
163.162.230.207
inet6 fe80::2e:a6ff:fe66:5a27  prefixlen 64  scopeid 0x20
ether 02:2e:a6:66:5a:27  txqueuelen 1000  (Ethernet)
RX packets 14271  bytes 996507 (973.1 KiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 2746  bytes 314846 (307.4 KiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163  mtu 1500
inet 192.168.200.8  netmask 255.255.255.0  broadcast 192.168.200.255
inet6 fe80::9034:56ff:feee:  prefixlen 64  scopeid 0x20
ether 92:34:56:ee:ee:ee  txqueuelen 1000  (Ethernet)
RX packets 16109  bytes 1066648 (1.0 MiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 7805  bytes 514801 (502.7 KiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1:1: flags=4163  mtu 1500
inet 10.10.10.10  netmask 255.255.255.255  broadcast 10.255.255.255
ether 92:34:56:ee:ee:ee  txqueuelen 1000  (Ethernet)

lo: flags=73  mtu 65536
inet 127.0.0.1  netmask 255.0.0.0
inet6 ::1  prefixlen 128  scopeid 0x10
loop  txqueuelen 1  (Local Loopback)
RX packets 6  bytes 416 (416.0 B)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 6  bytes 416 (416.0 B)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo:1: flags=73  mtu 65536
inet 163.162.35.89  netmask 255.255.255.255
loop  txqueuelen 1  (Local Loopback)

---
# birdc show interfaces
BIRD 2.0.2 ready.
lo up (index=1)
MultiAccess AdminUp LinkUp Loopback Ignored MTU=65536
127.0.0.1/8 (Preferred, scope host)
163.162.35.89/32 (scope univ)
::1/128 (Preferred, scope host)
eth0 up (index=2)
MultiAccess Broadcast Multicast AdminUp LinkUp MTU=1500
163.162.230.198/28 (Preferred, scope univ)
fe80::2e:a6ff:fe66:5a27/64 (Preferred, scope link)
eth1 up (index=3)
MultiAccess Broadcast Multicast AdminUp LinkUp MTU=1500
192.168.200.8/24 (Preferred, scope site)
10.10.10.10/32 (scope site)
fe80::9034:56ff:feee:/64 (Preferred, scope link)

Rr


Re: BGP import route

2018-04-11 Thread Jan Maria Matějka
Hello! 

First of all, we don't support this old version. Please upgrade, either to 
1.6.4 or to 2.0.2.

Second, the other side seems to send multiprotocol NLRI to you. BIRD in 1.x 
versions AFAIK does not support this extension and should not announce it. What 
is the remote software?

Writing from my phone with no access to source code, trying to recall it from 
my memory. I might be wrong. 

Maria 

Quidquid latine dictum sit, altum videtur. 

-Original Message-
From: RICCARDO RUSSO 
To: bird-users@network.cz
Sent: Wed, 11 Apr 2018 6:10 PM
Subject: BGP import route

Hello,
I'm not able to import route from BGP (CentOS 7). In log file I read "Got
UPDATE" but  "import updates" is always 0. With TCPDUMP I see that BGP
receive the routes

Rr


# more bird.conf
log syslog all;
log stderr all;
log "/var/log/bird.logg" all;
debug protocols all;

protocol kernel {
persist;# Don't remove routes on bird shutdown
scan time 20;   # Scan kernel routing table every 20 seconds
}

protocol device {
scan time 10;   # Scan interfaces every 10 seconds
}

router id 192.168.200.6;

protocol bgp bgp1 {
   local as 64521;
   neighbor 192.168.200.1 as 64520;
   import filter all;
}





# tail -f /var/log/bird.logg
2018-04-11 17:46:53  kernel1 < interface lo goes up
2018-04-11 17:46:53  kernel1 < interface eth0 goes up
2018-04-11 17:46:53  kernel1 < interface eth1 goes up
2018-04-11 17:46:53  kernel1: State changed to up
2018-04-11 17:46:53  bgp1: Started
2018-04-11 17:46:53  bgp1: Connect delayed by 5 seconds
2018-04-11 17:46:53  kernel1: Scanning routing table
2018-04-11 17:46:53  kernel1: 0.0.0.0/0: [alien] ignored
2018-04-11 17:46:53  kernel1: 192.168.44.0/24: [alien] ignored
2018-04-11 17:46:53  kernel1: Pruning table master
2018-04-11 17:46:57  bgp1: Connecting to 192.168.200.1 from local
address 192.168.200.6
2018-04-11 17:46:57  bgp1: Connected
2018-04-11 17:46:57  bgp1: Sending
OPEN(ver=4,as=64521,hold=240,id=c0a8c806)
2018-04-11 17:46:57  bgp1: Connection closed
2018-04-11 17:46:57  bgp1: Connect delayed by 5 seconds
2018-04-11 17:47:03  device1: Scanning interfaces
2018-04-11 17:47:03  bgp1: Connecting to 192.168.200.1 from local
address 192.168.200.6
2018-04-11 17:47:03  bgp1: Connected
2018-04-11 17:47:03  bgp1: Sending
OPEN(ver=4,as=64521,hold=240,id=c0a8c806)
2018-04-11 17:47:03  bgp1: Got OPEN(as=64520,hold=90,id=a3a2e686)
2018-04-11 17:47:03  bgp1: Sending KEEPALIVE
2018-04-11 17:47:03  bgp1: Got KEEPALIVE
2018-04-11 17:47:03  bgp1: BGP session established
2018-04-11 17:47:03  bgp1: Connected to table master
2018-04-11 17:47:03  bgp1: State changed to feed
2018-04-11 17:47:03  bgp1: State changed to up
2018-04-11 17:47:03  bgp1: Sending End-of-RIB
2018-04-11 17:47:03  bgp1: Got UPDATE
2018-04-11 17:47:03  bgp1: Got UPDATE
2018-04-11 17:47:03  bgp1: Got UPDATE
2018-04-11 17:47:03  bgp1: Got UPDATE
2018-04-11 17:47:03  bgp1: Got UPDATE
2018-04-11 17:47:03  ...





# birdc show protocols all bgp1
BIRD 1.4.5 ready.
name prototablestate  since   info
bgp1 BGP  master   up 17:47:03Established
  Preference: 100
  Input filter:   ACCEPT
  Output filter:  REJECT
  Routes: 0 imported, 0 exported, 0 preferred
  Route change stats: received   rejected   filteredignored
 accepted
Import updates:  0  0  0  0
  0
Import withdraws:0  0---  0
  0
Export updates:  0  0  0---
  0
Export withdraws:0---------
  0
  BGP state:  Established
Neighbor address: 192.168.200.1
Neighbor AS:  64520
Neighbor ID:  163.162.230.134
Neighbor caps:restart-aware
Session:  external
Source address:   192.168.200.6
Hold timer:   62/90
Keepalive timer:  22/30




# tcpdump -i eth1 tcp port 179 -vvv -XX
17:37:51.260061 IP (tos 0x0, ttl 1, id 49246, offset 0, flags [DF], proto
TCP (6), length 1353)
192.168.200.1.bgp > vm-1.59873: Flags [P.], cksum 0xad25 (correct), seq
61:1362, ack 69, win 210, options [nop,nop,TS val 1643220008 ecr 25496328],
length 1301: BGP
Update Message (2), length: 66
  Origin (1), length: 1, Flags [T]: Incomplete
0x:  02
  Next Hop (3), length: 4, Flags [T]: 192.168.200.1
0x:  c0a8 c801
  Multi Exit Discriminator (4), length: 4, Flags [O]: 100
0x:   0064
  

Re: RPKI / roa_check() question - BIRD 2.0.2

2018-04-11 Thread Jan Maria Matějka
The bgp_path.last_nonaggregated attribute should help you. Don't have user 
manual right now here, writing from my phone, just trying to recall it from my 
memory. 

Maria 

Quidquid latine dictum sit, altum videtur. 

-Original Message-
From: Radu Anghel 
To: bird-users@network.cz
Sent: Wed, 11 Apr 2018 6:34 PM
Subject: RPKI / roa_check() question - BIRD 2.0.2

Hello,

I have found this while doing RPKI validation:

net = 94.127.104.0/21
bgp_path = 48112 6830 174 13110 {30884 65004 65005}
BGP.aggregator: 10.253.27.1 AS13110 (don't know how to read this from a var)

roa_check(rpki4, net, bgp_path.last) returns ROA_INVALID because BIRD
thinks bgp_path.last = 0

There is a valid ROA for 94.127.104.0/21 and AS13110, so I guess the
validation should be done on the aggregator AS.

Could you tell me what is the corect way to handle this?

TIA,
Radu


Re: Can't Log information about a double

2018-04-02 Thread Jan Maria Matějka
Bird's internal sprintf doesn't support floats, at least for now, in 1.6.x 
probably forever. There may be some patch that adds it. Look for some branch 
with "flowspec", I think I was implementing something like this for printing 
BGP flowspec and it is probably not merged. I don't have the git here now, 
maybe I can find it tomorrow. 

Maria

Quidquid latine dictum sit, altum videtur. 

-Original Message-
From: Mattia Milani 
To: BIRD Users 
Sent: Fri, 30 Mar 2018 6:32 PM
Subject: Can't Log information about a double

Hello all,

I'm trying to log some information during the bird process execution.
I'm doing it in the bgp section.

I used the command:

log(L_INFO "** some text **");

with success, i added to the log some information about an integer variable
with success, here it is the code:

int a = 5;
log(L_INFO "** some text ** %d", a);

Now i'm trying to make the same with a double variable but without success

double a = 5.5;
log(L_INFO "** some text ** %lf", a);

the output was:

2018-03-30 18:09:12.270  ** some text ** %f

I had already tried with %f instead of %lf but nothing changed in the output

How can i log some double value? i need to use another function instead of
log()?

Thanks,
Mattia


Re: static routes and 'src' parameter

2018-03-20 Thread Jan Maria Matějka
We may also add iface address access in future but it isn't as easy as it 
seems. The iface may have more than one address and we still don't have a 
method to iterate over a list in filters. Anyway, the "foreach" construction is 
on our todo list... Stay tuned! 
M.

Quidquid latine dictum sit, altum videtur. 

-Original Message-
From: Saku Ytti 
To: bird-users@network.cz
Sent: Tue, 20 Mar 2018 7:58 PM
Subject: Re: static routes and 'src' parameter

Pilot error, this works:

filter kernel_out {
  if net = 0.0.0.0/0 then {
#krt_prefsrc from lo;
krt_prefsrc = 129.250.15.29;
accept;
  }
  reject;
}

I wish 'krt_prefsrc from lo' would work, as it would require less
tooling to generate config :>. But no biggy. Thanks people!


On 20 March 2018 at 20:22, Saku Ytti  wrote:
> I want default address to use lo as source for locally originated
> connections. Is this possible?
>
> bird> show route
> 0.0.0.0/0  via 204.141.224.2 on ens224 [static1 18:11:50] * (200)
> 129.250.15.29/32   dev lo [direct1 18:11:50] * (240)
> 129.250.0.0/16 via 204.141.224.2 on ens224 [red 18:17:38] * (100) 
> [AS2914i]
>via 204.141.224.0 on ens192 [blue 18:11:56] (100) [AS2914i]
> bird>
>
> protocol static {
>   route 0.0.0.0/0 recursive 129.250.0.0;
> }
>
> terraform00:~# ip route
> default via 204.141.224.2 dev ens224 proto bird metric 64
> default via 204.141.224.0 dev ens192 src 129.250.15.29 metric 200
> default via 204.141.224.2 dev ens224 src 129.250.15.29 metric 205
> 10.20.40.0/24 dev ens256 proto kernel scope link src 10.20.40.1
> 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
> 204.141.224.0/31 dev ens192 proto kernel scope link src 204.141.224.1
> 204.141.224.2/31 dev ens224 proto kernel scope link src 204.141.224.3
> terraform00:~#
>
>
> --
>   ++ytti



-- 
  ++ytti


Re: Version 2.0.1

2018-01-18 Thread Jan Maria Matějka
Hi,

there definitely is some segfault fix but there may be more bugs. If you could 
send at least your config file, it would be helpful. Anyway, the crash file 
(corefile) will help much more.

Thanks
Maria

Quidquid latine dictum sit, altum videtur. 

-Original Message-
From: "David S." 
To: Ondrej Filip 
Cc: bird 
Sent: Thu, 18 Jan 2018 8:03 PM
Subject: Re: Version 2.0.1

Hi Ondrej,

Does this version include segment fault bug fix? I already update version
2.0 to 2.0.1 but I still have problem on FreeBSD 11.1
Here is the crash message when I run configure on birdc:

pid 94118 (bird), uid 0: exited on signal 6 (core dumped)

I can't provide the crash's file at this time, I'll try later on another
machine.

Thank you



Best regards,
David S.

e. da...@zeromail.us
w. pnyet.web.id
p. 087881216110

On Tue, Jan 16, 2018 at 6:32 PM, Ondrej Filip  wrote:

> Dear BIRD users,
> Thank you very much for your intensive testing of 2.0.0. We prepared a
> new version based on this feedback. Please note, explicit import and
> export policies are required for EBGP channels.
>
> Version 2.0.1 (2018-01-16)
>   o Linux MPLS kernel support
>   o Better handling of channels inherited from templates
>   o Default EBGP Route Propagation Behavior without Policies (RFC8212)
>   o Many bugfixes
>
> Ondrej
>
>