ovn是轻量级的SDN controller,网络的事情交给SDN来完成,openstack neutron-server只提供api和db。
不再需要那么多agent(neutron-openvswitch-agent,neutron-l3-agent,neutron-dhcp-agent)等
ovn组件之间用自己方式通信,不再用RPC通信。
networking-ovn作为neutron-server的plugin,把neutron-server api请求写到ovn-north DB中。
ovn-northd监听ovn-north DB,然后把ovn-north DB翻译成ovn-south DB
ovn-controller监听ovn-south DB,获取信息然后操作ovs
对应openstack neutron的数据库,都是逻辑的概念,由neutron plugin写数据库
logical switch等价于neutron network,logical router等价于neutron中的router
logical port 等价于openstack中的port,分为如下几类
logical port
其它都能在neutron中找到对应的东西
NB_Global Northbound configuration
Logical_Switch L2 logical switch
Logical_Switch_Port L2 logical switch port
Address_Set Address Sets
Load_Balancer load balancer
ACL Access Control List (ACL) rule
Logical_Router L3 logical router
QoS QOS table
Logical_Router_Port L3 logical router port
Logical_Router_Static_Route Logical router static routes
NAT NAT rules
DHCP_Options DHCP options
Connection OVSDB client connections.
DNS Native DNS resolution
SSL SSL configuration.
Gateway_Chassis Gateway_Chassis configuration
逻辑网络 物理网络 以及二者的对应关系
逻辑网络由ovn-northd写,物理网络和二者对应关系由ovn-controller写
SB_Global Southbound configuration
Chassis Physical Network Hypervisor and Gateway Information
Encap Encapsulation Types
Address_Set Address Sets
Logical_Flow Logical Network Flows
Multicast_Group Logical Port Multicast Groups
Datapath_Binding Physical-Logical Datapath Bindings
Port_Binding Physical-Logical Port Bindings
MAC_Bindin IP to MAC bindings
DHCP_Options DHCP Options supported by native OVN DHCP
DHCPv6_Options DHCPv6 Options supported by native OVN DHCPv6
主要是把logical switch和logical router翻译成logical flow
logical flow有switch和router datapath,每个datapath又分为ingress和egress
流量依次经过每一个table,并且先ingress后egree
Logical Switch Datapaths
Ingress Table 0: Admission Control and Ingress Port Security - L2
Ingress Table 1: Ingress Port Security - IP
Ingress Table 2: Ingress Port Security - Neighbor discovery
Ingress Table 3: from-lport Pre-ACLs
Ingress Table 4: Pre-LB
Ingress Table 5: Pre-stateful
Ingress table 6: from-lport ACLs
Ingress Table 7: from-lport QoS Marking
Ingress Table 8: from-lport QoS Meter
Ingress Table 9: LB
Ingress Table 10: Stateful
Ingress Table 11: ARP/ND responder
Ingress Table 12: DHCP option processing
Ingress Table 13: DHCP responses
Ingress Table 14 DNS Lookup
Ingress Table 15 DNS Responses
Ingress Table 16 Destination Lookup
Egress Table 0: Pre-LB
Egress Table 1: to-lport Pre-ACLs
Egress Table 2: Pre-stateful
Egress Table 3: LB
Egress Table 4: to-lport ACLs
Egress Table 5: to-lport QoS Marking
Egress Table 6: to-lport QoS Meter
Egress Table 7: Stateful
Egress Table 8: Egress Port Security - IP
Egress Table 9: Egress Port Security - L2
Logical Router Datapaths
Ingress Table 0: L2 Admission Control
Ingress Table 1: IP Input
Ingress Table 2: DEFRAG
Ingress Table 3: UNSNAT
Ingress Table 4: DNAT(Gateway Routers or Distributed Routers)
Ingress Table 5: IPv6 ND RA option processing
Ingress Table 6: IPv6 ND RA responder
Ingress Table 7: IP Routing
Ingress Table 8: ARP/ND Resolution
Ingress Table 9: Gateway Redirect
Ingress Table 10: ARP Request
Egress Table 0: UNDNAT
Egress Table 1: SNAT(Gateway Routers or Distributed Routers)
Egress Table 2: Egress Loopback
Egress Table 3: Delivery
每个hypervisor上运行一个,连接到ovn south DB,然后把ovn south DB中获取的信息写到本地ovs DB中
然后作为ovs-vswitchd的controller,把logical flow转换成ovs flow
hypervisor之间流量用geneve封装,和物理VTEP之间才用vxlan,geneve相比vxlan头部有TLV扩展,
可以跨hypervisor之间携带更多信息,如(logical datapath field, input port, output port, conntrack zone等)
ovn-controller在每一个hypervisor上创建一个br-int桥,VM直接连接到br-int桥上,ovn-controller还会在br-int
上添加tunnel口,用于和其它hypervisor和gateway互通
如果要和物理网络打通,还需要类似于neutron中的bridge mapping,单独创建一个bridge,bridge中绑定一个host
上的物理口,这个物理口和物理网络通着,最后br-int bridge和这个bridge用patch port互连,neutron中创建网络时
provider physical network指定这个物理口。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删