Snow Family 裝置上運算執行個體的網路組態 - AWS Snowball Edge 開發人員指南

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Snow Family 裝置上運算執行個體的網路組態

在 Snow Family 裝置上啟動運算執行個體後,您必須建立網路介面,以為其提供 IP 地址。Snow Family 裝置支援兩種網路介面,即虛擬網路介面和直接網路介面。

虛擬網路介面 (VNI) – 虛擬網路介面是標準網路介面,用於連線至 Snow Family 裝置上的EC2相容執行個體。無論您是否使用直接網路介面,都必須VNI為每個 EC2相容的執行個體建立 。通過 的流量受到您設定的安全群組VNI保護。您只能VNIs與您用來控制 Snow Family 裝置的實體網路連接埠建立關聯。

注意

VNI 將使用與用來管理 Snow Family 裝置相同的實體介面 (、RJ45SFP+ 或 QSFP)。在與用於裝置管理的實體介面不同的 VNI上建立 ,可能會導致非預期的結果。

直接網路介面 (DNI) – 直接網路介面 (DNI) 是一種進階網路功能,可啟用多點傳送串流、暫時路由和負載平衡等使用案例。透過為執行個體提供第 2 層網路存取,而不需要任何中間轉譯或篩選,您可以提高 Snow Family 裝置的網路組態彈性,並改善網路效能。DNIs 支援VLAN標籤和自訂MAC地址。上的流量DNIs不受安全群組保護。

在 Snowball Edge 裝置上, DNIs 可以與 RJ45、 SFP或 QSFP 連接埠建立關聯。每個實體連接埠最多支援 63 個 DNIs。DNIs 不必與您用來管理 Snow Family 裝置的相同實體網路連接埠相關聯。

注意

Snowball Edge 儲存最佳化 (具有EC2運算功能) 裝置不支援 DNIs。

Snow Family VNIs 裝置上 DNIs或 的先決條件

設定 VNI或 之前DNI,請確定您已完成下列先決條件。

  1. 請確定您的裝置有電源,而且像RJ45連接埠一樣的其中一個實體網路介面已連接至 IP 地址。

  2. 取得與您在 Snow Family 裝置上使用之實體網路介面相關聯的 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)。使用下列程序設定 VNI。建立 之前,請務必執行先決條件任務VNI。

建立 IP 地址VNI並建立關聯
  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 用戶端命令 describe-virtual-network-interfaces Snowball 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 裝置上設定 Direct Network Interface (DNI)

注意

直接網路介面功能可在 2021 年 1 月 12 日或之後使用,而且可在 Snow Family 裝置提供的所有 AWS 區域 中使用。

DNI Snow Family 裝置上的 先決條件

設定直接網路介面 (DNI) 之前,您必須先執行先決條件區段中的任務。

  1. 在設定 之前,請先執行先決條件任務DNI。如需說明,請參閱 Snow Family VNIs 裝置上 DNIs或 的先決條件

  2. 此外,您必須在裝置上啟動執行個體、建立 VNI,並將其與執行個體建立關聯。如需說明,請參閱 在 Snow Family 裝置上設定虛擬網路介面 (VNI)

    注意

    如果您透過執行 in-the-field 軟體更新將直接聯網新增至現有裝置,則必須重新啟動裝置兩次,才能完全啟用此功能。

建立DNI和關聯 IP 地址
  1. 建立直接網路介面,並執行下列命令將其連接至 Amazon EC2相容執行個體。您需要裝置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 並將其與EC2相容執行個體建立關聯之後,您必須在 Amazon EC2相容執行個體內進行兩項組態變更。

    • 首先是變更,確保透過 eth0 傳送適用於 與EC2相容執行個體VNI相關聯的封包。

    • 第二個變更會將您的直接網路介面設定為在開機時使用 DCHP或靜態 IP。

    以下是進行這些組態變更的 Amazon 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