在很早之前的《RH134小结(六)nmcli配置IPv4与IPv6网络》中就已提到过IPv6的配置,目前在工作中就遇到主机上需要配置ipv6地址的问题,在主机上存在多块网卡和多个网段的情况下,就会升级路由配置,而且又涉及原有ipv4地址不变,这里有相对有点复杂了,而本篇就结合SUSE和redhat提下ipv6的路由配置。ipv4下的静态路由配置,我在《linux配置静态路由》一篇中已经提及,这里就不再赘述。
一、SuSE下的配置
SuSE下的配置比较统一,无论SuSE11、SuSE12还是SuSE15,基本都是固定的几个配置文件配置下,就可以比较简单的搞定,而且后的12、15版本使用的wickd,没有像redhat7或redhat8一样使用NetworkManager,给人的使用感觉上也比较简便。
# 直接ipaddr2增加ipv6地址即可 361way.com:/etc/sysconfig/network # cat ifcfg-eth4 BOOTPROTO='static' STARTMODE='onboot' IPADDR1='192.168.177.185' NETMASK1='255.255.255.0' IPADDR2=2409:8028:08F1:1203::185/64 # 增加两个default,一个是ipv4的,一个是ipv6的 zabbix@361way.com:~> cat /etc/sysconfig/network/routes 10.211.0.0 10.211.95.1 255.255.0.0 eth2 10.211.6.0 192.168.177.1 255.255.255.0 10.212.0.0 10.211.95.1 255.255.0.0 eth2 200.200.0.0 10.211.95.1 255.255.0.0 eth2 10.73.0.0 10.211.95.1 255.255.0.0 eth2 default 192.168.177.1 - - default 2409:8028:8F1:1203::1 - - # down/up接口,并检测生效 361way.com:/etc/sysconfig/network # ifdown eth4 361way.com:/etc/sysconfig/network # ifup eth4 361way.com:/etc/sysconfig/network # ping6 2409:8028:08F1:1203::1 PING 2409:8028:08F1:1203::1(2409:8028:8f1:1203::1) 56 data bytes 64 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-<interface>,具体配置方法是:
# cat /etc/sysconfig/network-scripts/route6-ethX <IPv6 destination/prefix> via <IPv6 gateway> dev <interface>
当然也可以通过/etc/sysconfig/network-scripts/rule6-ethX配置rule规则,不过rule这个是不常用的。
也可以参照ipv4下的路由配置文件进行路由配置。主机上的IPv6配置和SUSE下直接使用IPADDR2不同,其配置方法如下:
[root@XXXXX network-scripts]# cat ifcfg-eth0 TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes //该条很重要 IPV6_AUTOCONF=no IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=eth0 DEVICE=eth0 ONBOOT=yes DNS1=127.0.0.1 IPV6ADDR=fe80::2/64 IPV6_DEFAULTGW=XXXXX ZONE= IPADDR=XXXXX PREFIX=24 GATEWAY=XXXXX IPV6_PRIVACY=no
IPV6INIT=yes这条很重要,代表着启用ipv6地址。rhel下IPv6配置使用的是IPV6ADDR参数,另外只有一块网卡配置ipv6地址的,可以不配置路由文件,只在网卡配置上加上IPV6_DEFAULTGW也可以。除此之外,也可以在/etc/sysconfig/network 文件中进行指定:
NETWORKING_IPV6=yes IPV6_DEFAULTGW=XXXX:YYYY::ZZZ
三、路由相关指令
ipv6路由增加和查看,可以使用ip指令,也可以使用nmcli指令。操作如下:
# route del -A inet6 default gw XXXX:YYYY::ZZZ dev ethX or # ip -6 route del ::/0 via XXXX:YYYY::ZZZdev ethX # route add -A inet6 default gw XXXX:YYYY::ZZZ dev ethX metric 2000 or # ip -6 route add ::/0 via XXXX:YYYY::ZZZdev ethX metric 2000 # ip -6 r show | grep default default via XXXX:YYYY::ZZZ dev ethX metric 2000
nmcli指令如下:
# nmcli connection modify eth0 +ipv4.routes 192.168.122.0/24 ipv4.gateway 10.10.10.1 配置路由 # nmcli device show eth0 或者不加接口名
参考页机:
https://access.redhat.com/solutions/3640111