FreeBSD, OSPF & bird 1.6.0
Борис Коваленко
b.ju.kovalenko at gmail.com
Wed Jul 12 19:48:12 CEST 2017
Hello!
Have 2 FreeBSD hosts directly connected via VLAN.
Host 1 ip: x.x.12.203
Host 2 ip: x.x.12.204
Host 1 is FreeBSD 10.3-p12, running bird 1.6.0
Host 2 is FreeBSD 11-Stable, running bird 1.6.3
The problem is that Host1 can't resolve ARP of Host2 because of this kernel
route:
X.X.12.204 31.44.12.204 UGH1 lagg0.150
This route is installed by bird. When I filter this route in updates - I
see no problems in ARP. But where it is coming from? Imho from (show ospf
state)
router 0.0.1.2
distance 10
network X.X.12.200/29 metric 10
stubnet 172.31.1.2/32 metric 0
> external X.X.12.200/29 metric2 20
> external X.X.12.204/32 metric2 20
external 172.31.1.2/32 metric2 20
Configs are pretty simple and shown below. So my question is - Is this
normal or something wrong with my config?
common part of configs:
protocol device main_device {
scan time 60;
}
protocol direct main_direct {
interface "*";
check link yes;
}
#
#
#
filter f_main_kernel_import
{
accept;
}
filter f_main_kernel_export
{
if(source = RTS_STATIC || source = RTS_STATIC_DEVICE) then
accept;
else if(source = RTS_INHERIT) then
accept;
else if(source = RTS_OSPF || source = RTS_OSPF_IA || source =
RTS_OSPF_EXT1 || source = RTS_OSPF_EXT2) then
accept;
else if(source = RTS_BGP) then {
if(bgp_path.len < 2) then
accept;
else {
if(defined(bgp_community) && (bgp_community ~ [(BGP_MC_LOCAL)]
|| bgp_community ~ [(BGP_MC_LOCAL_INTERNET)] || bgp_community ~
[(BGP_MC_CUSTOMER)])) then accept;
else if(defined(bgp_ext_community) && (bgp_ext_community ~
[(BGP_EMC_LOCAL)] || bgp_ext_community ~ [(BGP_EMC_LOCAL_INTERNET)] ||
bgp_ext_community ~ [(BGP_EMC_CUSTOMER)])) then accept;
else if(defined(bgp_community) && bgp_community ~
[(BGP_MC_UPSTREAM)] && fn_ipv4_default()) then accept;
else reject;
}
} else
reject "[f_main_kernel_export] reject: ", net, "/", from, "/",
source;
}
#
filter f_main_ospf_import
{
if(fn_ipv4_announced()) then {
bgp_community.add(BGP_MC_LOCAL_INTERNET);
bgp_ext_community.add(BGP_EMC_LOCAL_INTERNET);
}
else {
bgp_community.add(BGP_MC_LOCAL);
bgp_ext_community.add(BGP_EMC_LOCAL);
}
bgp_local_pref = BGP_LP_LOCAL;
if(net = 31.44.12.204/32) then
reject;
accept;
}
filter f_main_ospf_export
{
case source {
RTS_INHERIT:
ospf_metric2 = 20;
accept;
RTS_DEVICE:
ospf_metric2 = 20;
accept;
RTS_STATIC_DEVICE:
if(fn_ipv4_default()) then ospf_metric2 = 100;
else ospf_metric2 = 20;
accept;
RTS_STATIC:
ospf_metric2 = 20;
accept;
RTS_BGP:
if(fn_ipv4_default()) then {
ospf_metric2 = 100;
accept;
}
else
reject;
RTS_OSPF:
accept;
RTS_OSPF_IA:
accept;
RTS_OSPF_EXT1:
accept;
RTS_OSPF_EXT2:
accept;
else:
reject "[f_main_ospf_export] reject: ", net, "/", from, "/",
source;
}
}
Host1 OSPF:
root at br0:/usr/local/etc/bird# more ipv4_ospf.conf
#
protocol ospf main_ospf {
rfc1583compat yes;
tick 2;
router id 0.0.1.1;
export filter f_main_ospf_export;
import filter f_main_ospf_import;
area 0.0.0.0 {
networks {
172.31.1.1/32;
X.X.12.200/29;
};
interface "lo*" {
cost 10;
hello 15;
dead 60;
type ptp;
};
interface "lagg0.150" {
cost 10;
hello 2;
dead 10;
};
};
}
Host2 OSPF:
root at br0:/usr/local/etc/bird# more ipv4_ospf.conf
#
protocol ospf main_ospf {
rfc1583compat yes;
tick 2;
router id 0.0.1.2;
export filter f_main_ospf_export;
import filter f_main_ospf_import;
area 0.0.0.0 {
networks {
172.31.1.2/32;
X.X.12.200/29;
};
interface "lo*" {
cost 10;
hello 15;
dead 60;
type ptp;
};
interface "lagg0.150" {
cost 10;
hello 2;
dead 10;
};
};
}
Regards,
Boris
--
С уважением,
Борис Коваленко
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20170712/7e34c3ab/attachment.html>
More information about the Bird-users
mailing list