default網絡跨節點
如路徑1所示,經過geneve隧道網絡進行通信。
訪問本節點api網絡端點IP(分布式網關)
如路徑2所示。
pod上流量通過pod內默認路由流向default網關;
-
流量流向join網關;
-
ovn-cluster路由器連接default subnet與join subnet。
[root@node1 ~]# kubectl get vpc -A NAME STANDBY SUBNETS NAMESPACES ovn-cluster true ["join","ovn-default"]
-
在ovn-cluster路由器上,默認路由指向join subnet的網關IP。
root@node1:/kube-ovn# ovn-nbctl list Logical_Router _uuid : c1cf493e-2db5-4c74-80ed-17a9e99aa3c6 copp : [] enabled : [] external_ids : {vendor=kube-ovn} load_balancer : [] load_balancer_group : [] name : ovn-cluster nat : [] options : {} policies : [08824336-8016-44f7-b20b-5f3f37f36582, 29f2559c-1357-441d-b692-ba888252f12d, 84da1ccf-e278-4508-9e2f-ea66224d16cb, 8b8358bc-b3a9-4925-93c8-0b192571833d, a95980e1-4c17-46b3-a26a-69468755c4c3, aa34537a-d704-4a7a-8d4f-bace2f70099a, b64ee9fe-b56a-4663-926b-61725ea602a0, bfebcdf9-57e1-427c-8506-c9970bcf02bf] ports : [43d0f4a3-df13-478c-b2f2-e7eaa8f2de37, f9b04f95-666f-4a18-a8b3-00d5e851a910] static_routes : [20d4eed7-ce19-42a8-a5ea-1a9931da876f] root@node1:/kube-ovn# ovn-nbctl list Logical_Router_Static_Route _uuid : 20d4eed7-ce19-42a8-a5ea-1a9931da876f bfd : [] external_ids : {} ip_prefix : "0.0.0.0/0" nexthop : "100.64.0.1" options : {} output_port : [] policy : dst-ip route_table : ""
-
-
流量流向本節點的OVN0,進入本節點內核網絡;
-
ovn-cluster路由器上的路由策略將流量重定向至本節點OVN0上的IP。
root@node1:/kube-ovn# ovn-nbctl list Logical_Router _uuid : c1cf493e-2db5-4c74-80ed-17a9e99aa3c6 copp : [] enabled : [] external_ids : {vendor=kube-ovn} load_balancer : [] load_balancer_group : [] name : ovn-cluster nat : [] options : {} policies : [08824336-8016-44f7-b20b-5f3f37f36582, 29f2559c-1357-441d-b692-ba888252f12d, 84da1ccf-e278-4508-9e2f-ea66224d16cb, 8b8358bc-b3a9-4925-93c8-0b192571833d, a95980e1-4c17-46b3-a26a-69468755c4c3, aa34537a-d704-4a7a-8d4f-bace2f70099a, b64ee9fe-b56a-4663-926b-61725ea602a0, bfebcdf9-57e1-427c-8506-c9970bcf02bf] ports : [43d0f4a3-df13-478c-b2f2-e7eaa8f2de37, f9b04f95-666f-4a18-a8b3-00d5e851a910] static_routes : [20d4eed7-ce19-42a8-a5ea-1a9931da876f] root@node1:/kube-ovn# ovn-nbctl list Logical_Router_Policy _uuid : 8b8358bc-b3a9-4925-93c8-0b192571833d action : reroute external_ids : {node=node3, subnet=ovn-default, vendor=kube-ovn} match : "ip4.src == $ovn.default.node3_ip4" nexthop : [] nexthops : ["100.64.0.4"] options : {} priority : 29000
-
流量流向節點api網絡端點IP;
-
返程流量原路返回;
-
根據節點上路由通過OVN0返回至join網關,再到default網關,再到pod。
[root@node3 ~]# ip r # default網段指向join網絡網關 10.233.64.0/18 via 100.64.0.1 dev ovn0 # join網絡通過OVN0設備IP進入 100.64.0.0/16 dev ovn0 proto kernel scope link src 100.64.0.4
-
訪問跨節點api網絡端點IP(分布式網關)
如路徑3所示。
pod上流量通過pod內默認路由流向default網關;
-
流量流向join網關;
-
ovn-cluster路由器連接default subnet與join subnet。
[root@node1 ~]# kubectl get vpc -A NAME STANDBY SUBNETS NAMESPACES ovn-cluster true ["join","ovn-default"]
-
在ovn-cluster路由器上,默認路由指向join subnet的網關IP。
root@node1:/kube-ovn# ovn-nbctl list Logical_Router _uuid : c1cf493e-2db5-4c74-80ed-17a9e99aa3c6 copp : [] enabled : [] external_ids : {vendor=kube-ovn} load_balancer : [] load_balancer_group : [] name : ovn-cluster nat : [] options : {} policies : [08824336-8016-44f7-b20b-5f3f37f36582, 29f2559c-1357-441d-b692-ba888252f12d, 84da1ccf-e278-4508-9e2f-ea66224d16cb, 8b8358bc-b3a9-4925-93c8-0b192571833d, a95980e1-4c17-46b3-a26a-69468755c4c3, aa34537a-d704-4a7a-8d4f-bace2f70099a, b64ee9fe-b56a-4663-926b-61725ea602a0, bfebcdf9-57e1-427c-8506-c9970bcf02bf] ports : [43d0f4a3-df13-478c-b2f2-e7eaa8f2de37, f9b04f95-666f-4a18-a8b3-00d5e851a910] static_routes : [20d4eed7-ce19-42a8-a5ea-1a9931da876f] root@node1:/kube-ovn# ovn-nbctl list Logical_Router_Static_Route _uuid : 20d4eed7-ce19-42a8-a5ea-1a9931da876f bfd : [] external_ids : {} ip_prefix : "0.0.0.0/0" nexthop : "100.64.0.1" options : {} output_port : [] policy : dst-ip route_table : ""
-
-
流量通過隧道流向目標節點的OVN0,進入對端節點內核網絡;
-
ovn-cluster路由器上的路由策略將流量重定向至對端節點OVN0上的IP。
root@node1:/kube-ovn# ovn-nbctl list Logical_Router _uuid : c1cf493e-2db5-4c74-80ed-17a9e99aa3c6 copp : [] enabled : [] external_ids : {vendor=kube-ovn} load_balancer : [] load_balancer_group : [] name : ovn-cluster nat : [] options : {} policies : [08824336-8016-44f7-b20b-5f3f37f36582, 29f2559c-1357-441d-b692-ba888252f12d, 84da1ccf-e278-4508-9e2f-ea66224d16cb, 8b8358bc-b3a9-4925-93c8-0b192571833d, a95980e1-4c17-46b3-a26a-69468755c4c3, aa34537a-d704-4a7a-8d4f-bace2f70099a, b64ee9fe-b56a-4663-926b-61725ea602a0, bfebcdf9-57e1-427c-8506-c9970bcf02bf] ports : [43d0f4a3-df13-478c-b2f2-e7eaa8f2de37, f9b04f95-666f-4a18-a8b3-00d5e851a910] static_routes : [20d4eed7-ce19-42a8-a5ea-1a9931da876f] root@node1:/kube-ovn# ovn-nbctl list Logical_Router_Policy _uuid : bfebcdf9-57e1-427c-8506-c9970bcf02bf action : reroute external_ids : {address-family="4", node=node1, vendor=kube-ovn} match : "ip4.dst == 192.168.123.21" nexthop : [] nexthops : ["100.64.0.2"] options : {} priority : 30000
-
流量流向節點api網絡端點IP;
-
返程流量原路返回;
-
根據節點上路由通過OVN0返回至join網關,再到default網關,再到pod。
[root@node3 ~]# ip r # default網段指向join網絡網關 10.233.64.0/18 via 100.64.0.1 dev ovn0 # join網絡通過OVN0設備IP進入 100.64.0.0/16 dev ovn0 proto kernel scope link src 100.64.0.4
-
訪問外網(分布式網關)
如路徑4所示。
pod上流量通過pod內默認路由流向default網關;
-
流量流向join網關;
-
ovn-cluster路由器連接default subnet與join subnet。
[root@node1 ~]# kubectl get vpc -A NAME STANDBY SUBNETS NAMESPACES ovn-cluster true ["join","ovn-default"]
-
在ovn-cluster路由器上,默認路由指向join subnet的網關IP。
root@node1:/kube-ovn# ovn-nbctl list Logical_Router _uuid : c1cf493e-2db5-4c74-80ed-17a9e99aa3c6 copp : [] enabled : [] external_ids : {vendor=kube-ovn} load_balancer : [] load_balancer_group : [] name : ovn-cluster nat : [] options : {} policies : [08824336-8016-44f7-b20b-5f3f37f36582, 29f2559c-1357-441d-b692-ba888252f12d, 84da1ccf-e278-4508-9e2f-ea66224d16cb, 8b8358bc-b3a9-4925-93c8-0b192571833d, a95980e1-4c17-46b3-a26a-69468755c4c3, aa34537a-d704-4a7a-8d4f-bace2f70099a, b64ee9fe-b56a-4663-926b-61725ea602a0, bfebcdf9-57e1-427c-8506-c9970bcf02bf] ports : [43d0f4a3-df13-478c-b2f2-e7eaa8f2de37, f9b04f95-666f-4a18-a8b3-00d5e851a910] static_routes : [20d4eed7-ce19-42a8-a5ea-1a9931da876f] root@node1:/kube-ovn# ovn-nbctl list Logical_Router_Static_Route _uuid : 20d4eed7-ce19-42a8-a5ea-1a9931da876f bfd : [] external_ids : {} ip_prefix : "0.0.0.0/0" nexthop : "100.64.0.1" options : {} output_port : [] policy : dst-ip route_table : ""
-
-
流量流向本節點的OVN0,進入本節點內核網絡;
-
ovn-cluster路由器上的路由策略將流量重定向至本節點OVN0上的IP。
root@node1:/kube-ovn# ovn-nbctl list Logical_Router _uuid : c1cf493e-2db5-4c74-80ed-17a9e99aa3c6 copp : [] enabled : [] external_ids : {vendor=kube-ovn} load_balancer : [] load_balancer_group : [] name : ovn-cluster nat : [] options : {} policies : [08824336-8016-44f7-b20b-5f3f37f36582, 29f2559c-1357-441d-b692-ba888252f12d, 84da1ccf-e278-4508-9e2f-ea66224d16cb, 8b8358bc-b3a9-4925-93c8-0b192571833d, a95980e1-4c17-46b3-a26a-69468755c4c3, aa34537a-d704-4a7a-8d4f-bace2f70099a, b64ee9fe-b56a-4663-926b-61725ea602a0, bfebcdf9-57e1-427c-8506-c9970bcf02bf] ports : [43d0f4a3-df13-478c-b2f2-e7eaa8f2de37, f9b04f95-666f-4a18-a8b3-00d5e851a910] static_routes : [20d4eed7-ce19-42a8-a5ea-1a9931da876f] root@node1:/kube-ovn# ovn-nbctl list Logical_Router_Policy _uuid : 8b8358bc-b3a9-4925-93c8-0b192571833d action : reroute external_ids : {node=node3, subnet=ovn-default, vendor=kube-ovn} match : "ip4.src == $ovn.default.node3_ip4" nexthop : [] nexthops : ["100.64.0.4"] options : {} priority : 29000
-
流量根據系統在本節點上配置的ipset、iptables規則,NAT成eth0的IP出網;