How redistribute routes from kernel table to OSPF protocol?
Владислав Гришин
Vladislav.Grishin at vts24.ru
Wed Feb 22 12:01:32 CET 2012
After I restart bird
proxmox-host1:/var/log# tail /var/log/debug
Feb 22 14:59:09 proxmox-host1 bird: kernel1: Pruning inherited routes
Feb 22 14:59:11 proxmox-host1 bird: device1: Scanning interfaces
Feb 22 14:59:11 proxmox-host1 bird: kernel1: Scanning routing table
Feb 22 14:59:11 proxmox-host1 bird: kernel1: 10.18.1.25/32: ignored <------
Feb 22 14:59:11 proxmox-host1 bird: kernel1: 10.18.1.26/32: ignored <------
Feb 22 14:59:11 proxmox-host1 bird: kernel1: 0.0.0.0/0: [alien] seen
Feb 22 14:59:11 proxmox-host1 bird: kernel1: Pruning table master
Feb 22 14:59:11 proxmox-host1 bird: kernel1: 10.16.1.0/24: reinstalling
Feb 22 14:59:11 proxmox-host1 bird: kernel1: 10.17.1.0/24: reinstalling
Feb 22 14:59:11 proxmox-host1 bird: kernel1: Pruning inherited routes
proxmox-host1:/var/log#
Vladislav Grishin
-----Original Message-----
From: owner-bird-users at atrey.karlin.mff.cuni.cz
[mailto:owner-bird-users at atrey.karlin.mff.cuni.cz] On Behalf Of Владислав
Гришин
Sent: Wednesday, February 22, 2012 1:23 PM
To: bird-users at trubka.network.cz
Subject: How redistribute routes from kernel table to OSPF protocol?
1. Routes into kernel routing table
proxmox-host1:/# ip ro list
10.18.1.25 dev venet0 scope link
10.18.1.26 dev venet0 scope link
10.16.1.0/24 dev vmbr0 proto kernel scope link src 10.16.1.27
10.17.1.0/24 dev eth1 proto kernel scope link src 10.17.1.27
default via 10.16.1.1 dev vmbr0
proxmox-host1:/#
2. Bird Config file
filter export_OSPF {
# redistribute connected
if ( source = RTS_DEVICE ) then {
print "net accepted:", net;
ospf_metric2 = 20;
accept;
}
# redistribute static
if ( source = RTS_STATIC_DEVICE ) then {
print "net accepted:", net;
ospf_metric2 = 20;
accept;
}
if ( source = RTS_STATIC ) then {
print "net accepted:", net;
ospf_metric2 = 20;
accept;
}
reject;
}
filter import_OSPF {
if ( source = RTS_OSPF_EXT2 && net != 0.0.0.0/0 ) then {
print "net accepted:", net;
accept;
}
reject;
}
protocol direct {
interface "eth1";
interface "venet0";
}
protocol kernel {
# table main;
learn; # Learn all alien routes from the kernel
device routes;
# persist off; # Don't remove routes on bird shutdown
# scan time 20; # Scan kernel routing table every 20 seconds
scan time 2; # Scan kernel routing table every 60 seconds
import all; # Default is import all
export all; # Default is export none
# kernel table 5; # Kernel table to synchronize with (default:
main)
}
protocol ospf myospf {
router id 10.17.1.27;
debug all;
export filter export_OSPF;
import filter import_OSPF;
area 0.0.0.0 {
interface "eth1" {
hello 10;
retransmit 5;
cost 10;
transmit delay 1;
dead count 4;
wait 40;
type broadcast;
priority 0;
authentication cryptographic;
password "ХХХХХХХХХХ";
};
};
}
3. Output bird console
bird> show route all
0.0.0.0/0 via 10.16.1.1 on vmbr0 [kernel1 2012-02-22 12:47:54] *
(10)
Type: inherit unicast univ
10.16.1.0/24 via 10.17.1.28 on eth1 [myospf 2012-02-22 12:48:04] * E2
(150/10/20) [10.17.1.28]
Type: OSPF-boundary unicast univ
OSPF.metric1: 10
OSPF.metric2: 20
OSPF.tag: 0x00000000
OSPF.router_id: 10.17.1.28
10.17.1.0/24 dev eth1 [direct1 2012-02-22 12:47:54] * (240)
Type: device unicast univ
bird>
But I don't see these routes in a bird
10.18.1.25 dev venet0 scope link
10.18.1.26 dev venet0 scope link
(Only default route present from kernel.)
It is necessary to declare these routes to OSPF neighbors.
Vladislav Grishin
More information about the Bird-users
mailing list