Red Hat Training
A Red Hat training course is available for OpenShift Container Platform
39.7.4. Open vSwitch (OVS) は正しく設定されているか ?
OVS Pod のいずれかで ovs-vsctl および ovs-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-subnet または ovs-multitenant プラグインのどちらを使用しているかに応じて結果は若干異なりますが、以下のような一般的な設定を確認することができます。
-
すべてのリモートノードには
tun_src=<node_IP_address>に一致するフロー (ノードからの着信 VXLAN トラフィック) およびアクションset_field:<node_IP_address>->tun_dstを含む別のフロー (ノードへの発信 VXLAN トラフィック) が設定されている必要があります。 -
すべてのローカル Pod には
arp_spa=<pod_IP_address>およびarp_tpa=<pod_IP_address>に一致するフロー (Pod の着信および発信 ARP トラフィック) と、nw_src=<pod_IP_address>およびnw_dst=<pod_IP_address>に一致するフロー (Pod の着信および発信 IP トラフィック) が設定されている必要があります。
フローがない場合は、「ログの読み取り」 セクションを参照してください。
39.7.4.1. iptables 設定に誤りがないか ?
iptables-save の出力をチェックし、トラフィックにフィルターを掛けていないことを確認します。OpenShift Container Platform は通常の操作時に iptables ルールを設定するため、ここにエントリーが表示されていても不思議なことではありません。