VMware 合作夥伴閘道提供不同的組態選項。安裝閘道前應該先準備一張工作表。
工作表
| SD-WAN Gateway |
|
| Hypervisor | 位址/叢集名稱 |
| 儲存區 | 根磁碟區資料存放區 (建議 >40GB)
備註: 在合作夥伴閘道主機上,建議 /tmp/partition 目錄中的可用磁碟空間至少是記憶體 (RAM) 大小的兩倍。
|
| CPU 配置 | KVM/VMware 的 CPU 配置。 |
| 安裝選項 | DPDK - 此選項是可選的,依預設會啟用,以提高總流量。如果您選擇停用 DPDK,請連絡 VMware 客戶支援。 |
| OAM 網路 (可選,請參閱〈自訂配置〉) |
|
| ETH0 – 網際網路對向網路 |
|
| 遞交 (ETH1) - 網路 |
|
| 主控台存取 |
|
| NTP (可選,請參閱〈自訂組態〉小節) |
|
SD-WAN Gateway 區段
大部分 SD-WAN Gateway 區段都不言而喻。
| SD-WAN Gateway |
|
建立閘道和取得啟用金鑰
- 移至操作員 (Operator) > 閘道集區 (Gateway Pool),建立新的 SD-WAN Gateway 集區。若要在服務提供者網路中執行 SD-WAN Gateway,請勾選允許合作夥伴閘道 (Allow Partner Gateway) 核取方塊。這將啟用讓您在此閘道集區中包含合作夥伴閘道的選項。
- 移至操作員 (Operator) > 閘道 (Gateway),建立新的閘道並指派給集區。此處輸入的閘道 IP 位址,必須與閘道的公用 IP 位址 (public IP address) 相符。如果不確定,您可以從 SD-WAN Gateway 執行
curl ipinfo.io/ip,將會傳回 SD-WAN Gateway 的公用 IP。
- 記下啟用金鑰,並新增至工作表。
啟用合作夥伴閘道模式
- 移至操作員 (Operator) > 閘道 (Gateways),然後選取 SD-WAN Gateway。勾選合作夥伴閘道 (Partner Gateway) 核取方塊,以啟用合作夥伴閘道。
另有其他參數可供設定。最常用的參數如下:
通告 0.0.0.0/0 且不加密 (Advertise 0.0.0.0/0 with no encrypt)
此選項可讓合作夥伴閘道針對 SAAS 應用程式通告雲端流量的路徑。由於加密旗標已關閉,是否使用此路徑取決於客戶的商務原則組態。
第二個建議選項是將 SD-WAN Orchestrator IP 通告為 /32 並加密。
這將強制從 Edge 傳送至 SD-WAN Orchestrator 的流量採取閘道路徑。這是建議的選項,以利於預測 SD-WAN Edge 達到 SD-WAN Orchestrator 所採取的行為。
網路
上圖呈現 2-ARM 部署中的 SD-WAN Gateway。在此範例中,假設 eth0 是面向公用網路 (網際網路) 的介面,而 eth1 是面向內部網路 (遞交或 VRF 介面) 的介面。
對於網際網路對向網路,您只需要基本網路設定。
| ETH0 – 網際網路對向網路 |
|
對於遞交介面,您必須知道想要設定的遞交類型,以及「管理 VRF」的遞交組態。
| ETH1 – 遞交網路 |
|
主控台存取 (Console Access)
| 主控台存取 |
|
若要存取閘道,則必須建立主控台密碼和/或 SSH 公開金鑰。
建立 Cloud-Init
我們在工作表中定義的閘道組態選項會用於 cloud-init 組態中。Cloud-init 組態由兩個主要組態檔組成,即中繼資料檔案和使用者資料檔案。中繼資料包含閘道的網路組態,而使用者資料包含閘道軟體組態。此檔案提供資訊來識別要安裝的 SD-WAN Gateway 執行個體。
以下是 Meta_data 和 User_data 檔案的範本。
將工作表中的資訊填入範本。必須更換所有 #_VARIABLE_#,另外請檢查任何 #ACTION#
instance-id: #_Hostname_# local-hostname: #_Hostname_#
network-interfaces: |
auto eth0
iface eth0 inet static
address #_IPv4_Address_#
mac_address #_mac_Address_#
netmask #_IPv4_Netmask_#
gateway #_IPv4_Gateway_#
dns-nameservers
#_DNS_server_primary_#
#_DNS_server_secondary_#
auto eth1
iface eth1 inet static
metric '13'
address #_MGMT_IPv4_Address_#
mac_address #_MGMT_mac_Address_#
netmask #_MGMT_IPv4_Netmask_#
gateway #_MGMT_IPv4_Gateway_#
dns-nameservers
#_DNS_server_primary_#
#_DNS_server_secondary_#
#cloud-config
hostname: #_Hostname_#
password: #_Console_Password_#
chpasswd:
expire: false
ssh_authorized_keys:
- #_SSH_public_Key_#
ssh_pwauth: true
velocloud:
vcg:
activation_code: #_Activation_Key_#
vco: #_VCO_#
runcmd:
- "echo \"[]\" > /opt/vc/etc/vc_blocked_subnets.json"
- "sed -iorig \"s/wan=\\\".*/wan=\\\"eth0 eth1\\\"/\" /etc/config/gatewayd-tunnel"
- /var/lib/cloud/scripts/per-boot/config_gateway
- "sleep 10"
- "/opt/vc/bin/vc_procmon restart"
write_files:
-
content: |
#!/usr/bin/python
import json
### EDIT GATEWAYD ###
with open("/etc/config/gatewayd", "r") as jsonFile:
data = json.load(jsonFile)
data["global"]["vcmp.interfaces"] = ["eth0"]
data["global"]["wan"] = ["eth1"]
# NOTE FOR HAND OFF IT CAN BE "QinQ (0x8100)" "QinQ (0x9100)" "none" "802.1Q" "802.1ad"
data["vrf_vlan"]["tag_info"][0]["mode"] = "#_Handoff_"
data["vrf_vlan"]["tag_info"][0]["interface"] = "eth1"
data["vrf_vlan"]["tag_info"][0]["c_tag"] = "#_C_TAG_FOR_MGMT_VRF_#"
data["vrf_vlan"]["tag_info"][0]["s_tag"] = "#_S_TAG_FOR_MGMT_VRF_"
with open("/etc/config/gatewayd", "w") as jsonFile:
jsonFile.write(json.dumps(data,sort_keys=True,indent=4, separators=(",", ": ")))
### EDIT DPDK ###
with open("/opt/vc/etc/dpdk.json", "r") as jsonFile:
data = json.load(jsonFile)
#SET 0 or 1 for enabled or DISABLED example data["dpdk_enabled"] = 0
data["dpdk_enabled"] = #_DKDP_ENABLED_(1)_OR_DISABLED_(0)_#
with open("/opt/vc/etc/dpdk.json", "w") as jsonFile:
jsonFile.write(json.dumps(data,sort_keys=True,indent=4, separators=(",", ": ")))
path: /var/lib/cloud/scripts/per-boot/config_gateway
permissions: "0755"
final_message: "==== Cloud-init completed ===="
power_state:
condition: true
delay: "+1"
message: "Bye Bye"
mode: reboot
timeout: 30
- VMware 建議您針對所有生產 Orchestrator 設定適當的完整網域名稱 (FQDN),以便可以為其發行適當的 TLS 憑證。
- 如果使用 Orchestrator 的 IP 位址進行啟用是唯一的選項,請使用下列範例,指示 Edge 略過 TLS 驗證。
commands.getoutput("/opt/vc/bin/ activate.py -s myvco.example.com -i #_activation_key_#") - 不建議將此組態用於生產用途,強烈建議您盡可能針對 Orchestrator 的主機名稱重新啟動。
/etc/network/interfaces) 區段下方的有效網路組態。使用 Windows/Mac 複製貼上功能時,有時會因為導入「智慧型引號」而損毀檔案。請執行下列命令,以確保不受智慧型引號所影響。
sed s/[”“]/'"'/g /tmp/user-data > /tmp/user-data_new
建立 ISO 檔案
完成檔案後,您必須將其封裝為 ISO 映像。此 ISO 映像用作虛擬機器的虛擬組態 CD。此 ISO 映像 (稱為 vcg01-cidata.iso) 是在 Linux 系統上使用下列命令所建立:
genisoimage -output vcg01-cidata.iso -volid cidata -joliet -rock user-data meta-data
如果您在 MAC OSX 上,請改為使用下列命令:
mkisofs -output vcg01-cidata.iso -volid cidata -joliet -rock {user-data,meta-data}
OVA 和 VMware 安裝時將使用此 iso 檔案,稱為 #CLOUD_INIT_ISO_FILE#。