Limited Broadcast in FreeBSD 10.0-STABLE

Jeremy Boy mail at jboy.eu
Fri Sep 26 18:51:21 UTC 2014


Hello everybody,

it seems to me that limited broadcast is broken on FreeBSD 10.0-STABLE.

My setup:
FreeBSD server (FreeBSD server.home.local 10.0-STABLE FreeBSD 10.0-STABLE #0 r264752: Tue Apr 22 22:09:47 CEST 2014     jb at server.home.local:/usr/obj/usr/src10/sys/GENERIC  amd64)
MacBook Pro (Darwin jb-mbp.local 13.3.0 Darwin Kernel Version 13.3.0: Tue Jun  3 21:27:35 PDT 2014; root:xnu-2422.110.17~1/RELEASE_X86_64 x86_64)

Both are connected over Ethernet on the same layer 2 switch.


> root at server: $ ping -c 4 255.255.255.255
> PING 255.255.255.255 (255.255.255.255): 56 data bytes
> 64 bytes from 255.255.255.255: icmp_seq=0 ttl=64 time=0.364 ms
> 64 bytes from 255.255.255.255: icmp_seq=1 ttl=64 time=0.357 ms
> 64 bytes from 255.255.255.255: icmp_seq=2 ttl=64 time=0.373 ms
> 64 bytes from 255.255.255.255: icmp_seq=3 ttl=64 time=0.373 ms
> 
> --- 255.255.255.255 ping statistics ---
> 4 packets transmitted, 4 packets received, 0.0% packet loss
> round-trip min/avg/max/stddev = 0.357/0.367/0.373/0.007 ms



> root at jb-mbp: $ tcpdump -i en0 -nX icmp
> tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
> listening on en0, link-type EN10MB (Ethernet), capture size 65535 bytes
> ^C
> 0 packets captured
> 1532 packets received by filter
> 0 packets dropped by kernel

The other way around, it works:

> root at jb-mbp: $ ping -c 4 255.255.255.255
> PING 255.255.255.255 (255.255.255.255): 56 data bytes
> 64 bytes from 192.168.2.116: icmp_seq=0 ttl=64 time=0.124 ms
> 64 bytes from 255.255.255.255: icmp_seq=0 ttl=64 time=0.574 ms
> 64 bytes from 192.168.2.116: icmp_seq=1 ttl=64 time=0.078 ms
> 64 bytes from 255.255.255.255: icmp_seq=1 ttl=64 time=0.498 ms
> 64 bytes from 192.168.2.116: icmp_seq=2 ttl=64 time=0.208 ms
> 64 bytes from 255.255.255.255: icmp_seq=2 ttl=64 time=0.620 ms
> 64 bytes from 192.168.2.116: icmp_seq=3 ttl=64 time=0.234 ms
> 
> --- 255.255.255.255 ping statistics ---
> 4 packets transmitted, 4 packets received, +3 duplicates, 0.0% packet loss
> round-trip min/avg/max/stddev = 0.078/0.334/0.620/0.208 ms

> root at server: $ sudo tcpdump -i em0 -nX icmp
> tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
> listening on em0, link-type EN10MB (Ethernet), capture size 65535 bytes
> capability mode sandbox enabled
> 20:37:09.652662 IP 192.168.2.116 > 255.255.255.255: ICMP echo request, id 2733, seq 0, length 64
> 	0x0000:  4500 0054 ed57 0000 4001 ca35 c0a8 0274  E..T.W.. at ..5...t
> 	0x0010:  ffff ffff 0800 4128 0aad 0000 5425 b255  ......A(....T%.U
> 	0x0020:  0009 baa3 0809 0a0b 0c0d 0e0f 1011 1213  ................
> 	0x0030:  1415 1617 1819 1a1b 1c1d 1e1f 2021 2223  .............!"#
> 	0x0040:  2425 2627 2829 2a2b 2c2d 2e2f 3031 3233  $%&'()*+,-./0123
> 	0x0050:  3435 3637                                4567
> 20:37:10.653462 IP 192.168.2.116 > 255.255.255.255: ICMP echo request, id 2733, seq 1, length 64
> 	0x0000:  4500 0054 e265 0000 4001 d527 c0a8 0274  E..T.e.. at ..'...t
> 	0x0010:  ffff ffff 0800 3dd8 0aad 0001 5425 b256  ......=.....T%.V
> 	0x0020:  0009 bdf1 0809 0a0b 0c0d 0e0f 1011 1213  ................
> 	0x0030:  1415 1617 1819 1a1b 1c1d 1e1f 2021 2223  .............!"#
> 	0x0040:  2425 2627 2829 2a2b 2c2d 2e2f 3031 3233  $%&'()*+,-./0123
> 	0x0050:  3435 3637                                4567
> 20:37:11.654650 IP 192.168.2.116 > 255.255.255.255: ICMP echo request, id 2733, seq 2, length 64
> 	0x0000:  4500 0054 195b 0000 4001 9e32 c0a8 0274  E..T.[.. at ..2...t
> 	0x0010:  ffff ffff 0800 3990 0aad 0002 5425 b257  ......9.....T%.W
> 	0x0020:  0009 c237 0809 0a0b 0c0d 0e0f 1011 1213  ...7............
> 	0x0030:  1415 1617 1819 1a1b 1c1d 1e1f 2021 2223  .............!"#
> 	0x0040:  2425 2627 2829 2a2b 2c2d 2e2f 3031 3233  $%&'()*+,-./0123
> 	0x0050:  3435 3637                                4567
> 20:37:12.655765 IP 192.168.2.116 > 255.255.255.255: ICMP echo request, id 2733, seq 3, length 64
> 	0x0000:  4500 0054 20b1 0000 4001 96dc c0a8 0274  E..T.... at ......t
> 	0x0010:  ffff ffff 0800 350c 0aad 0003 5425 b258  ......5.....T%.X
> 	0x0020:  0009 c6b9 0809 0a0b 0c0d 0e0f 1011 1213  ................
> 	0x0030:  1415 1617 1819 1a1b 1c1d 1e1f 2021 2223  .............!"#
> 	0x0040:  2425 2627 2829 2a2b 2c2d 2e2f 3031 3233  $%&'()*+,-./0123
> 	0x0050:  3435 3637                                4567
> ^C
> 4 packets captured
> 650 packets received by filter
> 0 packets dropped by kernel


I've tried this with several FreeBSD (all 10-STABLE) machines, none worked. Who and what is wrong?


> root at server: $ ifconfig
> em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 9000
> 	options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC,VLAN_HWTSO>
> 	ether 00:22:4d:ac:d4:14
> 	inet 192.168.2.90 netmask 0xffffff00 broadcast 192.168.2.255 
> 	inet6 fe80::222:4dff:feac:d414%em0 prefixlen 64 scopeid 0x1 
> 	inet 192.168.2.91 netmask 0xffffff00 broadcast 192.168.2.255 
> 	inet 192.168.2.92 netmask 0xffffff00 broadcast 192.168.2.255 
> 	inet 192.168.2.93 netmask 0xffffff00 broadcast 192.168.2.255 
> 	inet 192.168.2.94 netmask 0xffffff00 broadcast 192.168.2.255 
> 	inet 192.168.2.95 netmask 0xffffff00 broadcast 192.168.2.255 
> 	inet 192.168.2.96 netmask 0xffffff00 broadcast 192.168.2.255 
> 	inet 192.168.2.97 netmask 0xffffff00 broadcast 192.168.2.255 
> 	inet 192.168.2.98 netmask 0xffffff00 broadcast 192.168.2.255 
> 	inet 192.168.2.99 netmask 0xffffff00 broadcast 192.168.2.255 
> 	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
> 	media: Ethernet 1000baseT <full-duplex>
> 	status: active
> lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
> 	options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
> 	inet6 ::1 prefixlen 128 
> 	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 
> 	inet 127.0.0.1 netmask 0xff000000 
> 	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
> tun0: flags=8010<POINTOPOINT,MULTICAST> metric 0 mtu 1500
> 	options=80000<LINKSTATE>
> 	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
> 	Opened by PID 1092
> pflog0: flags=141<UP,RUNNING,PROMISC> metric 0 mtu 33160


> root at server: $ route get 255.255.255.255
>    route to: 255.255.255.255
> destination: default
>        mask: default
>     gateway: easy.box
>         fib: 0
>   interface: em0
>       flags: <UP,GATEWAY,DONE,STATIC>
>  recvpipe  sendpipe  ssthresh  rtt,msec    mtu        weight    expire
>        0         0         0         0      9000         1         0 

Thanks in advance!


More information about the freebsd-questions mailing list