作者: 趙怡
一、Neutron Kilo版和Newton版本功能區別:
L2-二層
功能點 |
功能變化類型 |
描述 |
支持管理員手動調度agent |
新增 |
在添加新的agent時支持新的選項: enable_new_agents, 針對以下agent: l3-agent, dhcp-agent, lbaas-agent。當admin_state_up=True和enable_new_agents=True時, 爲傳統的默認行爲, 資源可以自動調度到該agent。當admin_state_up=False和enable_new_agents=False, 爲維護模式(測試模式), 資源將不能自動調度到該agent, 直到管理員將admin_state_up置爲True。該模式主要用於新增節點時, 管理員不想讓用戶資源調度到該節點, 需要經過一段時間做測試。 |
改進默認MTU配置 |
修改 |
默認把path_mtu置爲1500, 'advertise_mtu'置爲True, 通過DHCP可以考慮到VXLAN overhead問題, 自動設置爲1450. |
自動創建網絡 |
新增 |
“get-me-a-network” , 即Automatic allocation of network topologies, 簡化創建虛擬機時需要配置網絡信息的步驟。 只需要事先指定默認的外部網絡和subnet pools, 創建虛擬機時, 可以讓neutron自動根據默認配置, 創建網絡,子網,分配ip, 路由器, 連接外網。 |
改進l2-agent下線後導致port-bind失敗 |
bug修復 |
當port bind fail是由於l2 agent下線導致的話, 當l2 agent上線時, port bind將會恢復 |
ovs實現allowed_address_pairs |
新增 |
虛擬機只允許Neutron給它分配的IP地址和MAC地址對外發包,這一特性之前在iptables實現,現在在OVS上也實現了 |
ovs默認openflow/ovsdb接口驅動默認改爲native方式 |
新增 |
neutron-openvswitch-agent原來默認使用'ovs-ofctl'和'ovsdb'接口驅動, 現在改爲'native'接口驅動, 提高了性能。 注: ovs-ofctl驅動: 即調用ovs-ofctl命令進行openflow流表下發, 啓動ovs-ofctl命令需要花很多時間, 而'native'驅動是通過調用ryu控制器接口, 通過openflow協議下發openflow流表。 ovs-vsctl驅動: 即調用ovs-vsctl命令進行端口、bridge的增刪, 啓動ovs-vsctl命令需要花很多時間, 而'native'驅動是通過調用ovs提供的python api接口, 通過ovsdb協議來操作。 |
支持查詢網絡及其子網的所有ip個數和使用過的ip個數 |
新增 |
支持查詢網絡下所有ip個數, 使用過的ip個數。網絡下每個子網的所有ip個數, 使用過的ip個數 |
支持IP分配選項 |
新增 |
port多了一個ip_allocation的屬性, 可選值有: ‘immediate’, ‘deferred’, or ‘none’。當創建port時, 'immediate'爲: 立即分配和配置IP地址。'deferred'爲: 延後分配IP, 等到port能夠bind到host時再分配。'none'爲: 暫不分配ip |
subnet增加類型屬性: ‘service_types’ |
新增 |
subnet增加類型屬性: ‘service_types’, 爲手動指定的device_owner的列表, 如: network:floatingip_agent_gateway, network:router_gateway。 port分配IP時, 通過port的device_owner匹配subnet的service_type, 來決定在哪個subnet中分配IP。 |
廠商驅動被移除 |
廢棄 |
廠商的ML2 plugin/agent被移除出neutron代碼。 廠商代碼被挪到各自的networking-XXX項目中, 其中XXX爲廠商驅動名稱。 |
安全組
功能點 |
功能變化類型 (新增/修改/廢棄/重大bug修復/性能改進) |
描述 |
OVS-agent驅動支持connection track連接跟蹤 |
新增 |
新的安全組防火牆驅動引入。基於OpenFlow,使用了connection track |
L3-三層
功能點 |
功能變化類型 (新增/修改/廢棄/重大bug修復/性能改進) |
描述 |
支持IPAM |
新增 |
默認使用可插拔式的IP address management框架, 可使用第三方IPAM, 用來管理IP地址。 |
L3 HA使用keepalived引發的問題 |
bug修復 |
解決L3 HA使用keepalived引發的問題 開啓keepalived時會記錄進程的pid,如果節點意外關機或者發生故障等,那麼這個文件不會清除,下次再開啓keepalived時如果這個文件保存的pid恰好被用了,那麼keepalived將無法啓動 |
支持DVR SNAT上的HA |
新增 |
支持DVR SNAT上的HA |
支持subnetpool |
新增 |
在K版時引入subnet-pools來防止ip地址重疊, 每個subnet-pools裏所添加的subnet地址範圍不能重疊。 |
支持bgp |
新增 |
向支持動態路由協議的設備, 通告內部網絡的前綴, 目前只支持bgp。這樣外部網絡訪問內部網絡虛擬機時, 可以不用綁定浮動ip了。涉及到自治域AS, 需要引入address scope, 而address scope依賴於subnet pools。 |
防火牆FWAAS
功能點 |
功能變化類型 (新增/修改/廢棄/重大bug修復/性能改進) |
描述 |
FWaaS API |
新增 |
FWaaS v1 API計劃將被廢棄, 由FWaaS v2替代。已經在Newton的rc1版本支持, 但是還有部分功能bug, 文檔和tempest測試未完成。 目前默認還是用的v1。v1和v2不能同時使用。FWaaS v2代碼已經存在, 增加了對port和方向等功能的支持。 |
支持OVS的Firewalls驅動 |
新增 |
使用ovs-firewall driver實現安全組功能,需要依賴native OVS。通過openflow流表實現安全組。還有點小問題, 不成熟。 |
防火牆配額修改 |
修改 |
默認firewall的租戶配額從無限制改爲10個 默認firewall_policy的租戶配額從無限制改爲10個 默認firewall_rule的租戶配額從無限制改爲100個 |
負載均衡器LBAAS
功能點 |
功能變化類型 (新增/修改/廢棄/重大bug修復/性能改進) |
描述 |
LB V1 API |
廢棄 |
廢棄存在功能缺陷的LB V1 API |
LB V2 API |
修改 |
提供功能更全面的LB V2 API。主要是支持多listener,支持7層策略轉發 7層策略轉發: 一個l7policy可以包含多個l7rule,而l7policy是關聯在listener上的,即可以根據策略做報文轉發 策略類型包括5種:host_name, path, file_type, header, cookie 轉發動作有3種:reject,redirect to pool,redirect to URL |
Octavia |
新增 |
新增了一個octavia driver,可以支持HA。 |
VPNAAS
功能點 |
功能變化類型 (新增/修改/廢棄/重大bug修復/性能改進) |
描述 |
VPNaaS高可用 |
新增 |
VPNaaS基於HA Router實現IPSec高可用功能 |
VPNaaS Endpoint |
新增 |
VPNaas Endpoint組用於實現支持本地多子網、遠端多子網創建IPsec連接 |
DNS(Designate)
功能點 |
功能變化類型 (新增/修改/廢棄/重大bug修復/性能改進) |
描述 |
廢棄2個服務 |
廢棄 |
架構上微調,廢棄2個服務 designate-zone-manager 和 designate-pool-manager |
新增後端DNS |
新增 |
後端DNS新增支持 TinyDNS, Knot DNS 2 |
架構優化 |
優化 |
架構優化, 新增2個服務 designate-worker 和 designate-producer 底層命令行操作,由openstack xxx 統一管理dns資源, REST API官方建議使用v2代替v1 |
消息上報優化 |
優化 |
優化狀態和統計信息上報 |
TACKER
功能點 |
功能變化類型 (新增/修改/廢棄/重大bug修復/性能改進) |
描述 |
安全組 TOSCA 模板 |
新增 |
支持安全組 TOSCA 模板 |
獲取 VNFC 詳細信息 |
新增 |
新增API接口, 獲取 VNFC (VNF catalog)詳細信息 |
試驗功能VNF Forwarding Graph |
新增 |
試驗功能 VNF Forwarding Graph(轉發圖功能), 構建多種虛擬數據中心的場景; 所謂轉發圖是NFV的術語,構建多個VNF,同時包含VNF之間的轉發路徑,所以稱之爲FG,一個網絡服務可能由一個或多個FG組成 |
支持sfc |
新增 |
支持 Neutron 的 networking-sfc driver |
支持ceilometer收集event/alarm |
新增 |
通過 Ceilometer 模塊觸發, 收集 event/alarm |
支持VNF擴展 |
新增 |
支持VNF 的自動/手動 橫向(數量擴展)和縱向(虛擬機資源)擴展 |
在tacker資源的命名字段, 引入唯一條件約束 |
新增 |
tacker數據庫中, tacker資源的命名字段, 引入唯一條件約束。即資源名稱不能重複。 |
支持 keystone v3 |
新增 |
修復1個Bug, 支持 keystone v3 |
其他Neutron功能
二、extensions API區別:
模塊/文件名 |
K版和N版本區別 |
neutron |
|
address_scope.py |
新增 |
agent.py |
無變化 |
allowedaddresspairs.py |
無變化 |
auto_allocated_topology.py |
新增 |
availability_zone.py |
新增 |
default_subnetpools.py |
新增 |
dhcpagentscheduler.py |
無變化 |
dns.py |
新增 |
dvr.py |
無變化 |
external_net.py |
無變化 |
extra_dhcp_opt.py |
無變化 |
extraroute.py |
無變化 |
flavor.py |
刪除文件 |
flavors.py |
新增。用來定義service type和service profile。當前的service provider框架可以讓用戶選擇服務時使用多個底層驅動, 但其中是有一些問題。flavor提供了一個機制, 讓operator選擇驅動, 驅動metadata, flag. Flavor id: uuid name: string description: text service: LOADBALANCER, VPN, FIREWALL, L3_ROUTER, etc supported_extensions: comma separated value string selection_algorithm: Enum(random, available, least_used) service_profiles: [(uuid list, weight)] (JSON list) enabled: boolean Service Profile id: uuid description: text driver: string metainfo: string(json encoded dict) enabled: boolean |
ip_allocation.py |
新增. 用來表示某端口是否要分配ip或者延後分配ip |
l2_adjacency.py |
新增 |
l3_ext_gw_mode.py |
無變化 |
l3_ext_ha_mode.py |
無變化 |
l3_flavors.py |
新增 |
l3.py |
floatingips字段增加了subnet_id, 可以選擇subnet來創建floating ip (該特性已經合入蘇研分支) |
l3agent_scheduler.py |
無變化 |
metering.py |
對tenant_id增加了必須爲string且長度爲TENANT_ID_MAX_LEN的驗證要求 |
multiprovidernet.py |
無變化 |
netmtu.py |
無變化 |
network_availability_zone.py |
新增. 網絡可用域AZ |
network_ip_availability.py |
新增. 網絡下所有ip個數, 使用過的ip個數。網絡下每個子網的所有ip個數, 使用過的ip個數 |
pagination.py |
新增。查詢結果是否分頁。 |
portbindings.py |
增加了baremetal和direct-physical的vnic類型 |
portsecurity.py |
無變化 |
project_id.py |
新增. 查詢結果是否顯示project_id。 |
providernet.py |
無變化 |
qos.py |
新增文件。增加了qos限速相關API. 可以對network或者port做QoS限速。policy+rule方式, 目前只有限速:bandwidth_limit_rules, dscp_marking_rules. |
quotasv2.py |
無變化 |
rbac.py |
新增文件。Role-Based Access Control for Networks. 新增基於角色訪問網絡, 網絡通過角色定義來共享給一組特定租戶。可以在企業和私有云部署中使用。 |
revisions.py |
新增 |
router_availability_zone.py |
新增. 路由器可用域AZ |
routerservicetype.py |
無變化 |
securitygroup.py |
1.對tenant_id增加了必須爲string且長度爲TENANT_ID_MAX_LEN的驗證要求 2. sg支持的協議中增加了ICMP_V6協議。 3. sg rules方向的更新操作從"允許"變爲"不允許" |
segment.py |
新增 |
servicetype.py |
無變化 |
sorting.py |
新增。查詢結果是否排序。 |
standardattrdescription.py |
新增。支持資源描述 |
subnet_service_types.py |
新增。subnet增加類型: 如: network:floatingip_agent_gateway, network:router_gateway |
subnetallocation.py |
無變化 |
tag.py |
新增。資源增加標籤做分類查找 |
timestamp.py |
新增。資源創建、更新的時間戳 |
trunk_details.py |
新增。port增加trunk屬性 |
trunk.py |
新增。增加trunk |
vlantrasparent.py |
無變化 |
fwaas |
|
fireall.py |
1. FW action中除了ALLOW, DENY以外, 增加了REJECT 2. name, description字段增加了長度限制 |
firewallrouterinsertion.py |
無變化 |
firewall_v2.py |
新增。增加防火牆v2接口 |
lbaas |
|
lbaas_agentscheduler.py |
已刪除(廢棄vLB v1) |
lbaas_agentschedulerv2.py |
無變化 |
loadbalancer.py |
無變化 vLB API v1無變化。 |
loadbalancerv2.py |
default_tls_container_id字段名改爲default_tls_container_ref sni_container_ids字段名改爲sni_container_refs vLB v2部分,L版比K版多了兩個API接口命令,分別是: lbaas-agent-hosting-loadbalancer LOADBALANCER, 查看指定的loadbalancer又哪一個agent來監管。 lbaas-loadbalancer-list-on-agent LBAAS_AGENT, 查看指定的agent上監管了哪些loadbalancer。 |
l7.py |
新增文件。新增基於7層的策略轉發功能。 |
lb_graph.py |
新增文件。支持一個API創建出一個可用的負載均衡器,目前只支持octavia driver。 |
lb_network_vip.py |
新增文件。支持創建LB時使用network_id,以適應一個net包含多個subnet的情況。 |
healthmonitor_max_retries_down.py |
新增文件。增加一個fall threshold,和raise threshold相對應。 |
sharedpools.py |
新增文件。允許pools在listeners中被共享。 |
vpnaas |
|
vpnaas.py |
vpnservices中增加了字段external_v4_ip,external_v6_ip |