FreeBSD, OSPF, and multicast

Alexander V. Chernikov melifaro at FreeBSD.org
Fri Nov 1 15:07:29 CET 2013


On 01.11.2013 18:00, Claude Marinier wrote:
>> -----Original Message-----
>> From: Alexander V. Chernikov [mailto:melifaro at FreeBSD.org]
>> Sent: Friday, November 01, 2013 9:52 AM
>> To: Claude Marinier; Ondrej Filip; bird-users at bird.network.cz
>> Subject: Re: FreeBSD, OSPF, and multicast
>>
>> On 01.11.2013 17:38, Claude Marinier wrote:
>>>> -----Original Message-----
>>>> From: Claude Marinier
>>>> Sent: Friday, November 01, 2013 9:05 AM
>>>> To: 'Ondrej Filip'
>>>> Subject: RE: FreeBSD, OSPF, and multicast
>>>>
>>>>> -----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 Ondrej Filip
>>>>> Sent: Thursday, October 31, 2013 6:37 PM
>>>>> To: Claude Marinier; bird-users at bird.network.cz
>>>>> Subject: Re: FreeBSD, OSPF, and multicast
>>>>>
>>>>> On 31.10.2013 14:38, Claude Marinier wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I am building a WAN emulator using a FreeBSD server with DummyNet
>>>>>> for WAN effects and BIRD for OSPF. At first, no multicast packets
>>>>>> left the server; then I added a default route and they left by that
>>>>>> interface only. How can I configure the server so BIRD sends HELLO
>>>>>> packets out all the interfaces.
>>>>> Can you send 'show ospf interfaces' and maybe also check if there
>>>>> are no errors
>>>> BIRD 1.3.11 ready.
>>>> bird> show ospf int
>>>> WANemu:
>>>> Interface bce0 (xxx.xxx.xxx.8/29)
>>>>           Type: broadcast
>>>>           Area: 0.0.0.0 (0)
>>>>           State: dr
>>>>           Priority: 1
>>>>           Cost: 10
>>>>           Hello timer: 10
>>>>           Wait timer: 40
>>>>           Dead timer: 40
>>>>           Retransmit timer: 5
>>>>           Designed router (ID): xxx.xxx.xxx.14
>>>>           Designed router (IP): xxx.xxx.xxx.14
>>>>           Backup designed router (ID): 0.0.0.0
>>>>           Backup designed router (IP): 0.0.0.0 Interface bce1 (xxx.xxx.xxx.184/29)
>>>>           Type: broadcast
>>>>           Area: 0.0.0.0 (0)
>>>>           State: dr
>>>>           Priority: 1
>>>>           Cost: 10
>>>>           Hello timer: 10
>>>>           Wait timer: 40
>>>>           Dead timer: 40
>>>>           Retransmit timer: 5
>>>>           Designed router (ID): xxx.xxx.xxx.14
>>>>           Designed router (IP): xxx.xxx.xxx.189
>>>>           Backup designed router (ID): 0.0.0.0
>>>>           Backup designed router (IP): 0.0.0.0
>>>> bird> show ospf neighbors
>>>> WANemu:
>>>> Router ID       Pri          State      DTime   Interface  Router IP
>>>> xxx.xxx.xxx.9     1         init/other  00:37   bce0       xxx.xxx.xxx.9
>>>> xxx.xxx.xxx.185   1         init/other  00:33   bce1       xxx.xxx.xxx.185
>>>>
>>>>> bird> echo all
>>>>> bird> debug all all
>>>> There is a lot of output. How can this be restricted to HELLO messages?
>>> Got something useful from 'debug all all'.
>>>
>>>>>> device1: Scanning interfaces
>>>>>> WANemu: HELLO packet received from 131.140.113.9 via bce0
>>>>>> WANemu: HELLO packet received from 131.140.113.185 via bce1
>>>>>> device1: Scanning interfaces
>>>>>> WANemu: HELLO packet sent via bce1
>>>>>> WANemu: HELLO packet sent via bce0
>>>>>> WANemu: HELLO packet received from 131.140.113.9 via bce0
>>>>>> WANemu: HELLO packet received from 131.140.113.185 via bce1
>>> I am also running 'tcpdump' on one of the interfaces:
>>>    - it does not show bird's HELLO packets
>> Just to ensure: what filter expression is set for tcpdump?
> None.
>
>>>    - it does show the Cisco router's HELLO packets
>>>    - it does show CDP packets from the Cisco router
>>>    - it does show CDP packets from the server running bird
>> Do you have some kind of firewall enabled (ipfw, pf, or..)?
> Yes, IPFW is configured with some of the default entries (from sample config file) and pipes for delay.
>
> 00010 pipe 1 ip from any to any out xmit bce0
> 00020 pipe 2 ip from any to any out xmit bce1
^ You're piping your control traffic here.

Can you temporarily disable ipfw for IPv4 traffic and see what happens?
( e.g. set net.inet.ip.fw.enable sysctl to 0) and look if anything changes?
> 00100 allow ip from any to any via lo0
> 00200 deny ip from any to 127.0.0.0/8
> 00300 deny ip from 127.0.0.0/8 to any
> 00400 deny ip from any to ::1
> 00500 deny ip from ::1 to any
> 00600 allow ipv6-icmp from :: to ff02::/16
> 00700 allow ipv6-icmp from fe80::/10 to fe80::/10
> 00800 allow ipv6-icmp from fe80::/10 to ff02::/16
> 00900 allow ipv6-icmp from any to any ip6 icmp6types 1
> 01000 allow ipv6-icmp from any to any ip6 icmp6types 2,135,136
> 65000 allow ip from any to any
> 65535 deny ip from any to any
>
> I will look into removing the IPv6 rules later.
>
>>>> I suspect that there is an underlying assumption (like IGMP or PIM)
>>>> which I have not yet discovered.
>>>>
>>>>> 		Ondrej
>>>>>
>>>>>> Thank you.
>>>>>>
>>>>>> Details:
>>>>>>
>>>>>> FreeBSD WAMemu 9.2-RELEASE FreeBSD 9.2-RELEASE #0 r255898: Thu Sep
>>>>>> 26 22:50:31 UTC 2013
>>>>>> root at bake.isc.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64
>>>>>>
>>>>>> bird-1.3.11
>>>>>>
>>>>>> P.S. I got it working by avoiding multicast with 'type
>>>>>> nonbroadcast' and 'neighbors'.
>>>>>> --
>>>>>> Claude Marinier
>




More information about the Bird-users mailing list