Re: Kernel protocol and IPv6 route issue with Bird 2.0

2019-09-11 Thread Nigel Kukard


On 9/11/19 2:23 PM, Ondrej Zajicek wrote:
> On Wed, Sep 11, 2019 at 12:31:16PM +, Nigel Kukard wrote:
>> Hi guys,
>>
>> I'm having an issue where IPv6 routes from the kernel routing table
>> don't appear to end up in my t_kernel6 table. Despite the next-hop being
>> link-local and the interface being UP.
>> ...
>> Here is the error I'm getting in my logs and fc11::/64 is not being
>> shown in my t _kernel6 table...
>>
>> 2019-09-11 11:40:36.653  KRT: Received route fc11::/64 with strange
>> next-hop fc10::2
>> ...
>> Here is the kernel routing table 'ip -6 route'...
>>
>>  fc00::/64 dev eth0 proto kernel metric 256 pref medium
>>   fc10::/64 dev eth1 proto kernel metric 256 pref medium
>>   *fc11::/64 via fc10::2 dev eth1 metric 1024 pref medium*
>>   fe80::/64 dev eth0 proto kernel metric 256 pref medium
>>   fe80::/64 dev eth1 proto kernel metric 256 pref medium
> Hi
>
> Works for me:
>
> bird> show route  table t_kernel6
> Table t_kernel6:
> fc11::/64unicast [kernel2 16:20:13.398] (10)
> via fc10::2 on eth0
>
> What is your 'show interfaces' status?
>
I believe I just found the issue. On the first kernel table scan, I get
the "strange next-hop" for the IPv6 route. This is perhaps a second or
so after the environment is created.

On the second kernel table scan the route is correctly added.

In normal circumstances it shouldn't be a problem. I triggered it by
running tests a few seconds after bird started.

Either adding a sleep after starting bird exceeding the scan time or
reducing the scan time worked for me.

My first guess would be IPv6 DAD causing it, however I've not looked
further into it or tested disabling IPv6 DAD.

Sorry for the noise.

-N



Re: Kernel protocol and IPv6 route issue with Bird 2.0

2019-09-11 Thread Ondrej Zajicek
On Wed, Sep 11, 2019 at 12:31:16PM +, Nigel Kukard wrote:
> Hi guys,
> 
> I'm having an issue where IPv6 routes from the kernel routing table
> don't appear to end up in my t_kernel6 table. Despite the next-hop being
> link-local and the interface being UP.
> ...
> Here is the error I'm getting in my logs and fc11::/64 is not being
> shown in my t _kernel6 table...
> 
> 2019-09-11 11:40:36.653  KRT: Received route fc11::/64 with strange
> next-hop fc10::2
> ...
> Here is the kernel routing table 'ip -6 route'...
> 
>  fc00::/64 dev eth0 proto kernel metric 256 pref medium
>   fc10::/64 dev eth1 proto kernel metric 256 pref medium
>   *fc11::/64 via fc10::2 dev eth1 metric 1024 pref medium*
>   fe80::/64 dev eth0 proto kernel metric 256 pref medium
>   fe80::/64 dev eth1 proto kernel metric 256 pref medium

Hi

Works for me:

bird> show route  table t_kernel6
Table t_kernel6:
fc11::/64unicast [kernel2 16:20:13.398] (10)
via fc10::2 on eth0

What is your 'show interfaces' status?

-- 
Elen sila lumenn' omentielvo

Ondrej 'Santiago' Zajicek (email: santi...@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."



Kernel protocol and IPv6 route issue with Bird 2.0

2019-09-11 Thread Nigel Kukard
Hi guys,

I'm having an issue where IPv6 routes from the kernel routing table
don't appear to end up in my t_kernel6 table. Despite the next-hop being
link-local and the interface being UP.

IPv4 routes I have no problem with, working as expected.

I must be doing something wrong on my side, if someone could kindly
point me in the right direction.


(the below is configuration I'm testing with, I have manually set the
MAC addresses and IP's for testing purposes within a LXC container so I
can test results across configuration changes)


Here is the snippet of config with...

   protocol device {
  description "Device protocol";
  scan time 10;
  };

  protocol kernel kernel4 {
  description "Kernel protocol for IPv4";
  metric 600;
  learn;
  ipv4 {
  table t_kernel4;
  export all;
  import all;
  };
  };
  protocol kernel kernel6 {
  description "Kernel protocol for IPv6";
  metric 600;
  learn;
  ipv6 {
  table t_kernel6;
  export all;
  import all;
  };
  };


Here is the error I'm getting in my logs and fc11::/64 is not being
shown in my t _kernel6 table...

2019-09-11 11:40:36.653  KRT: Received route fc11::/64 with strange
next-hop fc10::2

The interface is however UP and fc10::2 is link local.


Here is the output of 'ip link'...  (eth1 is UP)

  1: lo:  mtu 65536 qdisc noqueue state UNKNOWN
mode DEFAULT group default qlen 1
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  2: eth0@if3:  mtu 1500 qdisc noqueue
state UP mode DEFAULT group default qlen 1000
  link/ether 02:01:00:00:00:01 brd ff:ff:ff:ff:ff:ff link-netnsid 0
  4: *eth1*@if5:  mtu 1500 qdisc
noqueue state *UP* mode DEFAULT group default qlen 1000
  link/ether 02:01:00:00:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0

Here is the output of 'ip -6 address'...

  1: lo:  mtu 65536 state UNKNOWN qlen 1
  inet6 ::1/128 scope host
 valid_lft forever preferred_lft forever
  2: eth0@if3:  mtu 1500 state UP qlen 1000
  inet6 fc00::1/64 scope global
 valid_lft forever preferred_lft forever
  inet6 fe80::1:ff:fe00:1/64 scope link
 valid_lft forever preferred_lft forever
  4: eth1@if5:  mtu 1500 state UP qlen 1000
  inet6 *fc10::1/64* scope global
 valid_lft forever preferred_lft forever
  inet6 fe80::1:ff:fe00:2/64 scope link
 valid_lft forever preferred_lft forever

Here is the kernel routing table 'ip -6 route'...

 fc00::/64 dev eth0 proto kernel metric 256 pref medium
  fc10::/64 dev eth1 proto kernel metric 256 pref medium
  *fc11::/64 via fc10::2 dev eth1 metric 1024 pref medium*
  fe80::/64 dev eth0 proto kernel metric 256 pref medium
  fe80::/64 dev eth1 proto kernel metric 256 pref medium


Kind Regards
-N