IPv6 Configuration Items
Coleman et al.,
Here is a list of configuration items and issues that we should consider for the IPv6 extensions of the Network Port object, elaborated by my colleague Andy Schlumberger:
BACnet/IPv6 network ports need the following information to be configured correctly:
- UDP port to use (default is 47808 or 0xBAC0)
- The VMAC address (can be derived from device instance, but maybe not known in BVLL stack layer)
- Multicast address information with following variants
o Variable multicast scope address: The scope (Link local = 2, Organization local = 8)
o Or Unicast prefix based: The Group ID (the network prefix can be learned)
- The binding options to the underlying network interface:
o A fixed IPv6 address if static manual configuration, the socket will be bound to that address, or
o The network interface identifier with automatic setting, but:
§ Choose the most preferred (global, unique local unicast, or link local) address to bind and observe IPv6 address changes to rebind and do VMAC binding updates. Auto configuration provides multiple addresses with lease times
§ Choose the wild card address (IADRRANY) to bind to. This is interface independent for most OS. IP agnostic features like IPv4 mapped IPv6 addresses are possible and the source address is unclear.
- If manually configured:
o IPv6 address (global unicast or unique local unicast)
o Network prefix (default 48 or 64 )
o Router IPv6 address
- If auto configuration (default in most OS):
o Stateless (router advertisement)
o Stateful (DHCPv6)
o No routers present (not fully supported by all OS IPv6 stacks)
o Both stateless or stateful (based on router advertisement capabilities)
o The IP address may be unknown to the application, so how do support VMAC resolution messages?
Other considerations that may lead to one or the other configuration item:
For the underlying OS the following variants exist:
- IPv4 only (no IPv6 installed)
- Dual stack (IPv4 and IPv6) are both available and running with auto configuration as default
- IPv6 only (IPv4 disabled)
How to configure IPv6 multicast sending and receiving ?
- Windows requires the interface adapter to send out information
- What is the source address chosen by the OS in this case?
- Does this depend on the used socket?
o If yes, the socket binding may determine the source address
o If no, source address selection algorithm in OS determines behavior.
How does VMAC table learn the VMAC to IPv6 address mapping if multiple IPv6 addresses are possible?
- The general approach for IPv6 (via DNS) is that getAddrInfo() returns an ordered list of IP addresses with the preferred one on the top of the list.
- How to deal with this?
- In the current design of address resolution this is not possible or at least not foreseen.
- The source address may this be arbitrary, resulting in changing entries in the VMAC table.
Modern dual stacks offer the following:
- Agnostic sockets (IPv4 and IPv6 communication)
- Individual sockets (application can choose)
- Agnostic IP address handling (getAddrInfo()) and string to sockaddr() conversions.
- Multi-homing (several possible ways to destination)
This may provide useful input for the IPv6 addendum Network Port additions, or at least may help in verification. Also, we may discuss this in the upcoming teleconference.
Siemens Switzerland Ltd
Building Technologies Division
IC BT CPS GDT AS
CH-6301 Zug, Switzerland
Tel: +41 (41) 724 33 87
Mob: +41 (79) 561 77 23
Fax: +41 (41) 723 48 94
Note: This e-mail may contain confidential information. If you have received this e-mail without being the proper recipient, you are hereby notified that any review, copying or distribution is strictly prohibited. Please inform us immediately and destroy the original transmittal. Any views or opinions presented are solely those of the author of this e-mail and do not necessarily represent those of Siemens Switzerland Ltd, unless otherwise specifically stated.