给甲骨文小鸡增加IPv6地址,首先需要在甲骨文实例管理页分配IPv6地址
面板操作
下面进入正题!登陆甲骨文后台!
① 前往 网络 -> 虚拟云网络 -> 选择查看网络详情
② 其实在控制台面板上主要下面4个步骤。
③ 打开 CIDR块 -> 点击 【添加 IPv6 CIDR块】
添加成功后如图!
④ 打开子网,编辑子网信息
勾选 启用IPV6 CIDR块
输入框随便输入一个值,例如:ee
点击保存!
这里如果出现下面的错误:NotAuthorizedOrNotFound,请移步到 处理错误 部分内容解决!成功后再继续这里的步骤!!
⑤ IPv6 CIDR块添加成功!如图!
⑥ 路由表 -> 路由表详情 -> 添加路由规则,如图设置即可!
目的地 CIDR 块:::/0 (注意2个冒号)
目标类型:Internet网关
⑦ 安全列表 -> 查看详情 -> 添加出站规则 和 添加 入站规则
目的地类型:CIDR
目的地 CIDR:::/0 (注意2个冒号)
IP协议:所有协议
⑧ 查看服务器实例详情 -> 附加的 VNIC -> 点击VNIC详情
右侧可见多了一个IPv6地址 的选项!点击 【分配 IPv6 地址】
⑨ 可以指定一个你想要的IPv6格式,不指定会随机分配一个。
⑩ 至此面板上的操作基本上完成了
机器配置
Debian
/Ubuntu
/CentOS
目前甲骨文有两种框架的机型AMD
和ARM
两种框架的网卡名称是不一样的,注意分辨即可
输入以下命令重新获取IP
地址:
# AMD 框架 dhclient -6 ens3 # ARM 框架 dhclient -6 enp0s3
使用以下命令测试IPv6
通信是否正常;
ping6 ipv6.google.com
注意:机器重启后IPv6
会失效,再次输入以上命令即可重新获取。
如果是Ubuntu/Debian系统,想要开机自启动可以编辑interfaces文件,手动开启Dhcp。
配置开机自动获取IPv6地址
编辑interfaces文件:
nano /etc/network/interfaces
在文本最后面添加:
iface xxx inet6 dhcp
上面的xxx
看一下文本里小框框里面是啥(如下图),就更换成啥。我这里是enp0s3,所以我在最后面添加的就是iface enp0s3 inet6 dhcp
,enp0s3是我服务器的网络接口。每个服务器的接口名字都有所不同。看着自己文本上面那个接口输入就行了。
最后ctrl+x
保存,y
确认。最后reboot
重启。
开机后的系统就可以自动获取到ipv6地址了
查看ipv6地址:
ip -6 route show
ping测试ipv6是否通畅:
ping ipv6.google.com
可以ping通就说明一切就绪!
修改系统dns,实现v4v6双栈dns解析
虽然只设置ipv4 dns也可以解析网络,但是我们ipv6地址都有了,设置一下ipv6 dns更加完美
nano /etc/resolv.conf
在最后添加一行,如下图
nameserver 2001:4860:4860::8888
最后ctrl+x
保存,y
确认
-------------------------
处理错误
添加IPv6的时候 提示:NotAuthorizedOrNotFound
确认已开通实例没勾选启用 IPv6,并且已经过了 30 天试用期的账号会出现这个错误。可以重新创建子网并勾选 IPv6(IPv4 会变),也可以通过辅助手段直接添加 IPv6。
下面说一下解决方案!首选打开 Cloud Shell 执行命令!
① 获取 compartment_id
oci iam compartment list
② 查询子网(subnet)列表,获取到子网ID(红框内) subnet_id
PS:下面命令中的 [compartment_id] 替换为 上面的 compartment_id,不保留[]符号哦~
oci network subnet list --compartment-id [compartment_id]
③ 获取 cidr,如图获取CIDR块地址!
④ 更新子网(subnet)信息
将[subnet_id] 和 [cidr] 替换一下!
oci network subnet update --subnet-id [subnet_id] --ipv6-cidr-block [cidr]
如果执行提示错误:The requested ipv6CidrBlock 2603:c1:3:b500::/56 is invalid: Subnet can have only 64 bit IPv6 CIDRs.
需要修改一下cidr,2603:c1:3:b500::/56 -> 2603:c1:3:b500::/64
然后再执行一下就成功啦!