Document assume reader is familiar with basics of IPv6, so we are directly getting into IPv6 packet flow.
We are going to discuss mainly four packet exchange happening between client and router which is fundamental to all IPv6 addressing. Neighbor Discovery (ND) mechanism contains mainly 4 packet exchange and all of them works based on ICMP v6. We need to make sure ICMP v6 is allowed in controller for IPv6 to work in a Aruba controller.
1. Router Solicitation
2. Router Advertisement
3. Neighbor Solicitation
4. Neighbor Advertisement
RS (Router Solicitation) :-
If a client is IPv6 capable
first packet goes out of client will be RS. This is send to ff02::2 (Multicast
group for All Routers capable of providing RA). RS is not mandatory in a IPv6 scenario, there is always a possibility to client get an RA before it send a RS to the network.
RA (Router Advertisement) :-
Send from Router which will be send to ff02::1 (Multicast
group for all nodes ). There are two purpose for RA
1.
Providing the prefix for the client to generate
IPv6 address. RA provides first 64 bits in the IPv6 address
2.
Gateway for the client. Client gateway will be
always link local address of router.
Unsolictated RA :- Router can
be configured in such a way that it will send RA periodically. Getting an IP in
this mechanism is called Unsolictated RA. Router will not be waiting for RS to
come to send an RA in this case.
Solicitated RA :- In this case
router respond back only if it gets an RS from client.
DHCP v6
In DHCP v6 (Stateful mechanism) we still need RA as the IPv6 DHCP don’t have
the default gateway option. Gateway for the client remains the link local
address of the router
In this case there will be a m bit in RA which will be set which says RA
is not capable of providing you prefix but only the gateway. Once client see m
bit is set it triggers the DHCPv6 process.
Neighbour Solicitation (NS)
:-
Mainly 2 type of NS is there for two purposes
1.
Duplicated address detection – Same as GARP in
IPv4
2.
Keep alive – ARP in IPv4
Duplicate Address
Detection :
Client send this packet to ff02:1::<last 24 bit of client
mac> (Multicast group) where ideally no one else would have joined. If some
client gets this packet he will check the target field and verify the IPv6 address in case of duplication. Source
address of this packet will be either null or link local address of the client.
In case of Aruba we normally flood this packet in air so it will go to all the
clients. Response comes to this packet only if someone is already using this
Keep Alive
Send to the link local address of router. If it is reachable
it will respond back with an acknowledgement. Which is called “Solicitated NA”.
This packet will be periodic to make sure the router is still alive.
Neighbour Advertisement:-
Comes as a response
to NS if someone has this IP address. Else keepalive response.
Unsolictated NA:-
Once client gets an IPv6 address he sends an NA packet to
ff02::1 (All nodes), this used by other clients to update their ARP table.
There is no response for this packet. This NA will be send using both link local
address and global unicast address.
Duplicate Address
For statically assigned IP IPv4 dont try for duplicate address detection, but in case of IPv6 it send an NA even for statically assigned IPs. In case of interface address configuration controller mark the duplicate address as "dupe" in braces if controller finds a duplicate address in the network.
EUI-64
EUI-64 is a mechanism used by IPv6 nodes to make the address unique. Aruba controllers also support this. Take an example where 2 nodes are connected there is always a chance by mistake we give same IPv6 in both end statically. To avoid this while giving IPv6 address on interface add EUI-64 to the IPv6 address. In this scenario controller will generate IPv6 address automatically using its mac address. Interface will take only prefix part of the statically configured IP, rest is generated same as the way client generate its IP.
Normally for link local address we append hex form of vlan ID to make 48 bit mac address to 64 bit but in case of global address it append FFFE in the middle of mac address to convert it to 64 bit. The actually configured static IPv6 address wont be displayed anywhere in controller instead the newly generated IPv6 address. Show running config it show the prefix with eui-64 so user need to understand interface IP is configured using the mac address.
Duplicate Address
For statically assigned IP IPv4 dont try for duplicate address detection, but in case of IPv6 it send an NA even for statically assigned IPs. In case of interface address configuration controller mark the duplicate address as "dupe" in braces if controller finds a duplicate address in the network.
EUI-64
EUI-64 is a mechanism used by IPv6 nodes to make the address unique. Aruba controllers also support this. Take an example where 2 nodes are connected there is always a chance by mistake we give same IPv6 in both end statically. To avoid this while giving IPv6 address on interface add EUI-64 to the IPv6 address. In this scenario controller will generate IPv6 address automatically using its mac address. Interface will take only prefix part of the statically configured IP, rest is generated same as the way client generate its IP.
Normally for link local address we append hex form of vlan ID to make 48 bit mac address to 64 bit but in case of global address it append FFFE in the middle of mac address to convert it to 64 bit. The actually configured static IPv6 address wont be displayed anywhere in controller instead the newly generated IPv6 address. Show running config it show the prefix with eui-64 so user need to understand interface IP is configured using the mac address.
1. No concept of Broadcast in IPv6 most communication is through multicast
2. Introduction of RA, an option for stateless IP addressing
3. DHCP server is not mandatory in the network
4. No fragmentation in intermediate nodes, TCP MSS is enabled by default. This results in a better throughput in the network
5. Header is much simpler compared to IPv4
6. No option field in header and extension header is introduced as replacement. Which result is a 40 bit fixed header.
Aruba IPv6 Best Practices
1. Defaults
values would work and apply for majority of use cases.
2. IPv6 should be globally enabled.
3. Ensure “valid user” session acl does not block ipv6 traffic.
4. Enable BCMC optimization: knob under interface VLAN. This knob is recommended to be enabled at most times as it drops a lot of random IPv6 multicast traffic.
5. There must not be any ACLs that drop ICMPv6/DHCPv6 traffic. If the deployment is such that only SLAAC is being used, then it is acceptable to drop DHCPv6 traffic.
6. If controller is used to provide RA
-IPv6 vlan interface address must be configured that maps to the prefixes configured.
-3 prefixes limit is enforced
2. IPv6 should be globally enabled.
3. Ensure “valid user” session acl does not block ipv6 traffic.
4. Enable BCMC optimization: knob under interface VLAN. This knob is recommended to be enabled at most times as it drops a lot of random IPv6 multicast traffic.
5. There must not be any ACLs that drop ICMPv6/DHCPv6 traffic. If the deployment is such that only SLAAC is being used, then it is acceptable to drop DHCPv6 traffic.
6. If controller is used to provide RA
-IPv6 vlan interface address must be configured that maps to the prefixes configured.
-3 prefixes limit is enforced
- It is not recommended to advertise too many prefixes in RA.
-The controller supports up to four IPv6 user entries in the user table. If a client uses more than
four IPv6 addresses at a time, the user table is refreshed with the latest four active entries
without disrupting the traffic flow. However, this may have some performance impact.