Synopsis: <problem with network statements in bgpd.conf>
Category: <user i386 system>
Environment:
System : OpenBSD 5.4
Details : OpenBSD 5.4 (XXX) #7: Thu Mar 13 10:08:46 MSK 2014
[email protected]:/usr/src/sys/arch/i386/compile/XXX
Architecture: OpenBSD.i386
Machine : i386
Description:
Using BGPD with neighbor properties:
announce self
announce IPv4 vpn
announce refresh yes
announce capabilities yes
announce as-4byte no
and then rdomain sections with rd/import-export rt/depend on mpeX
There was no problem when i did announce one prefix/32, but since
i need to announce more prefixes the issue happens.
Actually, each prefix is written as network statement in rdomain section
of bgpd.conf and i get random results of update announcements.
How-To-Repeat:
Rdomain contains one mpe interface with inet prefix m.m.m.2/32 and
one loopback interface with two prefixes l1.l1.l1.3/32 and l2.l2.l2.198/32
ifconfig is looking good, second prefix on Lo interface is an inet alias.
bgpd.conf is:
network m.m.m.2/32
network l1.l1.l1.3/32
network l2.l2.l2.198/32
network inet connected
The neighbor gets update of only one prefix - l1.l1.l1.3/32
Then i change the prefixes len in conf and neighbor gets random updates,
for example,
network m.m.m.2/30
network l1.l1.l1.3/32
network l2.l2.l2.198/32
The neighbor gets update of two - m.m.m.2/30 and l1.l1.l1.3/32
The only variant which works for me is
network m.m.m.2/31
network l1.l1.l1.3/32
network l2.l2.l2.198/30
With this way the neighbor got all prefixes, but the problem is
i announce 7 ip addresses instead of 3.
More over, as i have sysctl inet forwarding set while not all announced
ip addresses in use, i need to or disable forwarding either filter traffic
in pf to avoid routing loops.
Fix:
Didnt find any workarounds.
--