...
Code Block | ||
---|---|---|
| ||
0010000000000001 0000010001110000 0001111100001001 0000000100110001 0000000000000000 0000000000000000 0000000000000000 0000000000001001 |
...
Code Block | ||
---|---|---|
| ||
2001:0470:1f09:0131:0000:0000:0000:0009 |
IPv6 address can be further simplified by removing leading zeros in each block:
Code Block | ||
---|---|---|
| ||
2001:470:1f09:131:0:0:0:9 |
As you can see IPv6 addresses can have long sequences of zeros. These contiguous sequence can be compressed to ::
Code Block | ||
---|---|---|
| ||
2001:470:1f09:131::9 |
...
Note |
---|
Zero compression can only be used once. Otherwise, you could not determine the number of 0 bits represented by each instance of a double-colon |
IPv6 prefix is written in address/prefix-length
format. Compared to IPv4 decimal representation of network mask cannot be used. Prefix examples:
Code Block | ||
---|---|---|
| ||
2001:470:1f09:131::/64
2001:db8:1234::/48
2607:f580::/32
2000::/3 |
Address Types
Several IPv6 address types exist:
...
A link-local address is also required for IPv6 Neighbor Discovery processes.Note:
Info |
---|
If interface is set as bridge port, interface specific link-local address is removed leaving only bridge link-local address |
Special Purpose Address
Address | Description |
---|---|
Unspecified address (::/128) | Never assigned to an interface or used as a destination address, used only to indicate the absence of an address. Equivalent to IPv4 0.0.0.0 address. |
loopback address (::1/128) | Used to identify a loopback interface, enabling a node to send packets to itself. It is equivalent to the IPv4 loopback address of 127.0.0.1. |
...
Here is the table of reserved IPV6 addresses for multicastingmulticast:
Address | Description |
---|---|
FF02::1 | The all-nodes address used to reach all nodes on the same link. |
FF02::2 | The all-routers address used to reach all routers on the same link. |
FF02::5 | The all-Open Shortest Path First (OSPF) routers address used to reach all OSPF routers on the same link. |
FF02::6 | The all-OSPF designated routers address used to reach all OSPF designated routers on the same link. |
FF02::1:FFXX:XXXX | The solicited-node address used in the address resolution process to resolve the IPv6 address of a link-local node to its link-layer address. The last 24 bits (XX:XXXX) of the solicited-node address are the last 24 bits of an IPv6 unicast address. |
...
Multicast addresses can be used to discover nodes in a network. For example, discover all nodes
Code Block | ||
---|---|---|
| ||
mrz@bumba:/media/aaa/ver$ ping6 ff02::1%eth0
PING ff02::1%eth0(ff02::1) 56 data bytes
64 bytes from fe80::21a:4dff:fe5d:8e56: icmp_seq=1 ttl=64 time=0.037 ms
64 bytes from fe80::20c:42ff:fe0d:2c38: icmp_seq=1 ttl=64 time=4.03 ms (DUP!)
64 bytes from fe80::20c:42ff:fe28:7945: icmp_seq=1 ttl=64 time=5.59 ms (DUP!)
64 bytes from fe80::20c:42ff:fe49:fce5: icmp_seq=1 ttl=64 time=5.60 ms (DUP!)
64 bytes from fe80::20c:42ff:fe21:f1ec: icmp_seq=1 ttl=64 time=5.88 ms (DUP!)
64 bytes from fe80::20c:42ff:fe72:a1b0: icmp_seq=1 ttl=64 time=6.70 ms (DUP!) |
...
discover all routers
Code Block | ||
---|---|---|
| ||
mrz@bumba:/media/aaa/ver$ ping6 ff02::2%eth0
PING ff02::2%eth0(ff02::2) 56 data bytes
64 bytes from fe80::20c:42ff:fe28:7945: icmp_seq=1 ttl=64 time=0.672 ms
64 bytes from fe80::20c:42ff:fe0d:2c38: icmp_seq=1 ttl=64 time=1.44 ms (DUP!) |
...
Anycast Address
Anycast address is a new type of address incorporated in IPv6.
...
mage above illustrates conversation process. When the result is converted to colon-hexadecimal notation, we get the interface identifier 20C:42FF:FE28:7945. As the result, corresponds link-local address is
Code Block | ||
---|---|---|
| ||
FE80::20C:42FF:FE28:7945/64 |
In RouterOS, if the eui-64 parameter of an address is configured, the last 64 bits of that address will be automatically generated and updated using interface identifier. The last bits must be configured to be zero for this case. Example:
Code Block | ||
---|---|---|
| ||
[admin@MikroTik] > ipv6 address add address=fc00:3::/64 interface=ether3 eui-64=yes
[admin@MikroTik] > ipv6 address print
Flags: X - disabled, I - invalid, D - dynamic, G - global, L - link-local
# ADDRESS INTERFACE ADVERTISE
...
5 G fc00:3::20c:42ff:fe1d:3d4/64 ether3 yes
[admin@MikroTik] > interface ethernet set ether3 mac-address=10:00:00:00:00:01
[admin@MikroTik] > ipv6 address print
Flags: X - disabled, I - invalid, D - dynamic, G - global, L - link-local
# ADDRESS INTERFACE ADVERTISE
...
5 G fc00:3::1200:ff:fe00:1/64 ether3 yes |
...
Configuring IPv6 Address
This example shows how to set up simple addressing with global IPv6 addresses between two routers.
R1 configuration:
?
...
1 |
|
Check address list
Code Block | ||
---|---|---|
| ||
[admin@R1] /ipv6 address> print
Flags: X - disabled, I - invalid, D - dynamic, G - global, L - link-local
# ADDRESS FROM-POOL INTERFACE ADVERTISE
0 G 2001:db8::1/64 ether1 no
3 DL fe80::219:d1ff:fe39:3535/64 ether1 no |
...
Notice that our added address has G flag indicated that this address can be globally routed. We also have link local address on the interface which is created automatically for every IPv6 capable interface.
Test connectivity
Code Block | ||
---|---|---|
| ||
[admin@R1] /ipv6 address> /ping 2001:DB8::2
HOST SIZE TTL TIME STATUS
2001:db8::2 56 64 12ms echo reply
2001:db8::2 56 64 0ms echo reply
sent=2 received=2 packet-loss=0% min-rtt=0ms avg-rtt=6ms max-rtt=12ms |
...