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

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

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. 欧文斯
      欧文斯 回复

      Windows 10Chrome 89.0.4389.128来自 福建 的大神

      两台 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. 欧文斯
      欧文斯 回复

      Windows 10Chrome 89.0.4389.128来自 福建 的大神

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

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

        Windows 10Chrome 90.0.4430.212来自 湖北 的大神

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

        1. 欧文斯
          欧文斯 回复

          Windows 10Chrome 89.0.4389.128来自 福建 的大神

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

        2. 欧文斯
          欧文斯 回复

          Windows 10Chrome 89.0.4389.128来自 福建 的大神

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

  4. e
    e 回复

    Windows 10Chrome 91.0.4472.77来自 美国 的大神

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

    1. 欧文斯
      欧文斯 回复

      Windows 10Chrome 89.0.4389.128来自 福建 的大神

      icon_exclaim.gif

  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