Snow Family 设备上计算实例的网络配置 - AWS Snowball Edge 开发者指南

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Snow Family 设备上计算实例的网络配置

在 Snow Family 设备上启动计算实例后,必须通过创建网络接口为其提供 IP 地址。Snow 系列设备支持两种网络接口,一种是虚拟网络接口,另一种是直接网络接口。

虚拟网络接口 (VNI)-虚拟网络接口是连接到 Snow EC2 Family 设备上兼容实例的标准网络接口。无论您是否还使用直接网络接口,都必须VNI为每个EC2兼容实例创建一个。经过的流量VNI受您设置的安全组保护。您只能VNIs与用于控制 Snow Family 设备的物理网络端口关联。

注意

VNI将使用与管理 Snow Family 设备相同的物理接口(RJ45、SFP + 或QSFP)。在与用于设备管理的物理接口不同的物理接口VNI上创建,可能会导致意想不到的结果。

直接网络接口 (DNI)-直接网络接口 (DNI) 是一项高级网络功能,支持多播流、传递路由和负载平衡等用例。在不进行任何中间转换或筛选的情况下为实例提供第 2 层网络访问权限,您可以在 Snow 系列设备的网络配置上获得更高的灵活性并提高网络性能。DNIs支持VLAN标签和自定义MAC地址。安全组DNIs不保护开启的流量。

在 Snowball Edge 设备上,DNIs可以与RJ45SFP、或QSFP端口关联。每个物理端口最多支持 63 个DNIs。DNIs不必与用于管理 Snow Family 设备的同一个物理网络端口相关联。

注意

Snowball Edge 存储经过优化(具有EC2计算功能)的设备不支持。DNIs

Snow Family 设备DNIs或设备VNIs上的先决条件

在配置VNI或之前DNI,请确保已满足以下先决条件。

  1. 确保您的设备已通电,并且您的一个物理网络接口(例如RJ45端口)已通过 IP 地址连接。

  2. 获取与您在 Snow 系列设备上使用的物理网络接口关联的 IP 地址。

  3. 配置 Snowball Edge 客户端。有关更多信息,请参阅 为 Snowball Edge 客户端配置配置文件

  4. 配置 AWS CLI。有关更多信息,请参阅《 AWS Command Line Interface 用户指南》AWS CLI中的《入门》。

  5. 解锁设备。

  6. 在设备上启动EC2兼容的实例。您将VNI与该实例关联。

  7. 使用 Snowball Edge 客户端运行该命令。describe-device该命令的输出将提供物理网络接口的列表IDs。有关更多信息,请参阅 查看 Snow Family 设备的状态

  8. 标识您要使用的物理网络接口的 ID 并记下它。

在 Snow Family 设备上设置虚拟网络接口 (VNI)

确定物理网络接口的 ID 后,您可以使用该物理接口设置虚拟网络接口 (VNI)。使用以下步骤设置 aVNI. 在创建之前,请务必执行先决任务VNI。

创建VNI并关联 IP 地址
  1. 使用 Snowball Edge 客户端运行该命令。create-virtual-network-interface以下示例显示使用两种不同的 IP 地址分配方法(DHCPSTATIC)运行此命令。该DHCP方法使用动态主机配置协议 (DHCP)。

    snowballEdge create-virtual-network-interface \ --profile profile-name --physical-network-interface-id s.ni-abcd1234 \ --ip-address-assignment DHCP //OR// snowballEdge create-virtual-network-interface \ --profile profile-name --physical-network-interface-id s.ni-abcd1234 \ --ip-address-assignment STATIC \ --static-ip-address-configuration IpAddress=192.0.2.0,Netmask=255.255.255.0

    该命令返回一个包含 IP 地址的JSON结构。记下该 IP 地址,以便在稍后的流程中与该ec2 associate-address AWS CLI 命令一起使用。

    每当你需要这个 IP 地址时,都可以使用 Snowball Edge Client 命令 Snow describe-virtual-network-interfaces ball Edge 客户端命令或 AWS CLI 命令aws ec2 describe-addresses来获取它。

  2. 使用 AWS CLI 将 IP 地址与EC2兼容实例相关联,用您的值替换红色文本:

    aws ec2 associate-address --public-ip 192.0.2.0 --instance-id s.i-01234567890123456 --endpoint http://Snow Family device physical IP address:8008

在 Snow Family 设备上设置直接网络接口 (DNI)

注意

直接网络接口功能将于 2021 年 1 月 12 日当天或之后推出,并且适用于所有可用 Snow Family 设备 AWS 区域 的地方。

在 Snow Family 设备DNI上安装的先决条件

在设置直接网络接口 (DNI) 之前,必须执行先决条件部分中的任务。

  1. 在设置之前,请先执行必备任务DNI。有关说明,请参阅 Snow Family 设备DNIs或设备VNIs上的先决条件

  2. 此外,您必须在设备上启动实例VNI,创建实例并将其与该实例关联。有关说明,请参阅 在 Snow Family 设备上设置虚拟网络接口 (VNI)

    注意

    如果您通过 in-the-field 软件更新为现有设备添加了直接联网,则必须重新启动设备两次才能完全启用该功能。

创建DNI并关联 IP 地址
  1. 通过运行以下命令创建直接网络接口并将其连接到EC2与 Amazon 兼容的实例。下一步需要设备MAC的地址。

    create-direct-network-interface [--endpoint endpoint] [--instance-id instanceId] [--mac macAddress] [--physical-network-interface-id physicalNetworkInterfaceId] [--unlock-code unlockCode] [--vlan vlanId]

    OPTIONS

    --endpoint <endpoint> 要将此请求发送到的端点。您的设备的终端节点将是URL使用https方案,后面是 IP 地址。例如,如果您设备的 IP 地址为 123.0.1.2,则您的设备的端点将是 https://123.0.1.2。

    --instance-id <instanceId>要连接接口的EC2兼容实例 ID(可选)。

    --mac <macAddress>设置网络接口MAC的地址(可选)。

    --physical-network-interface-id <physicalNetworkInterfaceId> 用于创建新虚拟网络接口的物理网络接口 ID。您可以使用 describe-device 命令确定 Snowball Edge 上可用的物理网络接口。

    --vlan <vlanId>设置VLAN为接口分配的(可选)。指定后,从该接口发送的所有流量都将使用指定 VLAN ID 进行标记。针对指定 VLAN ID 对传入流量进行过滤,并在传递到实例之前删除所有VLAN标签。

  2. 在创建DNI并将其与您的兼容实例关联后,您必须在与 Amazon EC2 EC2 兼容的实例中进行两项配置更改。

    • 首先是进行更改,确保发送给与EC2兼容实例VNI关联的数据包通过 eth0 发送。

    • 第二项更改将您的直接网络接口配置为在启动时使用静态 IP DCHP 或静态 IP。

    以下是适用于亚马逊 Linux 2 和 CentOS Linux 的 shell 脚本的示例,这些脚本可进行这些配置更改。

    Amazon Linux 2
    # Mac address of the direct network interface. # You got this when you created the direct network interface. DNI_MAC=[MAC ADDRESS FROM CREATED DNI] # Configure routing so that packets meant for the VNI always are sent through eth0. PRIVATE_IP=$(curl -s http://169.254.169.254/latest/meta-data/local-ipv4) PRIVATE_GATEWAY=$(ip route show to match 0/0 dev eth0 | awk '{print $3}') ROUTE_TABLE=10001 echo "from $PRIVATE_IP table $ROUTE_TABLE" > /etc/sysconfig/network-scripts/rule-eth0 echo "default via $PRIVATE_GATEWAY dev eth0 table $ROUTE_TABLE" > /etc/sysconfig/network-scripts/route-eth0 echo "169.254.169.254 dev eth0" >> /etc/sysconfig/network-scripts/route-eth0 # Query the persistent DNI name, assigned by udev via ec2net helper. # changable in /etc/udev/rules.d/70-persistent-net.rules DNI=$(ip --oneline link | grep -i $DNI_MAC | awk -F ': ' '{ print $2 }') # Configure DNI to use DHCP on boot. cat << EOF > /etc/sysconfig/network-scripts/ifcfg-$DNI DEVICE="$DNI" NAME="$DNI" HWADDR=$DNI_MAC ONBOOT=yes NOZEROCONF=yes BOOTPROTO=dhcp TYPE=Ethernet MAINROUTETABLE=no EOF # Make all changes live. systemctl restart network
    CentOS Linux
    # Mac address of the direct network interface. You got this when you created the direct network interface. DNI_MAC=[MAC ADDRESS FROM CREATED DNI] # The name to use for the direct network interface. You can pick any name that isn't already in use. DNI=eth1 # Configure routing so that packets meant for the VNIC always are sent through eth0 PRIVATE_IP=$(curl -s http://169.254.169.254/latest/meta-data/local-ipv4) PRIVATE_GATEWAY=$(ip route show to match 0/0 dev eth0 | awk '{print $3}') ROUTE_TABLE=10001 echo from $PRIVATE_IP table $ROUTE_TABLE > /etc/sysconfig/network-scripts/rule-eth0 echo default via $PRIVATE_GATEWAY dev eth0 table $ROUTE_TABLE > /etc/sysconfig/network-scripts/route-eth0 # Configure your direct network interface to use DHCP on boot. cat << EOF > /etc/sysconfig/network-scripts/ifcfg-$DNI DEVICE="$DNI" NAME="$DNI" HWADDR="$DNI_MAC" ONBOOT=yes NOZEROCONF=yes BOOTPROTO=dhcp TYPE=Ethernet EOF # Rename DNI device if needed. CURRENT_DEVICE_NAME=$(LANG=C ip -o link | awk -F ': ' -vIGNORECASE=1 '!/link\/ieee802\.11/ && /'"$DNI_MAC"'/ { print $2 }') ip link set $CURRENT_DEVICE_NAME name $DNI # Make all changes live. systemctl restart network