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. Kylin
    Kylin 回复

    Windows 10Chrome 90.0.4430.93来自 香港 的大神

    我自己也是这么做的,但是遇到一点问题。就是VPS上用dhclient -6获取到在网页分配的v6地址之后,ping6 google.com可以解析出地址,但是ping不通。但是两台vps互ping v6地址就没问题。自己对v6不太熟悉,大佬知道什么原因不?

    1. 欧文斯

      两台 vps 互 ping,是指不同地区的不同 VPS,还是自己账号下开的两台?

  2. Oracle Cloudですでに作成済みのネットワークに対してIPv6を有効にする方法 R11; OSAKANA TAROのメモ帳
  3. 寒夜方舟
    寒夜方舟 回复

    Windows 10Chrome 90.0.4430.212来自 新加坡 的大神

    用 chmod x /etc/rc.d/rc.local
    然后把dhclient -6扔进去就行了,开机有ipv6,虽然有点傻

    1. 欧文斯

      可以的,或者修改 DHCP 配置,把 IPv6 加进去。

      1. 寒夜方舟
        寒夜方舟 回复

        Windows 10Chrome 90.0.4430.212来自 湖北 的大神

        怎么修改DHCP配置?我这是centos7,搜了下不知道怎么修改

        1. 欧文斯

          如果是自带的 CentOS,采用的是 cloud-init 管理,所以修改这个配置即可,可以参考下这个配置 https://vircloud.net/go/cloud-init-ipv6/

        2. 欧文斯

          或者直接改网卡配置,看文章最后一节。

  4. e
    e 回复

    Windows 10Chrome 91.0.4472.77来自 美国 的大神

    DD的debian最后到 /etc/network/interfaces 添加一行 iface ens3 inet6 dhcp
    再重启网卡即可

  5. 小明
    小明 回复

    Windows 10Chrome 91.0.4472.124来自 广东 的大神

    Oracle Linux 7.9里面,还要手动添加一下上面分配那个IPv6。ens3是网络接口名称,可以通过ip addr来查看,一般都是这个。
    ip addr add 2603:xxxx:xxxx:xxxx::2333 dev ens3

  6. Oracle Cloud 甲骨文云启用原生 IPv6 地址详细教程 R11; 简单、通用、免费、双栈更香 R11; zzss.cf