VNF не пересылает пакеты, отправленные от клиента в Openstack, с использованием VNFF Graph
Я пытаюсь пропинговать от клиента до 8.8.8.8 через VNF1, поэтому я использую VNFFG, чтобы заставить ICMP-трафик клиента проходить через VNF1 перед выходом в Интернет.
После того, как я применил правило VNFFG в openstack, VNF1 может видеть пакет MPLS, инкапсулированный из пакета ICMP клиента с помощью openstack, когда я использую tcpdump, но таблица пересылки VNF1 не получает никаких пакетов для продолжения пересылки этого пакета.
Этот пакет виден на VNF1:
09:15:12.161830 MPLS (label 13311, exp 0, [S], ttl 255) IP 12.0.0.58 > 8.8.8.8: ICMP echo request, id 10531, seq 15, length 64
Я перехватываю этот пакет, вижу, что содержимое может быть прочитано (без шифрования), а src, dst MAC принадлежат Клиенту и VNF1 соответственно.
Это мой шаблон VNFFG:
tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
description: Sample VNFFG template
topology_template:
node_templates:
Forwarding_path1:
type: tosca.nodes.nfv.FP.TackerV2
description: demo chain
properties:
id: 51
policy:
type: ACL
criteria:
- name: block_icmp
classifier:
network_src_port_id: 0304e8b5-6c37-4634-bde2-1351cdee5134 #CLIENT PORT ID
ip_proto: 1
- name: block_udp
classifier:
network_src_port_id: 0304e8b5-6c37-4634-bde2-1351cdee5134 #CLIENT PORT ID
ip_proto: 17
path:
- forwarder: VNF1
capability: CP1
groups:
VNFFG1:
type: tosca.groups.nfv.VNFFG
description: Traffic to server
properties:
vendor: tacker
version: 1.0
number_of_endpoints: 1
dependent_virtual_link: [VL1]
connection_point: [CP1]
constituent_vnfs: [VNF1]
members: [Forwarding_path1]
Это мой дескриптор VNF:
tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
description: Demo example
metadata:
template_name: sample-tosca-vnfd
topology_template:
node_templates:
VDU1:
type: tosca.nodes.nfv.VDU.Tacker
capabilities:
nfv_compute:
properties:
num_cpus: 1
mem_size: 2 GB
disk_size: 20 GB
properties:
image: VNF1
availability_zone: nova
mgmt_driver: noop
key_name: my-key-pair
config: |
param0: key1
param1: key2
CP1:
type: tosca.nodes.nfv.CP.Tacker
properties:
management: true
order: 0
anti_spoofing_protection: false
requirements:
- virtualLink:
node: VL1
- virtualBinding:
node: VDU1
VL1:
type: tosca.nodes.nfv.VL
properties:
network_name: my-private-network
vendor: Tacker
FIP1:
type: tosca.nodes.network.FloatingIP
properties:
floating_network: public
requirements:
- link:
node: CP1
Я использовал эту команду для развертывания правила VNFGG:
tacker vnffg-create --vnffgd-template vnffg_test.yaml forward_traffic
Я не знаю, может ли проблема исходить из ключа, который я определил для VNF1, потому что я не знаю, для чего используются param0: key0 и param1: key1 и где они?
Как я могу решить, чтобы VNF пересылал эти пакеты.