IPv6 RAs with Same Prefix from Multiple Devices – Network Implications

icmpv6ipv6router

We engineer embedded systems (electronics & software), running our own OS with LWIP (a network stack). The device is configured to be IPv6 only (means: no IPv4 is available). These embedded systems run a webserver. A browser must be able to open web pages served by them. Unfortunately, Chrome, Firefox and others do NOT support link local IPv6 addresses as URLs (see e.g. Mozilla and W3C).

Our embedded systems will be connected to the existing network infrastructure (Ethernet). Today, most of our customers networks do not have proper IPv6 setup. Namely, no IPv6 router is available and therefore, our embedded systems and the customers computers (Windows, Linux, etc.) will only have a "link local address" (LLA). As stated above, using LLA is not possible with most browsers.

To workaround this, the best solution we can think of is to 'advertise' a prefix to let all computers and our embedded systems generate "unique local addresses" (ULA). The problem is that for some (most?) customers, it won't be easy to convince their IT to reconfigure their network for IPv6 and setup their router to advertise such a prefix in the near future. Therefore, we came up with the following idea: Let our embedded system send out router advertisements (RAs) propagating a prefix like FDxx:xxxx:xxxx::xxxx/64. With that solution, all hosts in the same network will automatically create ULAs and thus every computers browser will be able to connect to our embedded systems. (Note: The idea is that all our embedded systems propagate exactly the same prefix)

Waht do you think about that idea? Specifically:

  • It's a common use case that several of our embedded systems will be added to the same network. Therefore, multiple systems will send out RAs with the same prefix. So far, Googling and reading RFCs, I coulnd't find any statement whether it's allowed to have more than one "router" sending out RAs with the same prefix. Is it allowed? Is it considered to be "ok" doing that?
  • Our embedded systems are not really "router devices". In fact, these are "automation devices" which control motors, actors and sensors. Is it "ok" that non-router devices send out RAs?
  • Also: We's send out RAs ONLY to cause all hosts in the network to generate a ULA. We effectively do NOT want any host to use our embedded systems as router/gateway. Is that ok?

Best Answer

A non-router shouldn't send RAs, but they can. If you say the lifetime to zero devices won't use it as a default gateway. The problem is advertising a single prefix by all your devices on all networks. Don't assume that users will only have one subnet and that users won't want to connect to your devices across different subnets.

The best solution is to use multicast name resolution like mDNS and LLMNR. Take a look at https://serverfault.com/questions/352632/name-resolution-in-an-ipv6-network-without-a-dns-server.

Another option is to provide a simple IPv6 "dummy router" to your customers that advertises a prefix, where each router advertises a different ULA prefix that is printed on the outside. It can advertise a default gateway lifetime of 0 so it doesn't become a default gateway. Customers that have IPv6 already can use their own prefix, and customers without IPv6 can use/buy/etc your dummy router and use its unique ULA prefix.

Related Topic