Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

39.7.4. Open vSwitch(OVS)是否正确配置?

您必须在其中一个 OVS pod 上运行 ovs-vsctlovs-ofctl 命令。

要列出 OVS pod,请输入以下命令:

$ oc get pod -n openshift-sdn -l app=ovs

检查两端的 Open vSwitch 网桥。将 <ovs_pod_name > 替换为其中一个 OVS pod 的名称。

$ oc exec -n openshift-sdn <ovs_pod_name> -- ovs-vsctl list-br
br0

上一命令应返回 br0

您可以列出 OVS 知道的所有端口:

$ oc exec -n openshift-sdn <ovs_pod_name> -- ovs-ofctl -O OpenFlow13 dump-ports-desc br0
OFPST_PORT_DESC reply (OF1.3) (xid=0x2):
 1(vxlan0): addr:9e:f1:7d:4d:19:4f
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max
 2(tun0): addr:6a:ef:90:24:a3:11
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max
 8(vethe19c6ea): addr:1e:79:f3:a0:e8:8c
     config:     0
     state:      0
     current:    10GB-FD COPPER
     speed: 10000 Mbps now, 0 Mbps max
 LOCAL(br0): addr:0a:7f:b4:33:c2:43
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max

特别是,所有活跃的 pod 的 vethX 设备应当列为端口。

接下来,列出该网桥中配置的流:

$ oc exec -n openshift-sdn <ovs_pod_name> --  ovs-ofctl -O OpenFlow13 dump-flows br0

根据您使用的 ovs-subnetovs-multitenant 插件,结果会稍有不同,但您可以查找的一些一般操作:

  1. 每个远程节点都应该有一个与 tun_src=<node_IP_address& gt;(用于来自该节点的 VXLAN 流量)和另一流(包括操作 set_field:<node_IP_address>->tun_dst )匹配的流(用于向该节点传出的 VXLAN 流量)。
  2. 每个本地 pod 都应该有与 arp_spa=<pod_IP_address > 和 arp_tpa=<pod_IP_address >(用于该 pod 的传入和传出 IP 流量)匹配的流,以及与 nw_IP_address > 和 nw_dst=<pod_IP_address >(用于该 pod 的传入和传出 IP 流量)匹配的流。

如果缺少流,请查看 第 39.10 节 “读取日志” 部分。

39.7.4.1. iptables 配置是否正确?

检查 iptables-save 的输出,确保您未过滤流量。但是,OpenShift Container Platform 在正常操作过程中设置 iptables 规则,因此无法意外地看到相关的条目。