Cisco routers do not have IPv6 routing enabled by default. To configure IPv6 on a Cisco routers, you need to do two things:
- enable IPv6 routing on a Cisco router using the ipv6 unicast-routing global configuration command. This command globally enables IPv6 and must be the first command executed on the router.
- configure the IPv6 global unicast address on an interface using the ipv6 address address/prefix-length [eui-64] command. If you omit omit the eui-64 parameter, you will need to configure the entire address manually. After you enter this command, the link local address will be automatically derived.
Here is an IPv6 configuration example:
How to configure the IPv6 address on Mac OS X 10.6? Configure a global IPv6 address on the interface, or if you don't have a global prefix then use ULA.
We can verify that the IPv6 address has been configured by using the show ipv6 interface Gi0/0 command:
From the output above we can verify two things:
- the link local IPv6 address has been automatically configured. Link local IP addresses begin with FE80::/10 and the interface ID is used for the rest of the address. Because the MAC address of the interface is 00:01:42:65:3E01, the calculated address is FE80::201:42FF:FE65:3E01.
- the global IPv6 address has been created using the modified EUI-64 method. Remember that IPv6 global addresses begin with 2000::/3. So in our case, the IPv6 global address is 2001:BB9:AABB:1234:201:42FF:FE65:3E01.
We will also create an IPv6 address on another router. This time we will enter the whole address:
Notice that the IPv6 address is in the same subnet as the one configured on R1 (2001:0BB9:AABB:1234/64). We can test the connectivity between the devices using ping for IPv6:
As you can see from the output above, the devices can communicate with each other.
This step by step by guide to configure IPv6 address is validated on RHEL and CentOS 7.
IPv6 can act as a replacement for the IPv4 network protocol. The major problem it solves is the exhaustion of IPv4 addresses by using a much larger network address space. It also provides a number of enhancements and new features for network configuration management and support for future protocol changes.
The key reason IPv6 is not yet in wide deployment is that the core protocol does not have a simple way for systems that only have IPv6 addresses to communicate with systems that only have IPv4 addresses.
An IPv6 address is a 128-bit number, normally expressed as eight colon-separated groups of four hexadecimal nibbles (half-bytes). Each nibble represents four bits of the IPv6 address, so each group represents 16 bits of the IPv6 address.
To make it easier to write IPv6 addresses, leading zeros in a colon-separated group do not need to be written. However at least one nibble must be written in each field. Zeros which follow a non zero nibble in the group do not need to be written.
Since addresses with long strings of zeros are common, combine one or more groups of consecutive zeros with exactly one ::
block.
Notice that under these rules 2001:1:1:1443::400
would be another less convenient way to write the example address. But it is a valid representation of the same address, and this can confuse administrators new to IPv6.
Some tips for writing consistently readable addresses
- Always suppress all the leading zeros in a group
- Use
::
to shorten as much as possible. If two runs of zeros are equal in length, shorten the leftmost run of zeros by preference. - Although it is allowed, do not use
::
to shorten one group of zeros, Use:0:
instead, and save::
for runs of zeros longer than a single group. - Always use lowercase letters for hexadecimal numbers
a
throughf
.
Pre-requisite before starting to configure IPv6 address
Make sure that IPv6 is enable on your node. Look out for below entry in your sysctl configuration
This will list the IPv6 status for the default value and per interface value.
Here “0
” means IPv6 is in active on our node, if the above returns “1
” then it means IPv6 is disable on your node. So if the IPv6 is disable then your IPv6 configuration will not work.
Configure Ipv6 Manual Mac Pro
Configure Ipv6 Manually Mac
I have already written an article with steps to enable or disable IPv6
Comparison of nm-setting and ifcfg-* directives
The following table maps some of the key NetworkManager settings name relevant to IPv6 connections to ifcfg-*
directives.
nmcli con mod | ifcfg-* file | Effect |
---|---|---|
ipv6.method manual | IPV6_AUTOCONF=no | IPv6 is configured statically |
ipv6.method auto | IPV6_AUTOCONF=yes | Will configure network settings using SLAAC from router advertisements. |
ipv6.method dhcp | IPV6_AUTOCONF=no DHCPV6C=yes | Will configure network settings by using DHCPv6, but not SLAAC |
ipv6 . addresses '2001:db8::a/64 2001:db8::1' | IPV6ADDR=2001:db8::a/64 IPV6_DEFAULTGW=2001:db8::1 | Sets static IPv6 Address and Gateway |
ipv6.dns . . . | DNS0=. . . | Modify /etc/resolv.conf to use this nameserver |
ipv6.dns-search example.com | DOMAIN=example.com | Modify /etc/resolv.conf to use to use this domain in the search directive |
ipv6.ignore-auto-dns true | IPV6_PEERDNS=no | Ignore DNS server information from the DHCP server |
connection.autoconnect yes | ONBOOT=YES | Automatically activates the connection at boot |
connection.id eth0 | NAME=eth0 | The name of this connection |
connection.interface-name eth0 | DEVICE=eth0 | The connection is bound to this network interface with this name |
802-3-ethernet.mac-address . . . | HWADDR=. . . | The connection is bound to the network interface with this MAC Address |
Configure IPv6 address using Network Manager.
Open Network Manager Console from your Linux node
Select Edit a Connection
and click on Ok
Next look out for your Ethernet card on which you wish to configure IPv6 address. If your NIC card does not appear on the list then you can add a new device
. Since for me my device (eno50
) exists, so I will select the device and select Edit
This will bring you the main configuration page where you must give all the details to configure IPv6 address. Since I do not want to add IPv4 address to the same Ethernet device, I have disabled the IPv4
option.
Provide the IPv6 address/subnet
and the gateway
. Make sure you select Automatically Connect
Lastly click OK
to exit the utility.
Next restart the network services to activate the changes
Now let us check the network configuration of eno50
So looks like I was able to successfully configure my interface with IPv6 address.
Validate the connectivity by pinging the IPv6 gateway
So I am able to connect to my gateway which means my IPv6 configuration was successful.
Configure IPv6 address using CLI
The following command will add a new connection for the interface eno49
, which will auto connect at startup, getting IPv4 networking information using DHCPv4. It will also get IPv6 networking settings by listening for router advertisements on the locallink.
The below command configures the eno49
interface statically using the IPv6 address and network prefix 2001:1:1:1443::433/122
and default IPv6 gateway 2001:1:1:1443::43F
, but it still auto connects at startup and saves its configuration into /etc/sysconfig/network-scripts/ifcfg-eno49
.
Let us validate our configuration by pinging the gateway using eno49
interface
Again with the CLI looks like the steps are successful for me.
Modify existing IPv6 configuration
In the below command we are changing the IPv6 address of our interface eno49
from 2001:1:1:1443::433 to 2001:1:1:1443::434
, while the gateway remains the same.
Restart the eno49
interface
Next bring the the interface
Validate the new IP address for eno49
device
Check the connectivity from eno49
to it’s gateway
Check the configuration file for eno49
Next restart the network services to activate the changes
I hope the steps from the article to configure IPv6 address on Linux was helpful. Let me know your suggestions and feedback using the comment section.