Interesting links, thanks. Looking into the second one, I noticed this commit:
https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/netinet6/nd6_nbr.c.diff?r1=1.117&r2=1.118&f=h

It seems like OpenBSD should respond to NS addressed to both global or 
link-local addresses on the upstream interface.

I also set net.inet6.icmp6.nd6_debug=1, but haven't seen anything related in 
the logs.

On 7/31/19 8:23 PM, john slee wrote:
Hi,

I'm having very similar problems to this, I think. Syspatch'ed OpenBSD 6.5
on an apu4c4, with my ISP-supplied termination device (cable modem,
effectively) directly attached to an ethernet interface. No switch. IPv4
works fine. DHCPv6 NA+PD seems to work OK — I get v6 NA & PD assignments —
but I can't ping anything beyond my gateway. If I use the ISP-supplied
router I have fully functional dualstack networking.

I saw sthen@'s recent post on this topic with his configs included. I
adjusted my configs (which were already pretty close) to reflect what he'd
done, but no joy :-(.

FWIW my ISP is Telstra in Australia. Looking around a bit I found a pfSense
discussion wherein the suggestion was to make a config change to what I
assume underneath the pfSense UI is FreeBSD's
"net.inet6.icmp6.nd6_onlink_ns_rfc4861" sysctl:

     https://whirlpool.net.au/wiki/pfsense_ipv6_telstra

But I also found this old discussion that suggested that OpenBSD's
behaviour here — and lack of this particular knob — was a result of a nasty
old CVE:


https://misc.openbsd.narkive.com/3KdNDcEM/openbsd-ignoring-rfc-compliant-ipv6-neighbor-solicitation#post1

My next discovery step is to boot Debian on my spare apu4c4 and see if it
works there, capture some traffic, etc. I don't want to use that as a
gateway, though.

John

On Tue, 30 Jul 2019 at 16:22, Kyle <arad...@tma-0.net> wrote:

Hi all,

I'm trying to get IPv6 set up on a firewall box running 6.4. I'm using
dhcpcd to get an NA and several PDs, which appears to be working fine, but
no normal v6 traffic can be sent or received. tcpdump on the egress
interface (em3) shows lots of icmp6 neighbor solicits going back and forth,
but no responses from either side:


$ ifconfig em3
em3: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
          lladdr 0c:c4:7a:ad:2a:e7
          index 4 priority 0 llprio 3
          groups: egress
          media: Ethernet autoselect (1000baseT full-duplex)
          status: active
          inet6 fe80::8dfc:5795:8ab7:e2b%em3 prefixlen 64 scopeid 0x4
          inet <omitted> netmask 0xffffe000 broadcast <omitted>
          inet6 2605:a601:fe07:c900::1 prefixlen 128 pltime 64553 vltime
86153


$ tcpdump -nlp -i em3 ip6
... neighbor sol repeating many times ...
22:46:53.876457 fe80::8dfc:5795:8ab7:e2b > ff02::1:ffea:4ff0: icmp6:
neighbor sol: who has fe80::2d0:f6ff:feea:4ff0
22:47:01.876688 fe80::2d0:f6ff:feea:4ff0 > 2605:a601:fe07:c900::1: icmp6:
neighbor sol: who has 2605:a601:fe07:c900::1 [class 0xc0]
22:47:01.876778 fe80::8dfc:5795:8ab7:e2b > ff02::1:ffea:4ff0: icmp6:
neighbor sol: who has fe80::2d0:f6ff:feea:4ff0
22:47:01.877542 fe80::2d0:f6ff:feea:4ff0 > fe80::8dfc:5795:8ab7:e2b:
icmp6: neighbor sol: who has fe80::8dfc:5795:8ab7:e2b [class 0xc0]
22:47:02.876594 fe80::8dfc:5795:8ab7:e2b > ff02::1:ffea:4ff0: icmp6:
neighbor sol: who has fe80::2d0:f6ff:feea:4ff0
22:47:03.876603 fe80::8dfc:5795:8ab7:e2b > ff02::1:ffea:4ff0: icmp6:
neighbor sol: who has fe80::2d0:f6ff:feea:4ff0
22:47:32.337233 fe80::8dfc:5795:8ab7:e2b.546 > ff02::1:2.547: dhcp6
release [hlim 1]
22:47:32.515413 fe80::2d0:f6ff:feea:4ff0.547 >
fe80::8dfc:5795:8ab7:e2b.546: dhcp6 [class 0xc0]


I added "pass quick on em3 inet6" to the top of pf.conf to make sure the
responses aren't being filtered.

The peer LL address is always marked incomplete:

$ ndp -na | grep em3
2605:a601:fe07:c900::1               0c:c4:7a:ad:2a:e7     em3 permanent R
l
fe80::2d0:f6ff:feea:4ff0%em3         00:d0:f6:ea:51:96     em3 expired   I
R
fe80::8dfc:5795:8ab7:e2b%em3         0c:c4:7a:ad:2a:e7     em3 permanent R
l


Pinging any v6 address outside my network only results in one
fe80::8dfc:5795:8ab7:e2b > ff02::1:ffea:4ff0: icmp6: neighbor sol: who has
fe80::2d0:f6ff:feea:4ff0

per ping sent.

Routes:

$ route -n show -inet6 | grep em3
default fe80::2d0:f6ff:feea:4ff0%em3   UGS        0    53699     - 8 em3
2605:a601:fe07:c900::1 0c:c4:7a:ad:2a:e7              UHLl       0
1752     - 1 em3
fe80::%em3/64 fe80::8dfc:5795:8ab7:e2b%em3   UCn        1        1     - 4
em3
fe80::2d0:f6ff:feea:4ff0%em3 00:d0:f6:ea:51:96              UHLch      1
720183     - 3 em3
fe80::8dfc:5795:8ab7:e2b%em3 0c:c4:7a:ad:2a:e7              UHLl       0
110606     - 1 em3
ff01::%em3/32 fe80::8dfc:5795:8ab7:e2b%em3   Um         0        3     - 4
em3
ff02::%em3/32 fe80::8dfc:5795:8ab7:e2b%em3   Um         0   161322     - 4
em3


There is a managed switch between the firewall's egress and the ISP, but
it's not doing any packet filtering. I'm currently out of ideas; any
suggestions would be much appreciated.



Reply via email to