为单个实例配置更大的网络掩码

本页介绍了如何通过配置自定义映像来创建具有较大网络掩码(与子网的网络掩码大小相同)的 Compute Engine 实例。

或者,您也可以创建一个子网,为连接到该子网的所有计算实例配置更大的网络掩码。为了便于维护并获得对辅助范围的支持,我们建议您通过子网配置更大的实例网络掩码,而不是创建自定义映像。

如果创建子网不适合您的使用情形,您可以创建自定义映像,并使用此映像创建具有更大网络掩码的计算实例。DHCP 服务器会使用子网的网络掩码(而非 /32)配置实例接口,并且实例可以直接与连接到子网主要 IPv4 范围的其他实例进行通信。次要 IPv4 范围不受影响。

如需详细了解计算实例网络掩码,请参阅计算实例网络掩码

准备工作

  1. 请参阅以下有关 Compute Engine 映像的指南:
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Compute Engine API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

所需的角色

如需获得创建自定义映像和实例所需的权限,请让您的管理员为您授予项目的 Compute Instance Admin (v1) (role/compute.instanceAdmin.v1) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

创建配置了 MULTI_IP_SUBNET 选项的自定义映像

创建自定义映像时,您可以通过多种方式指定源映像。以下示例展示了如何基于映像系列创建自定义映像。如需详细了解如何创建自定义映像,请参阅创建自定义映像

gcloud CLI

gcloud compute images create IMAGE_NAME \
    --source-image-family=SOURCE_IMAGE_FAMILY \
    --source-image-project=PROJECT \
    --guest-os-features=MULTI_IP_SUBNET

替换以下内容:

  • IMAGE_NAME:自定义映像的名称。
  • SOURCE_IMAGE_FAMILY:您要用于创建此映像的源映像系列。例如 debian-13
  • PROJECT:映像系列所在的源项目,例如 debian-cloud 或项目 URI。

通过 MULTI_IP_SUBNET 自定义映像创建计算实例

如需创建使用自定义映像的计算实例,请指定您创建的映像。如需详细了解如何创建实例,请参阅从自定义映像创建实例

gcloud CLI

gcloud compute instances create INSTANCE_NAME \
    --image=IMAGE_NAME \
    --zone=ZONE \
    --subnet=SUBNET_NAME

替换以下内容:

  • INSTANCE_NAME:实例的名称。
  • IMAGE_NAME:您创建的自定义映像的名称。
  • ZONE:要在其中创建实例的可用区。
  • SUBNET_NAME:要将实例连接到的子网的名称。

验证配置

创建计算实例后,您可以验证 DHCP 服务器是否在实例上配置了正确的网络掩码,以及实例是否收到了 ARP 回复。您只需使用一个实例即可验证 ARP 回复,因为 Google Cloud 始终会针对子网范围内的 IP 地址发送回复

以下步骤展示了如何在 Linux 实例上验证配置。

  1. 使用 SSH 连接到您的实例。
  2. 检查网络接口配置,验证子网掩码是否与子网的子网掩码(而非 /32)匹配。

    ip addr show
    

    在输出中,找到网络接口的 inet 行,例如 ens4

  3. 验证实例是否可以接收子网中其他 IP 地址的 ARP 回复。您可以使用 ping 命令触发 ARP 请求。您可以选择未使用的 IP 地址 - 即使没有对 ping 请求的回复,Google Cloud 也会发送 ARP 回复。

    ping -c 3 OTHER_IP_ADDRESS_IN_SUBNET
    

    OTHER_IP_ADDRESS_IN_SUBNET 替换为同一子网中的 IP 地址。此 IP 地址无需处于使用状态。

  4. 检查 ARP 表,查看与另一个 IP 地址关联的 MAC 地址。

    ip neighbor
    

    输出会显示另一个 IP 地址的 MAC 地址。