以kube-ovn中的ko命令为示例:
# 路由器上添加一个端口
kubectl ko nbctl lrp-add ovn-cluster ovn-cluster-underlay-subnet1 fa:1a:53:80:89:11 10.152.140.2/24
# 交换机上添加一个端口
kubectl ko nbctl lsp-add underlay-subnet1 underlay-subnet1-ovn-cluster
kubectl ko nbctl lsp-set-type underlay-subnet1-ovn-cluster router
kubectl ko nbctl lsp-set-addresses underlay-subnet1-ovn-cluster fa:54:00:c1:68:90
# 交换机和路由器互联
kubectl ko nbctl lsp-set-options underlay-subnet1-ovn-cluster router-port=ovn-cluster-underlay-subnet1
# 路由器添加路由
kubectl ko nbctl lr-route-add ovn-cluster 0.0.0.0/0 100.66.0.1
kubectl ko nbctl lr-route-add ovn-cluster 192.168.0.0/16 10.152.140.1
kubectl ko nbctl lr-route-add ovn-cluster 10.0.0.0/8 10.152.140.1
kubectl ko nbctl lr-route-add ovn-cluster 100.72.0.11 10.152.140.1
kubectl ko nbctl lr-route-list ovn-cluster
kubectl ko nbctl list Logical_Router_static_route
kubectl ko nbctl add Logical_Router_static_route 88272078-509a-4182-8199-3b235e0c0181 policy "src-ip"
kubectl ko nbctl show
kubectl ko nbctl lr-nat-list ovn-cluster
# 策略路由
kubectl ko nbctl lr-policy-list ovn-cluster
kubectl ko nbctl lr-policy-add ovn-cluster 31000 'ip4.src == 100.72.0.11' reroute 10.152.140.1
kubectl ko nbctl lr-policy-add ovn-cluster 29000 'ip4.src == $ovn.default.k8s.master_ip4' reroute 100.66.0.4
kubectl ko nbctl lr-policy-add ovn-cluster 29000 'ip4.src == $ovn.default.k8s.worker1_ip4' reroute 100.66.0.2
kubectl ko nbctl lr-policy-add ovn-cluster 29000 'ip4.src == $ovn.default.k8s.worker2_ip4' reroute 100.66.0.3
#
kubectl ko nbctl lr-policy-del ovn-cluster 29000 'ip4.src == $ovn.default.k8s.master_ip4'
kubectl ko nbctl lr-policy-del ovn-cluster 29000 'ip4.src == $ovn.default.k8s.worker1_ip4'
kubectl ko nbctl lr-policy-del ovn-cluster 29000 'ip4.src == $ovn.default.k8s.worker2_ip4'
# test
kubectl ko ovn-trace default/testvip 192.168.4.4 00:00:00:80:89:35 icmp