Upgrading nodejs and getting verbatim=1 added to the appropriate call should also help. The bug report you linked to showed that getaddrinfo result order will now be honoured with verbatim=1. You then just need to ensure that getaddrinfo is correctly configured to return IPv6 addresses before IPv4 addresses. This should be the default for getaddrinfo.
Mark > On 2 May 2018, at 10:50 am, Kim Ebert <[email protected]> wrote: > > Yeah, fighting with the application developers doesn't appear to be a good > option, nor is applying any tunneling mechanisms such as 464xlat. > > One of the main goals is to establish an ipv6 only network that just works. > An ipv6 only network doesn't need A records. I'll give a link to my patch or > repo when it is ready. > > Thanks for the feedback though. I appreciate it. > > As far as the application developer, it is nearly as frustrating as Android > dhcpv6 support. > > Kim > > On Tue, May 1, 2018, 6:30 PM Mark Andrews <[email protected]> wrote: > Which is really because they don’t understand that happy eyeballs is > just a tweak to RFC 1123 multi-homed server support. It isn’t IPv6 > transition support. It’s just the IPv6 results in a LOT MORE MULTI-HOMED > sites especially when DNS64 is in the mix. > > Failure to honour address preferences returned from getaddrinfo should > be a firing squad offence. Application developers DO NOT KNOW how the > network the application is connected to is configured. > > You could move to using DS-Lite, MAP-E, MAP-T, 464XLAT etc. to provide > IPv4 as a service instead of DNS64 + NAT64 (I presume you actually meant > DNS64 + NAT64 when you said NAT64). Your local network can still be > IPv6-only. MAP-T and 464XLAT can still use your NAT64 box. > > DS-Lite and MAP-E are different ways to automatically configure > IPv4 in IPv6 tunnels. > > MAP-T and 464XLAT are just different ways to configure the CLAT > which translates IPv4 packets to IPv6 packets before sending them > to the NAT64 for reverse translation. > > nodejs should work fine with all of DS-Lite, MAP-E, MAP-T and 464XLAT > as they allow A records (IPv4 literals) to work for connections. > > Mark > > > On 2 May 2018, at 9:47 am, Kim Ebert <[email protected]> wrote: > > > > Developer had refused to apply happy eyeballs. > > > > See https://github.com/nodejs/node/issues/6307 > > > > I can't fix the application, so I need to fix my network. > > > > Kim > > > > On Tue, May 1, 2018, 5:44 PM Mark Andrews <[email protected]> wrote: > > If you have a IPv6 only network then there should be no default IPv4 route > > so > > the connect(), sendto() etc. should all fail immediately with network > > unreachable. > > If they don’t then complain to your OS developer. If the application does > > not > > detect these failures complain to the application developer. > > > > Applications should fail over immediately if there is not a covering route. > > > > If you have a local default IPv4 route, the router should be returning > > network > > unreachable and the OS should be processing them. This should cause network > > errors to be delivered to the application. > > > > The application should also be implementing happy eyeballs where you fail > > over to other addresses with sub second delays when there are multiple > > addresses to try. There is nothing wrong with having multiple connection > > attempts happening in parallel. > > > > Mucking with DNS responses is only covering up application defects. > > Filtering > > A records also breaks DNS64 for applications that are using DNSSEC as they > > need to see the A records as well as the AAAA responses. > > > > Notify the application vendor they they have a denial-of-service bug. > > > > Mark > > > > > On 2 May 2018, at 9:00 am, Kim Ebert <[email protected]> wrote: > > > > > > Hi All, > > > > > > I recently came across an issue where the user program preferred IPv4 > > > over IPv6. This is a problem because I've created a network that is IPv6 > > > only. I'm currently using NAT64 to provide access to services that don't > > > have any IPv6 access. > > > > > > Now this particular program could work if the DNS records didn't provide > > > A records. I would rather do everything I can as an admin to make the > > > network just work instead of waiting for all of the end user programs to > > > be fixed, so I started working on filter-a functionality to filter out A > > > responses. Currently implementation status is that it sort of works, > > > which is further than I expected to get in 2 days. > > > > > > I wonder if anyone in the community is interested in me sharing the work, > > > and if I should go to the effort to publish the effort? > > > > > > If anyone is curious, the offending program is nodejs and npm. > > > > > > Thanks, > > > > > > Kim > > > _______________________________________________ > > > Please visit https://lists.isc.org/mailman/listinfo/bind-users to > > > unsubscribe from this list > > > > > > bind-users mailing list > > > [email protected] > > > https://lists.isc.org/mailman/listinfo/bind-users > > > > -- > > Mark Andrews, ISC > > 1 Seymour St., Dundas Valley, NSW 2117, Australia > > PHONE: +61 2 9871 4742 INTERNET: [email protected] > > > > > > On May 1, 2018 5:44 PM, "Mark Andrews" <[email protected]> wrote: > > If you have a IPv6 only network then there should be no default IPv4 route > > so > > the connect(), sendto() etc. should all fail immediately with network > > unreachable. > > If they don’t then complain to your OS developer. If the application does > > not > > detect these failures complain to the application developer. > > > > Applications should fail over immediately if there is not a covering route. > > > > If you have a local default IPv4 route, the router should be returning > > network > > unreachable and the OS should be processing them. This should cause network > > errors to be delivered to the application. > > > > The application should also be implementing happy eyeballs where you fail > > over to other addresses with sub second delays when there are multiple > > addresses to try. There is nothing wrong with having multiple connection > > attempts happening in parallel. > > > > Mucking with DNS responses is only covering up application defects. > > Filtering > > A records also breaks DNS64 for applications that are using DNSSEC as they > > need to see the A records as well as the AAAA responses. > > > > Notify the application vendor they they have a denial-of-service bug. > > > > Mark > > > > > > > On 2 May 2018, at 9:00 am, Kim Ebert <[email protected]> wrote: > > > > > > Hi All, > > > > > > I recently came across an issue where the user program preferred IPv4 > > > over IPv6. This is a problem because I've created a network that is IPv6 > > > only. I'm currently using NAT64 to provide access to services that don't > > > have any IPv6 access. > > > > > > Now this particular program could work if the DNS records didn't provide > > > A records. I would rather do everything I can as an admin to make the > > > network just work instead of waiting for all of the end user programs to > > > be fixed, so I started working on filter-a functionality to filter out A > > > responses. Currently implementation status is that it sort of works, > > > which is further than I expected to get in 2 days. > > > > > > I wonder if anyone in the community is interested in me sharing the work, > > > and if I should go to the effort to publish the effort? > > > > > > If anyone is curious, the offending program is nodejs and npm. > > > > > > Thanks, > > > > > > Kim > > > _______________________________________________ > > > Please visit https://lists.isc.org/mailman/listinfo/bind-users to > > > unsubscribe from this list > > > > > > bind-users mailing list > > > [email protected] > > > https://lists.isc.org/mailman/listinfo/bind-users > > > > > > -- > > Mark Andrews, ISC > > 1 Seymour St., Dundas Valley, NSW 2117, Australia > > PHONE: +61 2 9871 4742 INTERNET: [email protected] > > > > > > -- > Mark Andrews, ISC > 1 Seymour St., Dundas Valley, NSW 2117, Australia > PHONE: +61 2 9871 4742 INTERNET: [email protected] > -- Mark Andrews, ISC 1 Seymour St., Dundas Valley, NSW 2117, Australia PHONE: +61 2 9871 4742 INTERNET: [email protected] _______________________________________________ Please visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from this list bind-users mailing list [email protected] https://lists.isc.org/mailman/listinfo/bind-users

