在很早之前的《RH134小结(六)nmcli配置IPv4与IPv6网络》中就已提到过IPv6的配置,目前在工作中就遇到主机上需要配置ipv6地址的问题,在主机上存在多块网卡和多个网段的情况下,就会升级路由配置,而且又涉及原有ipv4地址不变,这里有相对有点复杂了,而本篇就结合SUSE和redhat提下ipv6的路由配置。ipv4下的静态路由配置,我在《linux配置静态路由》一篇中已经提及,这里就不再赘述。

一、SuSE下的配置

SuSE下的配置比较统一,无论SuSE11、SuSE12还是SuSE15,基本都是固定的几个配置文件配置下,就可以比较简单的搞定,而且后的12、15版本使用的wickd,没有像redhat7或redhat8一样使用NetworkManager,给人的使用感觉上也比较简便。

 1# 直接ipaddr2增加ipv6地址即可
 2361way.com:/etc/sysconfig/network # cat  ifcfg-eth4
 3BOOTPROTO='static'
 4STARTMODE='onboot'
 5IPADDR1='192.168.177.185'
 6NETMASK1='255.255.255.0'
 7IPADDR2=2409:8028:08F1:1203::185/64
 8# 增加两个default,一个是ipv4的,一个是ipv6的
 9zabbix@361way.com:~> cat /etc/sysconfig/network/routes
1010.211.0.0 10.211.95.1 255.255.0.0 eth2
1110.211.6.0 192.168.177.1 255.255.255.0
1210.212.0.0 10.211.95.1 255.255.0.0 eth2
13200.200.0.0 10.211.95.1 255.255.0.0 eth2
1410.73.0.0 10.211.95.1 255.255.0.0 eth2
15default 192.168.177.1 - -
16default  2409:8028:8F1:1203::1 - -
17# down/up接口,并检测生效
18361way.com:/etc/sysconfig/network # ifdown eth4
19361way.com:/etc/sysconfig/network # ifup eth4
20361way.com:/etc/sysconfig/network # ping6 2409:8028:08F1:1203::1
21PING 2409:8028:08F1:1203::1(2409:8028:8f1:1203::1) 56 data bytes
2264 bytes from 2409:8028:8f1:1203::1: icmp_seq=1 ttl=64 time=6.42 ms

二、redhat下的配置

通过查看官方的文档:sec-configuring_static_routes_in_ifcfg_files 及查看/etc/sysconfig/network-scripts/network-functions-ipv6 和 /etc/sysconfig/network-scripts/ifup-routes 文件的调用情况,可以发现在rhel下有好几处可以配置路由信息。对于ipv6的配置,推荐的做法是修改/etc/sysconfig/network-scripts/route6-,具体配置方法是:

1# cat /etc/sysconfig/network-scripts/route6-ethX
2<IPv6 destination/prefix> via <IPv6 gateway> dev <interface>

当然也可以通过/etc/sysconfig/network-scripts/rule6-ethX配置rule规则,不过rule这个是不常用的。

也可以参照ipv4下的路由配置文件进行路由配置。主机上的IPv6配置和SUSE下直接使用IPADDR2不同,其配置方法如下:

 1[root@XXXXX network-scripts]# cat ifcfg-eth0
 2TYPE=Ethernet
 3BOOTPROTO=none
 4DEFROUTE=yes
 5IPV4_FAILURE_FATAL=no
 6IPV6INIT=yes   //该条很重要
 7IPV6_AUTOCONF=no
 8IPV6_DEFROUTE=yes
 9IPV6_FAILURE_FATAL=no
10NAME=eth0
11DEVICE=eth0
12ONBOOT=yes
13DNS1=127.0.0.1
14IPV6ADDR=fe80::2/64
15IPV6_DEFAULTGW=XXXXX
16ZONE=
17IPADDR=XXXXX
18PREFIX=24
19GATEWAY=XXXXX
20IPV6_PRIVACY=no

IPV6INIT=yes这条很重要,代表着启用ipv6地址。rhel下IPv6配置使用的是IPV6ADDR参数,另外只有一块网卡配置ipv6地址的,可以不配置路由文件,只在网卡配置上加上IPV6_DEFAULTGW也可以。除此之外,也可以在/etc/sysconfig/network 文件中进行指定:

1NETWORKING_IPV6=yes
2IPV6_DEFAULTGW=XXXX:YYYY::ZZZ

三、路由相关指令

ipv6路由增加和查看,可以使用ip指令,也可以使用nmcli指令。操作如下:

1# route del -A inet6 default gw XXXX:YYYY::ZZZ dev ethX
2or
3# ip -6 route del ::/0 via XXXX:YYYY::ZZZdev ethX
4# route add -A inet6 default gw XXXX:YYYY::ZZZ dev ethX metric 2000
5or
6# ip -6 route add ::/0 via XXXX:YYYY::ZZZdev ethX metric 2000
7# ip -6 r show | grep default
8default via XXXX:YYYY::ZZZ dev ethX metric 2000

nmcli指令如下:

1# nmcli connection modify eth0 +ipv4.routes 192.168.122.0/24 ipv4.gateway 10.10.10.1   配置路由
2# nmcli device show eth0  或者不加接口名

参考页机:

https://access.redhat.com/solutions/3640111

https://access.redhat.com/solutions/347693

https://access.redhat.com/solutions/29240