Parece asumido que los dispositivos 802.1ad no rellenan la etiqueta externa EtherType con 0x88A8. Se requiere un cambio especial en user data para interoperar con estos dispositivos.

Supongamos que existe un VRF de administración configurado con S-Tag: igual a 20 y C-Tag: igual a 100. Edite la sección vrf_vlan de /etc/config/gatewayd tal como se indica a continuación. Asimismo, establezca resp_mode en 1 para reducir la comprobación de SD-WAN Gateway y permitir las tramas Ethernet que tengan el valor incorrecto de 0x8100 para EtherType en el encabezado externo.

#cloud-config
hostname: #_Hostname_#
password: #_Console_Password_#
chpasswd: {expire: False}
ssh_pwauth: True
ssh_authorized_keys:
- #_SSH_public_Key_#
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:
- path: "/var/lib/cloud/scripts/per-boot/config_gateway"
permissions: '0777'
content: |
#!/usr/bin/python
import json
import commands
is_activated = commands.getoutput("/opt/vc/bin/is_activated.py")
if "True" in str(is_activated):
print "Gateway already activated"
exit
commands.getoutput("/opt/vc/bin/activate.py -s #_VCO_# #_Activation_Key_# ")
 
### 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]["resp_mode"] = "1" 
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_OR_DISABLED_#
with open("/opt/vc/etc/dpdk.json", "w") as jsonFile:
jsonFile.write(json.dumps(data,sort_keys=True,indent=4, separators=(",", ": ")))
final_message: "==== Cloud-init completed ===="
power_state:
delay: "+1"
mode: reboot
message: Bye Bye
timeout: 30
condition: True