开启IPV6
1 | 加载ipv6模块: |
这时重启网络后会生成链路本地地址(Link-local address),如图:
配置IPV6地址
手动配置
1 | ifconfig eth1 inet6 add 2001:470:18:ac4::2/64 |
自动获取
centos
1 | vim /etc/sysconfig/network-scripts/ifcfg-eth0 |
ubuntu14/16
1 | vim /etc/network/interfaces.d/eth0.cfg或者/etc/network/interfaces |
ubuntu18
1 | vim /etc/netplan/50-cloud-init.yaml |
debian
1 | vim /etc/network/interface |
OpenSUSE42.3
1 | Vim /etc/sysconfig/network/ifcfg-eth0 |
注:也可以通过dhclient -6 -d [ 网卡 ]来获取
ipv6镜像在openstack平台上相关问题
最近在openstack平台上进行镜像测试的时候,发现在ipv6网络下的一些问题。
ipv6的网络无法下发网卡配置
像centos8,openSUSE42.3镜像在ipv6的网络下,cloud-init没有下发相应的配置,导致一直获取不到ipv6的地址。通过修改cloud-init网络部分的源码来解决(/usr/lib/python2.7/site-packages/cloudinit/net/sysconfig.py)。
但是对于cloud-init是低版本的而言,没有这个文件,最后解决办法是在/var/lib/cloud/scripts/per-instance路径下,添加一个脚本,在初始化每个实例的时候才会去执行这些脚本,并且脚本只有在初始网络是ipv6的情况下才会去执行:
1 | #!/bin/bash |
因为这边都是通过ipv6有状态方式去下放ip地址,所以判断条件就写死。
没有获取到默认路由,导致无法通信
查看ipv6的路由表,发现缺少默认路由:
注:图中标红为正常主机应有现象,迭代前缺少,导致无法通信
此时:
1 | vim /etc/sysctl.conf |