前言
odl-neutron是与openstack对接的北向模块,通过抓包分析openstack下发至odl-neutron的北向数据,可以大致了解到neutron的北向模型,以及各种请求的基本数据,便于我们进一步学习odl-netvirt代码,同时对于neutron的业务创建逻辑有一个更清楚的理解,特别是网络、子网、虚拟机、路由器这些创建过程,openstack neutron到底做了什么?基于这个疑问,将总结如下。
1 抓包过滤条件
-
过滤ip和http
http.request.method&& ip.src10.0.0.12 && ip.dst10.0.0.12 -
过滤非get rest接口
http&&http.request.method!=GET && ip.src10.0.0.12 && ip.dst10.0.0.12 -
过滤uri—最优推荐
http.request.uri matches “/controller/nb/v2/neutron/.*”
http.request.uri contains “/controller/nb/v2/neutron”帮助信息:
a-点击右侧过滤按键
b-搜索search找到相关过滤规则名
c-在Relation找到匹配条件表达式,
这里通常包含“==”、“!=”、“>=”、“<=”、“contains”、“matches”等表达式条件;
d-在vlaue栏目中填入具体匹配条件,这里支持正则表达式选项;
e-点击ok则可以在相应位置生成相关信息;
2 抓包过程总体分析
包含流程:
a.创建网络--network POST
b.创建子网--subnet POST
c.dhcp端口添加--ports POST\\ports PUT
d.vm创建--ports POST\\port PUT\\port PUT
c.创建路由--router POST
d.创建路由接口--ports POST\\port PUT
3 网络创建
network抓包描述:
[Full request URI: http://10.0.0.12:8181/controller/nb/v2/neutron/networks]
[HTTP request 1/2]
[Response in frame: 28214]
[Next request in frame: 28722]
File Data: 801 bytes
JavaScript Object Notation: application/json
/*
Object
Member Key: network
Object
Member Key: provider:physical_network
Null value
Key: provider:physical_network
Member Key: ipv6_address_scope
Null value
Key: ipv6_address_scope
Member Key: revision_number
Number value: 2
Key: revision_number
Member Key: port_security_enabled
True value
Key: port_security_enabled
Member Key: provider:network_type
String value: vxlan
Key: provider:network_type
Member Key: id
String value: 25601711-79ca-46aa-9a95-fbb02676cb4d
Key: id
Member Key: router:external
False value
Key: router:external
Member Key: availability_zone_hints
Array
Key: availability_zone_hints
Member Key: availability_zones
Array
Key: availability_zones
Member Key: ipv4_address_scope
Null value
Key: ipv4_address_scope
Member Key: shared
False value
Key: shared
Member Key: project_id
String value: b24f2b656ff24fd3aaab3a24a09dc3d6
Key: project_id
Member Key: description
String value:
Key: description
Member Key: tags
Array
Key: tags
Member Key: updated_at
String value: 2018-09-04T03:06:23Z
Key: updated_at
Member Key: is_default
False value
Key: is_default
Member Key: provider:segmentation_id
Number value: 59
Key: provider:segmentation_id
Member Key: name
String value: network2
Key: name
Member Key: admin_state_up
True value
Key: admin_state_up
Member Key: tenant_id
String value: b24f2b656ff24fd3aaab3a24a09dc3d6
Key: tenant_id
Member Key: created_at
String value: 2018-09-04T03:06:23Z
Key: created_at
Member Key: mtu
Number value: 1450
Key: mtu
Member Key: vlan_transparent
Null value
Key: vlan_transparent
Key: network
*/
4 子网创建+使能DHCP
4.1 subnet add
[Full request URI: http://10.0.0.12:8181/controller/nb/v2/neutron/subnets]
[HTTP request 2/2]
[Prev request in frame: 28205]
[Response in frame: 29017]
File Data: 807 bytes
/*
JavaScript Object Notation: application/json
Object
Member Key: subnet
Object
Member Key: updated_at
String value: 2018-09-04T03:06:24Z
Key: updated_at
Member Key: ipv6_ra_mode
Null value
Key: ipv6_ra_mode
Member Key: allocation_pools
Array
Object
Member Key: start
String value: 192.168.222.10
Key: start
Member Key: end
String value: 192.168.222.15
Key: end
Key: allocation_pools
Member Key: host_routes
Array
Key: host_routes
Member Key: revision_number
Number value: 0
Key: revision_number
Member Key: ipv6_address_mode
Null value
Key: ipv6_address_mode
Member Key: id
String value: 091a0a7c-60d8-4b55-be54-5d28e7cdfedb
Key: id
Member Key: dns_nameservers
Array
Key: dns_nameservers
Member Key: gateway_ip
String value: 192.168.222.1
Key: gateway_ip
Member Key: shared
False value
Key: shared
Member Key: project_id
String value: b24f2b656ff24fd3aaab3a24a09dc3d6
Key: project_id
Member Key: description
String value:
Key: description
Member Key: tags
Array
Key: tags
Member Key: cidr
String value: 192.168.222.0/24
Key: cidr
Member Key: service_types
Array
Key: service_types
Member Key: name
String value: sub2
Key: name
Member Key: enable_dhcp
True value
Key: enable_dhcp
Member Key: network_id
String value: 25601711-79ca-46aa-9a95-fbb02676cb4d
Key: network_id
Member Key: tenant_id
String value: b24f2b656ff24fd3aaab3a24a09dc3d6
Key: tenant_id
Member Key: created_at
String value: 2018-09-04T03:06:24Z
Key: created_at
Member Key: ip_version
Number value: 4
Key: ip_version
Key: subnet
4.2 dhcp port add
[Full request URI: http://10.0.0.12:8181/controller/nb/v2/neutron/ports]
[HTTP request 1/2]
[Response in frame: 31441]
[Next request in frame: 31636]
File Data: 868 bytes
/*
JavaScript Object Notation: application/json
Object
Member Key: port
Object
Member Key: port_security_enabled
False value
Key: port_security_enabled
Member Key: binding:host_id
String value: host-1
Key: binding:host_id
Member Key: name
String value:
Key: name
Member Key: allowed_address_pairs
Array
Key: allowed_address_pairs
Member Key: admin_state_up
True value
Key: admin_state_up
Member Key: network_id
String value: 25601711-79ca-46aa-9a95-fbb02676cb4d
Key: network_id
Member Key: tenant_id
String value: b24f2b656ff24fd3aaab3a24a09dc3d6
Key: tenant_id
Member Key: binding:vif_details
Object
Key: binding:vif_details
Member Key: binding:vnic_type
String value: normal
Key: binding:vnic_type
Member Key: binding:vif_type
String value: unbound
Key: binding:vif_type
Member Key: device_owner
String value: network:dhcp
Key: device_owner
Member Key: mac_address
String value: fa:16:3e:66:d4:bd
Key: mac_address
Member Key: binding:profile
Object
Key: binding:profile
Member Key: project_id
String value: b24f2b656ff24fd3aaab3a24a09dc3d6
Key: project_id
Member Key: fixed_ips
Array
Object
Member Key: subnet_id
String value: 091a0a7c-60d8-4b55-be54-5d28e7cdfedb
Key: subnet_id
Member Key: ip_address
String value: 192.168.222.10
Key: ip_address
Key: fixed_ips
Member Key: id
String value: 4ce3dff2-f710-4108-af92-48207a5ab42c
Key: id
Member Key: security_groups
Array
Key: security_groups
Member Key: device_id
String value: dhcpf72400a4-a35a-5d17-b5ce-25036ebf0bbc-25601711-79ca-46aa-9a95-fbb02676cb4d
Key: device_id
Key: port
4.3 dhcp port update
[Full request URI: http://10.0.0.12:8181/controller/nb/v2/neutron/ports/4ce3dff2-f710-4108-af92-48207a5ab42c]
[HTTP request 2/2]
[Prev request in frame: 31091]
[Response in frame: 31681]
File Data: 858 bytes
/*
JavaScript Object Notation: application/json
Object
Member Key: port
Object
Member Key: allowed_address_pairs
Array
Key: allowed_address_pairs
Member Key: extra_dhcp_opts
Array
Key: extra_dhcp_opts
Member Key: updated_at
String value: 2018-09-04T03:06:25Z
Key: updated_at
Member Key: device_owner
String value: network:dhcp
Key: device_owner
Member Key: revision_number
Number value: 3
Key: revision_number
Member Key: port_security_enabled
False value
Key: port_security_enabled
Member Key: binding:profile
Object
Key: binding:profile
Member Key: fixed_ips
Array
Object
Member Key: subnet_id
String value: 091a0a7c-60d8-4b55-be54-5d28e7cdfedb
Key: subnet_id
Member Key: ip_address
String value: 192.168.222.10
Key: ip_address
Key: fixed_ips
Member Key: security_groups
Array
Key: security_groups
Member Key: binding:vif_details
Object
Member Key: port_filter
True value
Key: port_filter
Key: binding:vif_details
Member Key: binding:vif_type
String value: ovs
Key: binding:vif_type
Member Key: mac_address
String value: fa:16:3e:66:d4:bd
Key: mac_address
Member Key: binding:host_id
String value: host-1
Key: binding:host_id
Member Key: description
String value:
Key: description
Member Key: tags
Array
Key: tags
Member Key: device_id
String value: dhcpf72400a4-a35a-5d17-b5ce-25036ebf0bbc-25601711-79ca-46aa-9a95-fbb02676cb4d
Key: device_id
Member Key: name
String value:
Key: name
Member Key: admin_state_up
True value
Key: admin_state_up
Member Key: created_at
String value: 2018-09-04T03:06:24Z
Key: created_at
Member Key: binding:vnic_type
String value: normal
Key: binding:vnic_type
Key: port
5 vm增加
第一次更新操作填入device_owner: compute:host-2
更新还加入vir_details\vif__type\mac_address\tags等信息
第二次更新主要为vif_type变化由unbound---->ovs
5.1 vm端口增加
[Full request URI: http://10.0.0.12:8181/controller/nb/v2/neutron/ports]
[HTTP request 9/15]
[Prev request in frame: 12261]
[Response in frame: 50560]
[Next request in frame: 51786]
File Data: 882 bytes
/*
JavaScript Object Notation: application/json
Object
Member Key: port
Object
Member Key: port_security_enabled
True value
Key: port_security_enabled
Member Key: binding:host_id
String value:
Key: binding:host_id
Member Key: name
String value:
Key: name
Member Key: allowed_address_pairs
Array
Key: allowed_address_pairs
Member Key: admin_state_up
True value
Key: admin_state_up
Member Key: network_id
String value: 25601711-79ca-46aa-9a95-fbb02676cb4d
Key: network_id
Member Key: tenant_id
String value: b24f2b656ff24fd3aaab3a24a09dc3d6
Key: tenant_id
Member Key: binding:vif_details
Object
Key: binding:vif_details
Member Key: binding:vnic_type
String value: normal
Key: binding:vnic_type
Member Key: binding:vif_type
String value: unbound
Key: binding:vif_type
Member Key: device_owner
String value:
Key: device_owner
Member Key: mac_address
String value: fa:16:3e:2b:ff:a6
Key: mac_address
Member Key: binding:profile
Object
Key: binding:profile
Member Key: project_id
String value: b24f2b656ff24fd3aaab3a24a09dc3d6
Key: project_id
Member Key: fixed_ips
Array
Object
Member Key: subnet_id
String value: 091a0a7c-60d8-4b55-be54-5d28e7cdfedb
Key: subnet_id
Member Key: ip_address
String value: 192.168.222.11
Key: ip_address
Key: fixed_ips
Member Key: id
String value: 86f838a8-e224-404a-9858-8b2f1c2a4667
Key: id
Member Key: security_groups
Array
Object
Member Key: id
String value: ffa53b72-48c3-4f0b-93da-ff9ee2f8e795
Key: id
Key: security_groups
Member Key: device_id
String value: 125c628e-5885-431e-86f0-c3fa713e0aea
Key: device_id
Key: port
5.2 vm端口更新1
[Full request URI: http://10.0.0.12:8181/controller/nb/v2/neutron/ports/86f838a8-e224-404a-9858-8b2f1c2a4667]
[HTTP request 10/15]
[Prev request in frame: 50549]
[Response in frame: 51825]
[Next request in frame: 52764]
File Data: 865 bytes
/*
JavaScript Object Notation: application/json
Object
Member Key: port
Object
Member Key: allowed_address_pairs
Array
Key: allowed_address_pairs
Member Key: extra_dhcp_opts
Array
Key: extra_dhcp_opts
Member Key: updated_at
String value: 2018-09-04T03:07:06Z
Key: updated_at
Member Key: device_owner
String value: compute:host-2
Key: device_owner
Member Key: revision_number
Number value: 4
Key: revision_number
Member Key: binding:profile
Object
Key: binding:profile
Member Key: port_security_enabled
True value
Key: port_security_enabled
Member Key: fixed_ips
Array
Object
Member Key: subnet_id
String value: 091a0a7c-60d8-4b55-be54-5d28e7cdfedb
Key: subnet_id
Member Key: ip_address
String value: 192.168.222.11
Key: ip_address
Key: fixed_ips
Member Key: security_groups
Array
Object
Member Key: id
String value: ffa53b72-48c3-4f0b-93da-ff9ee2f8e795
Key: id
Key: security_groups
Member Key: binding:vif_details
Object
Key: binding:vif_details
Member Key: binding:vif_type
String value: unbound
Key: binding:vif_type
Member Key: mac_address
String value: fa:16:3e:2b:ff:a6
Key: mac_address
Member Key: binding:host_id
String value: host-2
Key: binding:host_id
Member Key: description
String value:
Key: description
Member Key: tags
Array
Key: tags
Member Key: device_id
String value: 125c628e-5885-431e-86f0-c3fa713e0aea
Key: device_id
Member Key: name
String value:
Key: name
Member Key: admin_state_up
True value
Key: admin_state_up
Member Key: created_at
String value: 2018-09-04T03:07:05Z
Key: created_at
Member Key: binding:vnic_type
String value: normal
Key: binding:vnic_type
Key: port
5.3 vm端口更新2
[Full request URI: http://10.0.0.12:8181/controller/nb/v2/neutron/ports/86f838a8-e224-404a-9858-8b2f1c2a4667]
[HTTP request 11/15]
[Prev request in frame: 51786]
[Response in frame: 52781]
[Next request in frame: 61762]
File Data: 892 bytes
/*
JavaScript Object Notation: application/json
Object
Member Key: port
Object
Member Key: allowed_address_pairs
Array
Key: allowed_address_pairs
Member Key: extra_dhcp_opts
Array
Key: extra_dhcp_opts
Member Key: updated_at
String value: 2018-09-04T03:07:06Z
Key: updated_at
Member Key: device_owner
String value: compute:host-2
Key: device_owner
Member Key: revision_number
Number value: 4
Key: revision_number
Member Key: port_security_enabled
True value
Key: port_security_enabled
Member Key: binding:profile
Object
Key: binding:profile
Member Key: fixed_ips
Array
Object
Member Key: subnet_id
String value: 091a0a7c-60d8-4b55-be54-5d28e7cdfedb
Key: subnet_id
Member Key: ip_address
String value: 192.168.222.11
Key: ip_address
Key: fixed_ips
Member Key: security_groups
Array
Object
Member Key: id
String value: ffa53b72-48c3-4f0b-93da-ff9ee2f8e795
Key: id
Key: security_groups
Member Key: binding:vif_details
Object
Member Key: port_filter
True value
Key: port_filter
Key: binding:vif_details
Member Key: binding:vif_type
String value: ovs
Key: binding:vif_type
Member Key: mac_address
String value: fa:16:3e:2b:ff:a6
Key: mac_address
Member Key: binding:host_id
String value: host-2
Key: binding:host_id
Member Key: description
String value:
Key: description
Member Key: tags
Array
Key: tags
Member Key: device_id
String value: 125c628e-5885-431e-86f0-c3fa713e0aea
Key: device_id
Member Key: name
String value:
Key: name
Member Key: admin_state_up
True value
Key: admin_state_up
Member Key: created_at
String value: 2018-09-04T03:07:05Z
Key: created_at
Member Key: binding:vnic_type
String value: normal
Key: binding:vnic_type
Key: port
6 路由增加
端口更新加入vir_details\vif__type\mac_address\tags等信息
接口加入时候填入:router_interface
[Full request URI: http://10.0.0.12:8181/controller/nb/v2/neutron/routers]
[HTTP request 1/1]
[Response in frame: 55128]
File Data: 592 bytes
/*
JavaScript Object Notation: application/json
Object
Member Key: router
Object
Member Key: status
String value: ACTIVE
Key: status
Member Key: external_gateway_info
Null value
Key: external_gateway_info
Member Key: availability_zone_hints
Array
Key: availability_zone_hints
Member Key: ha
False value
Key: ha
Member Key: ha_vr_id
Number value: 0
Key: ha_vr_id
Member Key: description
String value:
Key: description
Member Key: gw_port_id
Null value
Key: gw_port_id
Member Key: tags
Array
Key: tags
Member Key: tenant_id
String value: b24f2b656ff24fd3aaab3a24a09dc3d6
Key: tenant_id
Member Key: created_at
String value: 2018-09-04T03:07:13Z
Key: created_at
Member Key: admin_state_up
True value
Key: admin_state_up
Member Key: distributed
False value
Key: distributed
Member Key: updated_at
String value: 2018-09-04T03:07:13Z
Key: updated_at
Member Key: revision_number
Number value: 0
Key: revision_number
Member Key: routes
Array
Key: routes
Member Key: project_id
String value: b24f2b656ff24fd3aaab3a24a09dc3d6
Key: project_id
Member Key: id
String value: e785315f-965d-478e-9ca5-c7df70f73fee
Key: id
Member Key: name
String value: router1
Key: name
Key: router
7 路由接口关联
端口更新加入vir_details\vif__type\mac_address\tags等信息
接口加入时候填入:router_interface
7.1 接口1增加
[Full request URI: http://10.0.0.12:8181/controller/nb/v2/neutron/ports]
[HTTP request 12/15]
[Prev request in frame: 52764]
[Response in frame: 61792]
[Next request in frame: 62505]
File Data: 832 bytes
/*
JavaScript Object Notation: application/json
Object
Member Key: port
Object
Member Key: port_security_enabled
False value
Key: port_security_enabled
Member Key: binding:host_id
String value:
Key: binding:host_id
Member Key: name
String value:
Key: name
Member Key: allowed_address_pairs
Array
Key: allowed_address_pairs
Member Key: admin_state_up
True value
Key: admin_state_up
Member Key: network_id
String value: 25601711-79ca-46aa-9a95-fbb02676cb4d
Key: network_id
Member Key: tenant_id
String value: b24f2b656ff24fd3aaab3a24a09dc3d6
Key: tenant_id
Member Key: binding:vif_details
Object
Key: binding:vif_details
Member Key: binding:vnic_type
String value: normal
Key: binding:vnic_type
Member Key: binding:vif_type
String value: unbound
Key: binding:vif_type
Member Key: device_owner
String value: network:router_interface
Key: device_owner
Member Key: mac_address
String value: fa:16:3e:d3:1e:8c
Key: mac_address
Member Key: binding:profile
Object
Key: binding:profile
Member Key: project_id
String value: b24f2b656ff24fd3aaab3a24a09dc3d6
Key: project_id
Member Key: fixed_ips
Array
Object
Member Key: subnet_id
String value: 091a0a7c-60d8-4b55-be54-5d28e7cdfedb
Key: subnet_id
Member Key: ip_address
String value: 192.168.222.1
Key: ip_address
Key: fixed_ips
Member Key: id
String value: b75ee163-5c54-4d1c-87b6-a7d7fa2d2214
Key: id
Member Key: security_groups
Array
Key: security_groups
Member Key: device_id
String value: e785315f-965d-478e-9ca5-c7df70f73fee
Key: device_id
Key: port
7.2 接口1更新
[Full request URI: http://10.0.0.12:8181/controller/nb/v2/neutron/ports/b75ee163-5c54-4d1c-87b6-a7d7fa2d2214]
[HTTP request 13/15]
[Prev request in frame: 61762]
[Response in frame: 62595]
[Next request in frame: 65846]
File Data: 795 bytes
/*
JavaScript Object Notation: application/json
Object
Member Key: port
Object
Member Key: allowed_address_pairs
Array
Key: allowed_address_pairs
Member Key: extra_dhcp_opts
Array
Key: extra_dhcp_opts
Member Key: updated_at
String value: 2018-09-04T03:07:33Z
Key: updated_at
Member Key: device_owner
String value: network:router_interface
Key: device_owner
Member Key: revision_number
Number value: 4
Key: revision_number
Member Key: binding:profile
Object
Key: binding:profile
Member Key: port_security_enabled
False value
Key: port_security_enabled
Member Key: fixed_ips
Array
Object
Member Key: subnet_id
String value: 091a0a7c-60d8-4b55-be54-5d28e7cdfedb
Key: subnet_id
Member Key: ip_address
String value: 192.168.222.1
Key: ip_address
Key: fixed_ips
Member Key: security_groups
Array
Key: security_groups
Member Key: binding:vif_details
Object
Key: binding:vif_details
Member Key: binding:vif_type
String value: unbound
Key: binding:vif_type
Member Key: mac_address
String value: fa:16:3e:d3:1e:8c
Key: mac_address
Member Key: binding:host_id
String value:
Key: binding:host_id
Member Key: description
String value:
Key: description
Member Key: tags
Array
Key: tags
Member Key: device_id
String value: e785315f-965d-478e-9ca5-c7df70f73fee
Key: device_id
Member Key: name
String value:
Key: name
Member Key: admin_state_up
True value
Key: admin_state_up
Member Key: created_at
String value: 2018-09-04T03:07:32Z
Key: created_at
Member Key: binding:vnic_type
String value: normal
Key: binding:vnic_type
Key: port
接口2增加
[Full request URI: http://10.0.0.12:8181/controller/nb/v2/neutron/ports]
[HTTP request 14/15]
[Prev request in frame: 62505]
[Response in frame: 65948]
[Next request in frame: 66623]
File Data: 831 bytes
/*
JavaScript Object Notation: application/json
Object
Member Key: port
Object
Member Key: port_security_enabled
False value
Key: port_security_enabled
Member Key: binding:host_id
String value:
Key: binding:host_id
Member Key: name
String value:
Key: name
Member Key: allowed_address_pairs
Array
Key: allowed_address_pairs
Member Key: admin_state_up
True value
Key: admin_state_up
Member Key: network_id
String value: 96c95d81-cbef-442e-a1d3-bfd5f6266231
Key: network_id
Member Key: tenant_id
String value: b24f2b656ff24fd3aaab3a24a09dc3d6
Key: tenant_id
Member Key: binding:vif_details
Object
Key: binding:vif_details
Member Key: binding:vnic_type
String value: normal
Key: binding:vnic_type
Member Key: binding:vif_type
String value: unbound
Key: binding:vif_type
Member Key: device_owner
String value: network:router_interface
Key: device_owner
Member Key: mac_address
String value: fa:16:3e:3f:9b:f0
Key: mac_address
Member Key: binding:profile
Object
Key: binding:profile
Member Key: project_id
String value: b24f2b656ff24fd3aaab3a24a09dc3d6
Key: project_id
Member Key: fixed_ips
Array
Object
Member Key: subnet_id
String value: 96d6c365-6582-4dbf-a26b-74a0f3bf106f
Key: subnet_id
Member Key: ip_address
String value: 192.168.11.1
Key: ip_address
Key: fixed_ips
Member Key: id
String value: 40eb7085-2d3b-4c4e-8b00-cb658b6ce62e
Key: id
Member Key: security_groups
Array
Key: security_groups
Member Key: device_id
String value: e785315f-965d-478e-9ca5-c7df70f73fee
Key: device_id
Key: port
接口2更新
[Full request URI: http://10.0.0.12:8181/controller/nb/v2/neutron/ports/40eb7085-2d3b-4c4e-8b00-cb658b6ce62e]
[HTTP request 15/15]
[Prev request in frame: 65846]
[Response in frame: 66637]
File Data: 794 bytes
/*
JavaScript Object Notation: application/json
Object
Member Key: port
Object
Member Key: allowed_address_pairs
Array
Key: allowed_address_pairs
Member Key: extra_dhcp_opts
Array
Key: extra_dhcp_opts
Member Key: updated_at
String value: 2018-09-04T03:07:43Z
Key: updated_at
Member Key: device_owner
String value: network:router_interface
Key: device_owner
Member Key: revision_number
Number value: 4
Key: revision_number
Member Key: binding:profile
Object
Key: binding:profile
Member Key: port_security_enabled
False value
Key: port_security_enabled
Member Key: fixed_ips
Array
Object
Member Key: subnet_id
String value: 96d6c365-6582-4dbf-a26b-74a0f3bf106f
Key: subnet_id
Member Key: ip_address
String value: 192.168.11.1
Key: ip_address
Key: fixed_ips
Member Key: security_groups
Array
Key: security_groups
Member Key: binding:vif_details
Object
Key: binding:vif_details
Member Key: binding:vif_type
String value: unbound
Key: binding:vif_type
Member Key: mac_address
String value: fa:16:3e:3f:9b:f0
Key: mac_address
Member Key: binding:host_id
String value:
Key: binding:host_id
Member Key: description
String value:
Key: description
Member Key: tags
Array
Key: tags
Member Key: device_id
String value: e785315f-965d-478e-9ca5-c7df70f73fee
Key: device_id
Member Key: name
String value:
Key: name
Member Key: admin_state_up
True value
Key: admin_state_up
Member Key: created_at
String value: 2018-09-04T03:07:42Z
Key: created_at
Member Key: binding:vnic_type
String value: normal
Key: binding:vnic_type
Key: port
8 总结
8.1 device-owner总结
network:dhcp
router_interface
compute:host-2
8.2 细节分析
- 创建网络子网,并不会产生端口,使能dhcp会增加相关dhcp接口,不管在openstack原生环境,还是odl环境都是如此;
- 创建虚机会在ovs下发相关端口,从北向分析可知,会有两次更新端口更新事件,相关端口device-owner归属在更新事件中确定。