Oracle Cloud 甲骨文云启用原生 IPv6 地址详细教程 - 简单、通用、免费、双栈更香

小助手读文章 00:00 / 00:00

温馨提示:
本文所述内容具有依赖性,可能因软硬条件不同而与预期有所差异,故请以实际为准,仅供参考。

Oracle Cloud 甲骨文云在 4 月 15 日左右已经全面开放 IPv6(此前仅在 GOV 政府区域开放),所有云基础架构(Oracle Cloud Infrastructure,OCI)都支持 IPv6 。

对我们而言,简单来说,就是云主机(Compute Instance)也可以分配 IPv6 了,操作非常简单,无需重启,免费使用,支持 IPv4/IPv6 双栈的甲骨文是不是更香了?


相关文章:

Oracle Cloud 甲骨文云对象存储 ObjectStorage API(OCI)详细使用说明
Oracle Cloud 甲骨文云宣布提供终身永久免费 VPS、对象存储、数据库等服务,附教程评测


分配 IPv6 分两种情形,一是全新创建主机实例,二是已创建的实例分配 IPv6。

对于第一种情形,在创建主机实例时,勾选 IPv6 即可:

第二种情形是本文重点,大致流程是:① 分配 CIDR → ② 配置子网 → ③ 配置路由 → ④ 配置安全规则 → ⑤ 分配 IPv6,下面进行详细说明,前四个步骤在 网络 > 虚拟云网络 > 虚拟云网络详细信息 中操作,最后一个步骤在实例的 VNIC 详细信息中操作:

000.INDEX.jpg

分配 CIDR

路径:网络 > 虚拟云网络 > 虚拟云网络详细信息 > CIDR 块,直接点击添加 IPv6 CIDR 块 即可,默认会分配一个 /56 大小的 IPv6 地址块:

001.CIDR.jpg

配置子网

路径:网络 > 虚拟云网络 > 虚拟云网络详细信息 > 子网,点击子网右侧的三个点,再点击编辑:

002.SUBNET.jpg

勾选 启用 IPv6 CIDR 块,填写 00-FF 任意一个十六进制数字,然后保存,这里就会分配一个 /64 大小的 IPv6 地址块:

002.SUBNET.02.jpg

配置路由

路径:网络 > 虚拟云网络 > 虚拟云网络详细信息 > 路由表,点击添加路由规则,按截图示例设置并保存:

003.ROUTE.jpg

IPv4/IPv6 双栈要正常工作,应该要有以下两条路由(::/0、0.0.0.0/0):

003.ROUTE.02.jpg

配置安全规则

路径:网络 > 虚拟云网络 > 虚拟云网络详细信息 > 网络安全组,出站规则、入站规则都要添加,点击添加规则,按截图示例设置(开放所有)并保存:

004.RULE.jpg

IPv4/IPv6 双栈要正常工作,应该要有以下两条规则(::/0、0.0.0.0/0):

004.RULE.02.jpg

分配 IPv6

路径:计算 > 实例 > 实例详细信息 > 附加的 VNIC > VNIC 详细信息,点击 分配 IPv6 地址,在方框中填写 IPv6 地址后缀,然后点击分配即可:

005.SIGNED.jpg

测试 IPv6

现在主机实例应当已经获取到了 IPv6 地址(部分系统可能需要手动更新一下),测试一下:

006.DONE.jpg

可以看到 PING 通了,而且 PING 值非常低,极有可能跟谷歌是机房直连的。

实际测试中发现,三网没有一个机房的 IPv6 是直连的,所以没啥用?

问题点

1、NotAuthorizedOrNotFound

确认已开通实例没勾选启用 IPv6,并且已经过了 30 天试用期的账号会出现这个错误。可以重新创建子网并勾选 IPv6(IPv4 会变),也可以通过辅助手段直接添加 IPv6。

不删除子网分配 IPv6 方法,已过试用期的账号也可以实现:

I、控制台右上角点开 Cloud Shell:

打开 Cloud Shell.png

II、获取 compartment_id:

在 Cloud Shell 中输入:

oci iam compartment list

获取 ID.png

III、获取 subnet_id:

在 Cloud Shell 中输入([compartment_id]替换成上一步查询到的 compartment_id):

oci network subnet list --compartment-id [compartment_id]

获取子网 ID.png

注意,如果子网有多个的话,这里会获取多个 id,辨别一下到底操作的是哪个。

IV、获取 CIDR 块地址

001.CIDR.jpg

V、给 subnet 分配 IPv6

在 Cloud Shell 中输入([subnet_id]替换成第 III 步查询到的 subnet_id[cidr] 替换成上一步添加的 IPv6 CIDR 块,注意这里子网分配的块大小是 /64,而不是 /56):

oci network subnet update --subnet-id [subnet_id] --ipv6-cidr-block [cidr]

更新 IP.png

如图分配成功,接下来参照上面步骤配置路由、配置安全规则、分配 IPv6 等等即可。


纯命令行操作可以参考《Oracle Cloud 甲骨文云利用 API(OCI)分配并启用原生 IPv6 详细使用说明 - 提示 NotAuthorizedOrNotFound 也可以操作》,优势在于更快、更方便。

2、分配不到 IPv6 地址

即已在管理控制台按步骤操作分配了 IPv6,但是主机仍然没有 IPv6。

部分精简版的系统存在这个问题,实际上网络已经支持 IPv6,只是在最终获取 IPv6 时失败,此时我们可以直接将 IPv6 地址赋给网卡:

root@oc-kr:~# ifconfig ens3 inet6 add [IPv6]/64 up

注意将 [IPv6] 改为实际的 IPv6 地址,后缀固定是 /64,Oracle 自带 Linux 映像默认网卡都是 ens3

也可以尝试使用如下方法启用 IPv6(针对早期版本,供参考,勿照搬):

root@oc-kr:~# echo "net.ipv6.conf.all.disable_ipv6 = 0" >> /etc/sysctl.conf
root@oc-kr:~# echo "net.ipv6.conf.default.disable_ipv6 = 0" >> /etc/sysctl.conf
root@oc-kr:~# echo "net.ipv6.conf.ens3.disable_ipv6 = 0" >> /etc/sysctl.conf
root@oc-kr:~# echo "net.ipv6.conf.lo.disable_ipv6 = 0" >> /etc/sysctl.conf
root@oc-kr:~# sysctl -p
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.ens3.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
root@oc-kr:~# dhclient -6

或者直接将 IPv6 地址写到网卡配置文件中(以 CentOS 为例,供参考,勿照搬):

root@oc-kr:~# vim /etc/sysconfig/network-scripts/ifcfg-ens3

DEVICE="ens3"
BOOTPROTO="dhcp"
ONBOOT="yes"
TYPE="Ethernet"
NM_CONTROLLED="no"
IPV6_AUTOCONF="yes"
IPV6INIT="yes"
NOZEROCONF="yes"
IPV6ADDR_SECONDARIES="2001::f001/64"
ZONE=public

如果是 Ubuntu 系统,则可参考如下配置:

root@oc-kr:~# vim /etc/netplan/50-cloud-init.yaml

# This file is generated from information provided by the datasource.  Changes
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        ens3:
            dhcp4: true
            dhcp6: false
            match:
                macaddress: 02:00:17:01:2e:*
            addresses:
              - 2603:c022:8001:*:*:*:*:*/128
            set-name: ens3

注意,macaddress 后的 MAC 地址,及 addresses 后的 IPv6 地址,请改成自己申请的地址。


参考文章

1、《IPv6 on Oracle Cloud Infrastructure
2、《Oracle Cloud Infrastructure Documentation - IPv6 Addresses


ArmxMod for Typecho
个性化、自适应、功能强大的响应式主题

推广

 继续浏览关于 VPS部署教程免费ipv6oracle甲骨文云主机双栈 的文章

 本文最后更新于 2021/11/05 16:03:40,可能因经年累月而与现状有所差异

 引用转载请注明: VirCloud's Blog > 经验 > Oracle Cloud 甲骨文云启用原生 IPv6 地址详细教程 - 简单、通用、免费、双栈更香

精选评论

  1. Oracle 开启IPv6 - 璃墨的小站
  2. 阿杰
    阿杰 回复

    Mac OS X 10_15_7Safari 605.1.15来自 福建 的大神

    感谢,已开启成功! icon_wink.gif

  3. 自由
    自由 回复

    LinuxFirefox 91.0来自 广东 的大神

    感謝博主的細緻分享,我也成功開啓了IPv6!按上面步驟在網頁上操作後獲取到IPv6,但是機器裏沒有,運行
    ifconfig ens3 inet6 add [IPv6]/64 up
    後就OK了。

  4. lee
    lee 回复

    Mac OS X 10_15_7Chrome 101.0.4951.41来自 美国 的大神

    ip6地址也分配了,ping6 Google也正常,但是ping不通这个ipv6地址,什么情况啊?求大佬赐教

    1. 欧文斯

      也就是说内网访问外网是通的,但是外网没办法访问内网,这个大概率是防火墙问题,访问网页控制台或者用 cli 命令,看看是否放行 IPv6(防火墙默认只放行 IPv4)