iBGP - Simple static route exchange
Cedric Lemarchand
yipikai7 at gmail.com
Sat Feb 25 18:03:53 CET 2017
Hello Ondrej,
Thanks for your precious explanations. Unfortunately I am still stuck, static routes does not apply between 2 hosts.
To solve 1) and 2), and in the way I only need to publish static routes to other BGP hosts, I changed "export all” by "export where proto = “static1” “, but still no luck. I notice that static routes are not received any more on hosts.
Here is my understanding of “show protocol all” on host1 :
direct1 Direct master up 17:35:58
Preference: 240
Input filter: ACCEPT
Output filter: REJECT
Routes: 2 imported, 0 exported, 2 preferred
Route change stats: received rejected filtered ignored accepted
Import updates: 2 0 0 0 2
Import withdraws: 0 0 --- 0 0
Export updates: 0 0 0 --- 0
Export withdraws: 0 --- --- --- 0
Bird finds 2 direct routes related to eth0 and eth1, so they are received, accepted, but not exported, which is fine.
kernel1 Kernel master up 17:41:12
Preference: 10
Input filter: ACCEPT
Output filter: REJECT
Routes: 1 imported, 0 exported, 1 preferred
Route change stats: received rejected filtered ignored accepted
Import updates: 1 0 0 0 1
Import withdraws: 0 0 --- 0 0
Export updates: 6 5 1 --- 0
Export withdraws: 0 --- --- --- 0
Bird find 1 static route and try to export 6 routes but they all get rejected or filtered, which is fine too, but I dont know why “6” routes of the routing table bellow :
root at host1:~# ip r
10.10.1.0/24 dev eth0 proto kernel scope link src 10.10.1.1
10.10.2.0/24 via 10.10.1.254 dev eth0
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.1
device1 Device master up 17:41:12
Preference: 240
Input filter: ACCEPT
Output filter: REJECT
Routes: 0 imported, 0 exported, 0 preferred
Route change stats: received rejected filtered ignored accepted
Import updates: 0 0 0 0 0
Import withdraws: 0 0 --- 0 0
Export updates: 0 0 0 --- 0
Export withdraws: 0 --- --- — 0
Nothing to say about this one, from what I have read it’s role is to feed the kernel protocol.
static1 Static master up 17:41:12
Preference: 200
Input filter: ACCEPT
Output filter: ACCEPT
Routes: 1 imported, 0 exported, 0 preferred
Route change stats: received rejected filtered ignored accepted
Import updates: 1 0 0 0 1
Import withdraws: 0 0 --- 0 0
Export updates: 0 0 0 --- 0
Export withdraws: 0 --- --- --- 0
This one is annoying me and I think the issue is there, 1 imported but ignored, why ?
bgp1 BGP master up 17:41:13 Established
Preference: 100
Input filter: ACCEPT
Output filter: (unnamed)
Routes: 0 imported, 0 exported, 0 preferred
Route change stats: received rejected filtered ignored accepted
Import updates: 0 0 0 0 0
Import withdraws: 0 0 --- 0 0
Export updates: 3 0 3 --- 0
Export withdraws: 0 --- --- --- 0
BGP state: Established
Neighbor address: 10.10.2.1
Neighbor AS: 3000
Neighbor ID: 10.10.2.1
Neighbor caps: refresh restart-aware AS4
Session: internal multihop AS4
Source address: 10.10.1.1
Hold timer: 162/240
Keepalive timer: 53/80
I don’t understand why 3 routes are received because protocols direct1 and kernel1 should not export anything, and only one static route should be received via BGP from host2 ! Also the ouput filter is unamed, which I thinks is not good.
Below the host1 bird.conf.
As you can see I think I misunderstand some things, and I am a bit disappointed.
Cheers
router id 10.10.1.1;
protocol direct {
interface "*"; # Restrict network interfaces it works with
}
protocol kernel {
learn; # Learn all alien routes from the kernel
#persist; # Don't remove routes on bird shutdown
scan time 20; # Scan kernel routing table every 20 seconds
import all; # Default is import all
export none; # Default is export none
}
protocol device {
scan time 10; # Scan interfaces every 10 seconds
}
protocol static static1 {
route 192.168.1.0/24 via 10.10.1.1;
export all;
}
protocol bgp {
multihop;
#gateway recursive;
import all;
export where proto = "static1";
local as 3000;
neighbor 10.10.2.1 as 3000;
#next hop self;
#rr client;
}
—
Cédric Lemarchand
> On 23 Feb 2017, at 17:10, Ondrej Zajicek <santiago at crfreenet.org> wrote:
>
> On Thu, Feb 23, 2017 at 04:42:50PM +0100, Cedric Lemarchand wrote:
>> Yes, I am not sure to understand how plays theses options (and if I need it) in the bgp protocol and it they are related to my problem :
>>
>
>
>> gateway recursive : means that if host2 advertise "route 192.168.2.0/24
>> via 10.10.2.1;” to host1, host1 does a lookup in the kernel routing table
>> and set the nexthop for 192.168.2.0/24 via the same IP as for host2 ?
>
> Mainly yes, but:
>
> 1) Not lookup in the kernel routing table, but in the BIRD table. By
> default the same table as used by BGP protocol, but could be configured
> to different one by 'igp table' option.
>
> 2) It is not lookup for host2, but lookup for bgp_next_hop attribute, as
> specified by host2, which is usually value of 'via'.
>
>> next hop self : means that every route advertised by host2 will be routed to it self while keeping the “gateway recursive” logic ?
>
> That means host2 always announces own IP address as bgp_next_hop instead
> of one from 'via'.
>
>> The output of show route all :
>
> There are two issues:
>
> 1) both hosts announce all routes (not only 192.168.xx but also 10.10.xx).
>
> 2) routes from kernel1 protocol has lower preference (10), so routes
> from BGP are preferred and you get circular lookups for 10.0.1.1, 10.10.2.1
>
> You could change preference of kernel protocol to say 200 and you
> could filter out unwanted routes in BGP export filter.
>
> --
> Elen sila lumenn' omentielvo
>
> Ondrej 'Santiago' Zajicek (email: santiago at 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."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20170225/2a51d23f/attachment.html>
More information about the Bird-users
mailing list