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-us...@atrey.karlin.mff.cuni.cz
[mailto:owner-bird-us...@atrey.karlin.mff.cuni.cz] On Behalf Of Владислав
Гришин
Sent: Wednesday, February 22, 2012 1:23 PM
To: bird-us...@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: 0x
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