Centos - Adding IPv6 Addresses to Your Linux Server

Adding IPv6 Addresses to Your CentOS Linux Server

We initially do not assign Internet Protocol version 6 (IPv6) addresses to your Linux server. If you need to add IPv6 addresses, you must configure your server to recognize them.

CentOS supports IPv6 out of box. All you have to do is update two files and turn on networking.

To Add IPv6 Addresses to Your Linux Server

  1. Connect to your server via SSH.
  2. Switch to the root user.

You need to update and configure following files for IPv6 configuration:

  1. /etc/sysconfig/network : Turn on networking in this file.
  2. /etc/sysconfig/network-scripts/ifcfg-eth0 : Set default IPv6 router IP and server IP address in this file.

Open /etc/sysconfig/network file, enter:
# vi /etc/sysconfig/network
Append following line:

NETWORKING_IPV6=yes

Open /etc/sysconfig/network-scripts/ifcfg-eth0 (1st network config file)
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
Append following config directives for IPv6:

IPV6INIT=yes
IPV6ADDR=<IPv6-IP-Address>
IPV6_DEFAULTGW=<IPv6-IP-Gateway-Address>

Here is my sample file with mix of IPv4 and IPv6 assigned to eth0:

DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
HWADDR=00:30:48:33:bc:33
IPADDR=202.54.1.5
GATEWAY=202.54.1.3
NETMASK=255.255.255.248
IPV6INIT=yes
IPV6ADDR=2607:f0d0:1002:0011:0000:0000:0000:0002
IPV6_DEFAULTGW=2607:f0d0:1002:0011:0000:0000:0000:0001

Where,

  • NETWORKING_IPV6=yes|no – Enable or disable global IPv6 initialization.
  • IPV6INIT=yes – Enable or disable IPv6 configuration for all interfaces.
  • IPV6ADDR=2607:f0d0:1002:0011:0000:0000:0000:0002 – Specify a primary static IPv6 address here.
  • IPV6_DEFAULTGW=2607:f0d0:1002:0011:0000:0000:0000:0001 – Add a default route through specified gateway.

Save and close the file. Restart networking:
# service network restart
Verify your configuration by pinging ipv6 enabled site such as ipv6.google.com:
$ ping6 ipv6.google.com
Sample output:

PING ipv6.google.com(2001:4860:b002::68) 56 data bytes
64 bytes from 2001:4860:b002::68: icmp_seq=1 ttl=59 time=93.2 ms
64 bytes from 2001:4860:b002::68: icmp_seq=2 ttl=59 time=95.0 ms
64 bytes from 2001:4860:b002::68: icmp_seq=3 ttl=59 time=94.2 ms
64 bytes from 2001:4860:b002::68: icmp_seq=4 ttl=59 time=95.2 ms
64 bytes from 2001:4860:b002::68: icmp_seq=5 ttl=59 time=94.8 ms
64 bytes from 2001:4860:b002::68: icmp_seq=6 ttl=59 time=95.1 ms
64 bytes from 2001:4860:b002::68: icmp_seq=7 ttl=59 time=93.3 ms
64 bytes from 2001:4860:b002::68: icmp_seq=8 ttl=59 time=93.8 ms

--- ipv6.google.com ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7010ms
rtt min/avg/max/mdev = 93.268/94.376/95.268/0.799 ms

Traces path to a network host, enter:
$ traceroute6 ipv6.google.com
Print default IPv6 routing table, enter:
$ route -n -A inet6
Sample output:

Kernel IPv6 routing table
Destination                                 Next Hop                                Flags Metric Ref    Use Iface
::1/128                                     ::                                      U     0      42531       1 lo      
::62.41.14.144/128                          ::                                      U     0      0        1 lo      
::127.0.0.1/128                             ::                                      U     0      0        1 lo      
::/96                                       ::                                      U     256    0        0 sit0    
2001:470:1f04:55a::2/128                    ::                                      U     0      15201       1 lo      
2001:470:1f04:55a::/64                      ::                                      U     256    0        0 sit1    
fe80::4833:22f4/128                         ::                                      U     0      0        1 lo      
fe80::212:3fff:fe75:fa0d/128                ::                                      U     0      0        1 lo      
fe80::/64                                   ::                                      U     256    0        0 eth0    
fe80::/64                                   ::                                      U     256    0        0 sit1    
ff00::/8                                    ::                                      U     256    0        0 eth0    
ff00::/8                                    ::                                      U     256    0        0 sit1    
::/0                                        ::                                      U     1      0        0 sit1    

Once IPv6 configured properly, you need to setup IPv6 firewall using ip6tables command under Linux.

 
 

Add Feedback