On Fri, Jan 20, 2012 at 9:51 AM, Grant Edwards <[email protected]> wrote: > As you may have gathered from my posts yesterday, I'm working on > adding IPv6 to an embedded device (actually a family of serial device > servers). > > I've got the device working fine with link-local addressing, but I'm > not sure what the next phase should be. > > While some of our customers are asking for IPv6 support, I'm pretty > sure almost none of those asking are actually using IPv6 nor do they > have any plans to do so in the near future. They're either trying to > satisfy a feature checklist handed down from on high (where somebody > read an airline magazine article about IPv6), or they think that > maybe, someday, somehow, IPv6 might be useful (but they have no idea > when or how). > > It is unheard of for these devices to have a routable address, and > they're often on small networks that have no connectivity to the > outside world at all. Very occasionally they will be accessed via a > corporate WAN that involves routing betwen multple subnets. But, they > are pretty much never accessed from "The Internet" nor do they access > The Internet. > > The existing devices are used probably half the time with Ethernet MAC > addressing only (no IP). When they're used with IPv4 it's 99% static > addressing with the other 1% using DHCP. > > It's also probably relevent that the devices doesn't use a DNS server. > > Judging by the lack of support in many apps, I'm assuming people > aren't going to be using IPv6 link-local addressing (though it > corresponds very nicely to our currently common use-case involving MAC > addressing). > > What I'm wondering about is what are the most likely use cases for > IPv6 address configuration? > > 1) Almost all our customers who are using IPv4 use static addressing. > Do people configure static IPv6 addresses in devices?
When you enable IPv6 forwarding in the Linux kernel, another /proc/sys/net/ipv6/ node gets tweaked which causes interfaces to stop listening to RAs. Consequentially, Linux machines running as routers tend to get their IPv6 addresses statically configured. With client network nodes, manual configuration of static addresses is very unusual. With network appliances...I don't know. Probably static, except for some cases like printers where common names seem to have good IPv6 support, and pick up addresses from RAs. (For the love of God, people, put a firewall on your gateway. You should be, anyway, but it's more important now.) > 2) Is IPv6 router announcement sufficient for some common use cases? In a dual-stack environment, yes. Clients can pick up configuration details like DNS from IPv4 DHCP, which works fine for retrieving information about IPv6 hosts' DNS records. Windows machines won't pick up DNS details from RAs (Microsoft wants everyone to go with DHCPv6, so they've dragged their heels there), but it's my understanding that Linux machines can. (I don't know the details. that's something I should probably study before Penguicon.) Also, dual-stack environments are the ideal configuration environment; no client network should be *pure* IPv6 at this point. > 3) Is DHPCv6 commonly used? It's expected that DHCPv6 will be commonly used, particularly in large and/or enterprise environments, as DHCP can push more configuration details than RAs can. Also, stateful address assignment one of very few ways to update DNS based on DHCP client requests. > 4) The device doesn't use DNS and doesn't have a hostname, so there's > nothing to do regarding mDNS, right? mDNS is all about other machines being able to find the device. If you want the device to broadcast its location for, e.g. configuration, monitoring or diagnostic purposes, you may care. > I think I have to implment someting besides link-local addressing, and > I'm wondering what... The ULA approach discussed in the other thread might work well for you. Just make sure you can leave all that configurable for the diligent admin. Hm. It occurs to me...if these serial servers have more than one serial port per device, you might consider giving each port its own IP address. You might be able to abuse IPv6 privacy extensions' "temporary addresses" for the purpose, just leaving the addresses not-so-temporary. If I needed a multiport IP-to-serial adapter, that'd be a feature I'd love to have. -- :wq

