
管理向計算環境中的租戶的互聯網協議(ip)地址分配
1.相關申請
2.要求由vmware公司于2021年1月22日提交的標題為“管理向計算環境中的租戶的互聯網協議(ip)地址分配(managing internet protocol(ip)address allocation to tenants in a computing environment)”的美國專利申請no.17/155,405的權益,出于所有的目的,將其通過引用全文并入本文。
背景技術:3.在諸如軟件定義的數據中心(sddc)之類的計算環境中,租戶的工作負載虛擬節點可以連接至由sddc提供商實現的邏輯路由器,有時被稱為tier(層)-1或t1邏輯路由器。數據中心中的每個租戶可被分配其自己的t1邏輯路由器,以支持該租戶的工作負載虛擬節點(虛擬機、容器或其他虛擬化端點)的操作。為了將t1邏輯路由器連接到互聯網,t1邏輯路由器中的每一個可以連接到tier-0或t0邏輯路由器,其中t0邏輯路由器包括連接到該環境中的一個或更多個t1邏輯路由器的下行鏈路端口和連接到外部網絡(諸如,互聯網)的上行鏈路端口。
4.例如,租戶可以包括三層應用,該三層應用包括網段(web segment)虛擬節點、應用段虛擬節點和數據庫段虛擬節點。虛擬節點可以耦合到t1邏輯路由器,t1邏輯路由器又與t0邏輯路由器進行通信以提供到外部網絡的連接性。
5.雖然t0邏輯路由器提供用于租戶與外部網絡進行通信的機制,但是在將公共互聯網協議(ip)地址指派給租戶以及配置t1邏輯路由器處的網絡地址轉換(nat)以支持所耦合的虛擬節點中可能出現困難。具體地,使用網段虛擬節點,租戶可需要至少一個虛擬節點經由公共ip地址從外部網絡(例如,互聯網)可用。然而,當前的機制可能使得難以快速地將公共ip地址分配給計算環境中的新節點。具體地,每當虛擬節點需要新的公共ip地址時,一些當前的實現方式可能需要應用程序編程接口(api)請求或對互聯網服務提供商(isp)的一些其他請求。這些請求會引起高效地將公共ip地址分配給新的虛擬節點中的延遲。
技術實現要素:6.本文描述的技術管理向計算環境中的租戶的互聯網協議(ip)地址分配。在一個示例中,控制器識別與多個租戶中的第一租戶相關聯的邏輯路由器對新節點的公共ip地址的請求。響應于該請求,控制器可以從可用公共ip地址池中選擇公共ip地址,并且可以更新網絡地址轉換(nat)規則以將該節點的私有ip地址關聯到該ip地址。在一些示例中,對nat規則的更新還可以導致對第二邏輯路由器處的下一跳配置的更新,以將具有該公共ip地址的分組轉發到與該租戶相關聯的邏輯路由器,其中第二邏輯路由器將邏輯路由器耦合到一個或更多個外部網絡(例如,互聯網)。
附圖說明
7.圖1示出了根據實現方式的用于管理向計算環境中的租戶的互聯網協議(ip)地址
分配的計算環境。
8.圖2示出了根據實現方式的管理向計算環境中的租戶的ip地址分配的方法。
9.圖3示出了根據實現方式的將ip地址分配給租戶的時序圖。
10.圖4示出了根據實現方式的對網絡地址轉換(nat)數據結構的更新。
11.圖5示出了根據實現方式的對用于將分組轉發至關聯的邏輯路由器的下一跳配置的更新。
12.圖6示出了根據實現方式的解除ip地址向租戶的分配的時序圖。
13.圖7示出了根據實現方式的用于管理向計算環境中的租戶的ip地址分配的計算系統。
具體實施方式
14.圖1示出了根據實現方式的用于管理向計算環境中的租戶的互聯網協議(ip)地址分配的計算環境100。計算環境100包括層-0邏輯路由器102、層-1邏輯路由器105-107和控制器180。層-1邏輯路由器105-107各自包括對應的網絡地址轉換(nat)160-162,并且為段(segment)110-112、120-122和130-132提供連接性。層-0邏輯路由器102包括下一跳關聯152,并且控制器180包括用于向段110-112、120-122和130-132中的虛擬節點分配公共ip地址的地址池150。計算環境100的元件,其包括邏輯路由器、控制器和段虛擬節點,可跨一個或更多個主機計算系統(諸如服務器或臺式計算系統)執行。邏輯路由器和控制器可各自在單個計算系統上執行,或可跨多個計算系統執行。
15.在操作中,段110-112、120-122和130-132被部署以支持不同租戶的操作,其中,段110-112、120-122和130-132中的每個段可以包括一個或更多個虛擬節點,諸如虛擬機、容器或某個其他虛擬化端點。為了支持虛擬節點的連接性,提供了層-1邏輯路由器,其可以提供域名服務(dns)、動態主機配置協議(dhcp)、防火墻服務和nat服務(由nat 160-162示出)。nat 160-162可用于識別與第一地址(諸如,公共互聯網協議(ip)地址)相關聯的分組,且將地址轉換為第二ip地址或本地ip地址。連接到層-1邏輯路由器105-107的是層-0邏輯路由器102,其中層-0邏輯路由器可用于將每個邏輯路由器連接到一個或更多個外部網絡,諸如互聯網。在一些實現方式中,層-0邏輯路由器102可以由計算環境100中的各個租戶的服務提供商提供和管理。層-0邏輯路由器102可用于實施向層-1邏輯路由器中的每一個的下一跳轉發、實施附加的防火墻規則、或提供關于來自外部網絡和層-1邏輯路由器的數據分組的一些其他操作。
16.在為與每個層1邏輯路由器相關聯的每個租戶配置網絡時,提供了控制器180,該控制器在與用于各個租戶的數據平面分離的控制平面中操作并且可用于配置nat、防火墻和由邏輯路由器提供的其他操作。為了給一些虛擬節點提供連接性,可能需要公共ip地址,從而允許外部網絡上的計算元件與虛擬節點進行通信。例如,層-1邏輯路由器105可以表示要求網段110中的虛擬節點支持來自在外部網絡上執行的一個或更多個計算元件的傳入連接的組織。為了支持該要求,可以生成用于由控制器180接收的層-1邏輯路由器105的請求。一旦接收到,控制器180可以選擇公共ip地址以支持該請求,并且配置邏輯路由器105和102以支持對應的虛擬節點對公共ip地址的使用。
17.此處,控制器180維護地址池150,其中,地址池150包括分配給計算環境100中的虛
擬節點的可用公共ip地址。在一些實現方式中,地址池150可以使用應用程序編程接口(api)或能夠從互聯網服務提供商(isp)或其他服務獲得公共ip地址的一些其他函數(function)來填充。地址池包括分配給層-0路由器以將流量從外部網絡(例如,互聯網)引導至層-0路由器,但是尚未分配給計算環境中的虛擬節點的ip地址。有利地,池可用于向新的虛擬節點提供已經分配的用于層-0邏輯路由器的公共ip地址,而不是在新的虛擬節點需要時從isp請求新的ip地址。當維護地址池150時,新的虛擬節點可以耦合到層-1邏輯路由器105-107中的層-1邏輯路由器。當耦合到邏輯端口時,層-1邏輯路由器可確定新的虛擬節點是否需要公共ip地址。在一些實現方式中,與租戶相關聯的用戶或管理員可以指示當耦合到對應的層-1邏輯路由器時需要ip地址的虛擬節點或段的類型。例如,與層-1邏輯路由器105相關聯的管理員可指示應向網段110中的所有虛擬節點指派公共ip地址。響應于識別出該段的新的虛擬節點,層-1邏輯路由器可以生成到控制器180的請求,其指示對新的公共ip地址的需求。
18.在接收到請求之后,控制器180可以標識地址池150中的可用ip地址并且將該地址分配給新的虛擬節點。在一些實現方式中,在分配公共ip地址以支持請求時,控制器180可以更新nat 160并且可以更新下一跳關聯152以支持使用該公共ip地址轉發分組。具體地,控制器180可以更新nat 160以將公共ip地址與由層-1邏輯路由器105分配的私有ip地址相關聯。例如,層-1邏輯路由器105可以將私有ip地址192.168.1.1指派給虛擬節點并且將該地址關聯到公共地址,諸如52.1.1.7。在一些實現方式中,可以使私有ip地址池可用于層-1邏輯路由器處新連接的虛擬節點,并且可以從該池中選擇私有ip地址以支持新連接的虛擬節點。在一些示例中,此選擇可由控制器180做出。在一些實現方式中,對于各個段中的每一個,池可以是不同的,其中,網段可以與第一ip地址池相關聯,而應用段可以與第二ip地址池相關聯。如果該一個或更多個池滿足指示有限數量的可用ip地址的一個或更多個標準(例如,下降到低于私有ip地址的閾值數量),則控制器180可向與層-1邏輯路由器相關聯的管理員提供通知,控制器180可自動將一個或更多個附加ip地址添加到池,或可提供某個其他功能。
19.除了更新nat 160之外,控制器180還可以發起下一跳關聯152的更新,其中,下一跳關聯中的路由可以用于將與所選擇的公共ip地址相關聯的通信轉發至路由器105-107中的對應的層-1路由器。返回將52.1.1.7分配給層-1邏輯路由器105中的段的示例,控制器180可以發起對下一跳關聯152的更新以確保層-1邏輯路由器105是具有52.1.1.7作為目的地的分組的下一跳。
20.一旦配置了nat和下一跳關聯,則將在層-0邏輯路由器102處從外部網絡接收的具有目的地52.1.1.7的傳入分組轉發到層-1邏輯路由器105。層-1邏輯路由器105可以與目的地地址相關聯地執行nat,并將分組轉發到目的地虛擬節點或層-1邏輯路由器105的段實例。
21.在一些實現方式中,一旦公共ip地址被分配給租戶之一的虛擬節點,則ip地址就從地址池150中被移除。因此,當控制器180識別出對公共ip地址的第二請求時,可選擇不同的公共ip地址來支持該請求。在一些示例中,池中的ip地址的數量可以滿足一個或更多個標準,使得控制器180可以請求并獲得用于池的附加ip地址。例如,當池中剩余十個ip地址時,控制器180可以使用api或其他函數來更新池以準備用于附加請求。
22.圖2示出了根據實現方式的管理向計算環境中的租戶的ip地址分配的方法200。參考來自圖1的計算環境100的系統和元件在隨后的段落中以括號引用方法200的步驟。方法200的步驟可完全由控制器180執行,但是其他控制機制可存在于計算環境中。
23.如所描繪的,方法200包括識別(201)與多個租戶中的第一租戶相關聯的邏輯路由器的獲得虛擬節點的公共ip地址的請求。例如,通過添加虛擬節點,層-1邏輯路由器105可以生成對由控制器180識別的公共ip地址的請求。控制器180可以使用控制平面與層-1邏輯路由器105進行通信,其中,控制平面在計算環境100中表示為段的各個節點的數據平面外傳送配置。在一些實現方式中,當虛擬節點耦合到層-1邏輯路由器105時,邏輯路由器可以確定新的虛擬節點是否需要公共ip地址。如果新節點不需要公共ip地址,則可以不需要對控制器180進行請求。然而,如果新的虛擬節點確實需要公共ip地址,則層-1邏輯路由器105可以向控制器180傳送對ip地址的請求,以支持新的段實例。
24.響應于該請求,該方法包括:在該控制器處,從可用公共ip地址池中選擇(202)公共ip地址。在一些實現方式中,控制器180可以從提供商(isp)獲得ip地址并且維護ip地址池以分配給計算環境100中的新的段實例(虛擬節點)。該池可以包括分配給層-0邏輯路由器的地址,以將流量從公共網絡引導到層-0邏輯路由器,但是尚未被指派給計算環境中的虛擬節點。一旦被選擇,則ip地址可從池中移除,使得同一地址不被分配給另一請求。有利地,不是在新的虛擬節點需要時從isp請求新的ip地址,而是可使用池來為層-0邏輯路由器提供已經分配的公共ip地址,以將分組轉發到虛擬節點。
25.一旦選擇了公共ip地址,則方法200進一步更新(203)該邏輯路由器處的nat規則,以將該虛擬節點的私有ip地址關聯到該公共ip地址。在一些實現方式中,計算環境中的層-1邏輯路由器可維護nat規則,該nat規則被用于將私有ip地址關聯到針對特定租戶執行的虛擬節點的公共ip地址。例如,層-1邏輯路由器105的nat規則可以用于將網段110中的虛擬節點的公共ip地址關聯到該虛擬節點的私有ip地址。當接收到分組時,層-1邏輯路由器105可轉換分組中的私有ip地址并將該分組轉發到目的地節點。在一些實現方式中,新的虛擬節點的私有ip地址可以從層-1邏輯路由器處的可用私有ip地址池中分配。在一些示例中,私有ip地址可以與公共ip地址一起由控制器180分配。在一些實施例中,控制器180可以監測層-1邏輯路由器處的私有ip地址池的大小,并且確定層-1邏輯路由器何時需要附加的私有ip地址。該確定可基于ip地址的數量降到閾值數量以下、在不久的將來需要的ip地址的預測數量大于池中的可用ip地址、或某一其他標準。一旦需要附加的ip地址,則控制器可以通知與層1邏輯路由器相關聯的管理員需要附加的私有ip地址,可以自動添加附加的私有ip地址,或可以提供與向池中添加ip地址相關聯的一些其他操作。在一些實現方式中,每個層-1邏輯路由器可以維護多個池,其中,每個池可以對應于不同的段。因此,雖然網段可以與第一池相關聯,但是應用段可以與第二池相關聯。在一些實現方式中,這些池可包括不同的子網。
26.在一些實現方式中,除了配置邏輯路由器處的nat規則之外,控制器180還可以發起對下一跳關聯152的更新,其中下一跳關聯152用于識別用于轉發從外部網絡接收的分組的邏輯路由器。在一些示例中,邏輯路由器105-107中的每個層-1邏輯路由器被分配其自己的ip地址,使得層-0邏輯路由器102可將分組轉發到該路由器。因此,當公共ip地址被分配給耦合到邏輯路由器105-107之一的虛擬節點時,下一跳關聯152可被更新以將該公共ip地
址與關聯的邏輯路由器的ip地址相關聯。當層-0邏輯路由器102接收到分組時,層-0邏輯路由器102可識別該分組的目的地ip地址,確定與該目的地ip地址相關聯的層-1邏輯路由器的下一跳ip地址,并且將該分組轉發到對應的層-1邏輯路由器。
27.在一些示例中,當從ip地址池150分配ip地址時,控制器180可以確定ip地址池何時滿足檢索附加地址的一個或更多個標準。一個或更多個標準可以包括可用地址的數量,其中,控制器180可以識別池何時達到可用地址的數量并且使用api或其他操作來從提供商(isp)獲得附加ip地址。在一些實現方式中,控制器180可以預測在將來的時間段期間需要指派給虛擬節點的ip地址的數量。該預測可基于在最近時段(例如,最近15分鐘)期間、在類似時段(例如,一天中的時間、一周中的時間等)期間監控對公共ip的請求的數量,或基于對請求的某一其他監控。例如,控制器180可以預測在將來的時間段(例如,接下來的五分鐘)中將需要十五個地址。結果,控制器180可以在該時間段之前使用api從isp獲得用于該池的至少所需數量的ip地址。在一些示例中,針對池的預測需求可包括從退休的虛擬節點交出(surrender)的公共ip,其中這些ip地址可重新分配給其他虛擬節點。
28.除了將公共ip地址分配給計算環境100中的各個租戶之外,控制器180還可以被配置為基于段實例被停止或發起移除分配的ip地址的請求來更新nat和下一跳關聯。例如,層-1邏輯路由器105可以識別移除虛擬節點的公共ip地址的分配的請求。響應于該請求,可以更新nat以移除私有ip地址和公共ip地址之間的關聯,可以向控制器提供通知以將公共ip地址釋放回ip地址池,并且可以向層-0邏輯路由器提供通知以移除公共ip地址的下一跳關聯。
29.圖3示出了根據實現方式的向租戶分配ip地址的時序圖300。時序圖300包括層-1邏輯路由器105-106、層-0邏輯路由器102和控制器180。為了清楚起見,已經省略了層-1邏輯路由器107。
30.如所描繪的,在步驟1處,控制器180維護公共地址池,其中,該公共地址池可以包括由一個或更多個外部網絡上的計算元件用于與在層-0邏輯路由器102后面執行的節點進行通信的地址。當維護公共地址池時,在步驟2,層-1邏輯路由器105生成對公共ip地址的請求,以支持層-1邏輯路由器105后面的段。例如,層-1邏輯路由器105可以發起對新的公共ip地址的請求,以支持層-1邏輯路由器105后面的應用的網段。
31.響應于該請求,在步驟3,控制器180可以從該池中選擇公共ip地址,并且在步驟4,更新層-1邏輯路由器105的nat和層-0邏輯路由器102的下一跳配置。在一些實現方式中,可以從池中、從表示可用地址池的列表中、或從一些其他數據結構或方式中隨機選擇公共ip地址。一旦被選擇,則層-1邏輯路由器105的nat可被更新以將所選擇的公共ip地址與層-1邏輯路由器105后面的節點的私有ip地址相關聯,其中當識別出用于虛擬節點的請求時,私有ip地址可由層-1邏輯路由器105來選擇。例如,層-1邏輯路由器105可監控新的虛擬節點何時耦合到邏輯路由器的端口。當耦合時,層-1邏輯路由器105可以為新的虛擬節點選擇私有ip地址,并且為nat關聯請求公共ip地址。
32.除了配置層-1邏輯路由器105處的nat之外,控制器180還可以發起對層-0邏輯路由器102的下一跳配置的更新。該更新可以用于將與公共ip地址相關聯的通信引導到層-1邏輯路由器105。在引導分組時,層-0邏輯路由器102可將分組轉發到該路由器的ip地址。
33.在將ip地址分配給層-1邏輯路由器105以支持段中的新實例之后,在步驟5,控制
器180從層-1邏輯路由器106接收第二請求。響應于該請求,在步驟6,控制器180可以從可用ip地址池中選擇第二公共ip地址以支持該請求。一旦被選擇,在步驟7,控制器180可以更新層-1邏輯路由器106的nat以及更新層-0邏輯路由器102的下一跳配置。類似于上述配置用于層-1邏輯路由器105的請求的操作,層-1邏輯路由器106的配置可更新nat以將由層-1邏輯路由器106分配的私有ip地址關聯到第二公共ip地址。此外,層-0邏輯路由器102的配置可用于將具有第二公共ip地址的傳入分組轉發到層-1邏輯路由器106。
34.在一些實現方式中,控制器180可以監控可用ip地址池的大小。具體地,當可用地址的數量減少并且滿足一個或更多個標準時,在步驟8,控制器180可以為該池請求新地址以適應來自計算環境100中的層-1路由器的附加請求。在一些實現方式中,當層-1邏輯路由器放出(relinquish)公共ip地址時,還可以擴展池。具體地,層-1邏輯路由器可以與公共ip地址相關聯地移除nat并通知控制器180,使得控制器180可以將該公共ip地址添加回可用池。進一步,控制器180可以更新下一跳配置以阻止與該公共ip地址相關聯的分組被轉發到層-1邏輯路由器。
35.在一些實現方式中,控制器180可以預測在將來時間段期間需要被指派給虛擬節點的ip地址的數量。該預測可基于在最近的時段(例如,最近的15分鐘)期間、在類似的時間段(例如,一天中的時間、一周中的時間等)期間監控對公共ip的請求的數量,或基于在任何時間段期間對請求的一些其他監控。例如,控制器180可以預測在將來的時間段(例如,接下來的五分鐘)中將需要三十個地址。結果,控制器180可以從isp獲得用于該池的至少所需數量的ip地址。在一些示例中,針對池的預測需求可包括從退休的虛擬節點交出的公共ip,其中這些ip地址可重新分配給其他虛擬節點。這可以允許控制器180使用來自isp的新ip和從退休的虛擬節點交出的ip來維持該池。
36.圖4示出了根據實現方式的對網絡地址轉換(nat)數據結構的更新。圖4包括來自圖1的nat 160的示例,但是可以存在示例。數據結構160包括用于公共ip 410和私有ip 415的列。
37.在操作中,計算環境中的層-1邏輯路由器可以識別將公共ip地址分配給段中的實例的請求,其中,在一些示例中,該實例可以包括虛擬機。例如,層-1邏輯路由器可識別新連接并基于與該新連接相關聯的配置信息確定該連接是否需要分配公共ip。在一些實現方式中,層-1邏輯路由器可以確定與新連接相關聯的段,其中,所述段可以與對新的公共ip地址的需求相關聯。響應于該請求,該層-1邏輯路由器可以分配私有ip地址,其中該私有ip地址可以落入用于與該新連接相關聯的段的子網中。此外,層-1邏輯路由器可以向控制器傳送請求以分配來自可用公共ip地址池的公共ip地址。
38.在此,用于圖1的網段110的新連接被控制器分配公共ip地址52.1.1.7并且還被控制器分配了私有ip地址192.168.1.3。一旦公共ip地址被控制器識別,則控制器可以更新層-1邏輯路由器處的nat以包括私有ip地址和公共ip地址之間的關聯,其中該更新被用于將分組中的尋址從公共ip轉換為私有ip以及從私有ip轉換為公共ip。
39.圖5示出了根據實現方式的對用于將分組轉發至關聯的邏輯路由器的下一跳配置的更新。圖5包括下一跳關聯152的示例,但可以存在其他示例。下一跳關聯152包括用于公共ip 410和下一跳ip 415的列。
40.在操作中,由層-1邏輯路由器生成將公共ip地址分配給由該層-1邏輯路由器支持
的節點的請求。例如,每個層-1邏輯路由器可表示計算環境中的租戶,其中,租戶可包括公司、組織、組織內的組或某個其他實體。每個租戶可以使用層-1邏輯路由器來支持應用的一個或更多個段。例如,第一層-1邏輯路由器可用于提供三層應用,其中該應用可包括網段、應用段和數據庫段。當新的虛擬節點被添加或連接至層-1邏輯路由器時,層-1邏輯路由器可確定該虛擬節點是否需要公共ip地址。該確定可以基于與該虛擬節點相關聯的段標識符、由發起該虛擬節點的管理員提供的元數據或一些其他信息。當需要公共ip地址時,層-1邏輯路由器可向該虛擬節點分配私有ip地址,其中私有地址可在由層-1邏輯路由器提供的本地子網上。此外,層-1邏輯路由器可以向控制器傳送請求以獲得可用公共ip地址。一旦控制器從池中分配或選擇,則控制器可以更新層-1邏輯路由器的nat以包括私有ip地址和公共ip地址之間的關聯。
41.在此,除了更新nat之外,該控制器還可以更新下一跳關聯152,以基于目的地ip地址將分組轉發至適當的層-1邏輯路由器。具體地,當在層-0邏輯路由器處接收到來自外部網絡的分組時,層-0邏輯路由器可以識別該分組中的目的地ip地址,并且將該目的地ip地址匹配到與層-1邏輯路由器相關聯的下一跳ip地址。當新的公共ip地址52.1.1.7被分配給計算環境中的節點時,可以向將公共ip地址與支持新節點的層-1邏輯路由器的下一跳ip地址相關聯的層-0邏輯路由器提供更新。在該示例中,下一跳ip地址是100.64.1.2,其對應于層-1邏輯路由器105。一旦被配置,來自外部網絡的具有公共目的地ip地址52.1.1.7的分組可被轉發到具有下一跳ip地址100.64.1.2的邏輯路由器105。
42.盡管在圖4和圖5的示例中被示出為向數據結構添加條目,但是應當理解,可以從數據結構中移除條目。在一些實現方式中,當不再需要公共ip地址時,層-1邏輯路由器可以識別移除分配的請求并更新nat以移除與該公共ip地址相關聯的條目。進一步地,層-1邏輯路由器可以向控制器傳送通知,其中控制器可以發起更新以從與該公共ip地址相關聯的下一跳關聯中移除條目。控制器還可將該公共ip地址添加回可用ip地址池,以使得將來的請求可被分配該地址。
43.圖6示出了根據實現方式的解除ip地址向租戶的分配的時序圖600。時序圖600包括來自圖1的計算環境100的層-1邏輯路由器105-106、層-0邏輯路由器102和控制器180。為了清楚起見,已經省略了層-1邏輯路由器107。
44.在操作中,層-1邏輯路由器105-106可以請求和接收公共ip地址以分配給由這些邏輯路由器支持的一個或更多個段。從控制器180分配這些公共ip地址,其中,在步驟1,控制器180維護用于這些請求的公共ip地址池。在分配ip地址之后,在步驟2,層-1邏輯路由器105識別移除分配的公共ip地址的移除請求。響應于該請求,在步驟3,層-1邏輯路由器105更新本地nat以移除公共ip地址與耦合到層-1邏輯路由器105的虛擬節點的私有ip地址的關聯。在一些實現方式中,層-1邏輯路由器105可以監控與虛擬節點的連接何時不再存在,并且可以基于連接被移除來更新nat。除了更新本地nat之外,還可以向控制器180傳送指示層-1邏輯路由器提供的段不再需要公共ip地址的請求。響應于該請求,在步驟3的續處,控制器180可以將該公共ip地址添加回可用地址池,并且更新層-0邏輯路由器102的配置以移除該公共ip地址的下一跳關聯。
45.除了針對層-1邏輯路由器105的更新之外,在步驟4,層-1邏輯路由器106識別對公共ip地址的移除請求。響應于該請求,在步驟5,層-1邏輯路由器更新本地nat以移除公共ip
地址與私有ip地址之間的關聯。在一些實現方式中,可以在無需與控制器180通信的情況下進行移除,但是應理解,控制器180可以發起nat的更新。除了更新nat之外,層-1邏輯路由器106還可以向控制器180傳送解除分配公共ip地址的請求。響應于接收到該請求,控制器180可以發起對層-0邏輯路由器102的更新以更新下一跳配置,并且可以將該公共ip地址添加回可用池。
46.在一些實現方式中,控制器180處的可用ip地址池可以被維護為包括最小量或最大量的ip地址。當地址從解除分配ip地址的層-1邏輯路由器被添加回池中時,控制器180可以將該ip地址放回提供商。類似地,當層-1邏輯路由器采用附加地址時,控制器180可以請求和接收要添加到池中的附加ip地址。
47.圖7示出了根據實現方式的用于管理向計算環境中的租戶的ip地址分配的計算系統700。計算系統700表示控制器可以采用其實現本文公開的各個操作架構、過程、場景和序列的任何一個或更多個計算系統。計算系統700是圖1的控制器180的示例,但可以存在其他示例。計算系統700包括存儲系統745、處理系統750和通信接口760。處理系統750可操作地鏈接到通信接口760和存儲系統745。在一些實現方式中,通信接口760可以通信地鏈接到存儲系統745。計算系統700可進一步包括其他組件,諸如為了清楚起見而未示出的電池和外殼。
48.通信接口760包括通過通信鏈路進行通信的組件,諸如網卡、端口、射頻(rf)、處理電路和軟件、或一些其他通信設備。通信接口760可以被配置為通過金屬、無線或光學鏈路進行通信。通信接口760可以被配置為使用時分復用(tdm)、互聯網協議(ip)、以太網、光網絡、無線協議、通信信令或一些其他通信格式——包括其組合。通信接口760可以被配置為與能夠為邏輯路由器、虛擬節點等提供平臺的一個或更多個服務器計算系統或臺式計算系統進行通信。
49.處理系統750包括從存儲系統745中檢索并執行操作軟件的微處理器和其他電路。存儲系統745可以包括以用于存儲信息(諸如計算機可讀指令、數據結構、程序模塊或其他數據)的任何方法或技術實現的易失性和非易失性、可移除和不可移除的介質。存儲系統745可以實現為單個存儲設備,但是也可以跨多個存儲設備或子系統來實現。存儲系統745可以包括附加元件,諸如用于從存儲系統讀取操作軟件的控制器。存儲介質的示例包括隨機存取存儲器、只讀存儲器、磁盤、光盤、和閃存、以及它們的任何組合或變型、或任何其他類型的存儲介質。在一些實現方式中,存儲介質可以為非暫時性存儲介質。在一些實例中,存儲介質的至少一部分可以為暫時性的。應理解,存儲介質在任何情況下都不是傳播信號。
50.處理系統750通常安裝在電路板上,該電路板還可以容納存儲系統。存儲系統745的操作軟件包括計算機程序、固件或一些其他形式的機器可讀程序指令。存儲系統745的操作軟件包括至少可以提供圖2的操作200和圖3的操作300的協調服務730。存儲系統745上的操作軟件可以進一步包括操作系統、實用程序、驅動器、網絡接口、應用程序或某種其他類型的軟件。當由處理系統750讀取和執行時,存儲系統745上的操作軟件指示計算系統700如本文所述進行操作。
51.在至少一個實現方式中,服務730指示處理系統750識別與多個租戶中的第一租戶相關聯的邏輯路由器獲得虛擬節點的公共ip地址的請求。在一些實現方式中,在計算環境中部署層-1邏輯路由器以為計算環境的不同租戶提供聯網服務。租戶可包括組織、一個或
更多個組織的部門、或某一其他租戶。每個租戶可部署一個或更多個虛擬節點,該虛擬節點可提供一個或更多個段以提供不同的操作。這些段可以包括網段、應用段、數據庫段、或可以為租戶提供所需操作的某個其他段。當被部署時,段中的一個或更多個可能需要公共ip地址來從一個或更多個外部網絡上的計算元件接收通信。為了支持該需求,層-1邏輯路由器可以識別何時識別出針對需要公共ip地址的虛擬節點的新連接,并向控制器傳送接收公共ip地址的請求。
52.一旦識別出請求,服務730就可以指示處理系統750從可用公共ip地址池中選擇公共ip地址,并更新邏輯路由器處的nat規則以將虛擬節點的私有ip地址關聯到該公共ip地址。在一些實現方式中,邏輯路由器可以根據新的虛擬節點的段分配私有ip地址。一旦公共ip地址被分配給虛擬節點,由邏輯路由器維護的nat就可以被更新以將私有ip地址與公共ip地址相關聯。
53.除了更新nat之外,服務730還可以指示處理系統750發起在第二邏輯路由器(例如,層-0邏輯路由器)處對下一跳配置的更新,以將與公共ip地址相關聯的分組傳送至與第一租戶相關聯的邏輯路由器,其中,第二邏輯路由器將邏輯路由器連接至一個或更多個外部網絡。一旦被配置,就可以使用下一跳關聯將具有目的地公共ip地址的分組轉發到關聯的層-1邏輯路由器,并且層-1邏輯路由器可以使用更新的nat執行地址轉換。
54.在一些實現方式中,地址分配服務730可以指示處理系統750識別可用ip地址池何時滿足獲得用于該池的附加地址的標準。例如,當該池下降到可用ip地址的閾值數量以下時,服務730可指示處理系統750從提供商獲得可在將來請求中提供的附加ip地址。
55.在一些示例中,除了將ip地址分配給請求的層-1邏輯路由器之外,服務720還可以用于解除分配公共ip地址。在至少一個實現方式中,當層-1邏輯路由器支持的虛擬節點不再需要公共ip時,層-1邏輯路由器可以發起對nat的更新,以移除該公共ip地址與該路由器支持的本地網絡的私有ip地址之間的關聯。此外,層-1邏輯路由器可向控制器提供指示不再需要公共ip地址的通知,其中控制器可將該公共ip地址添加回可用池,并更新層-0邏輯路由器的下一跳配置以移除將與該公共ip地址相關聯的流量引導至層-1邏輯路由器的條目。
56.所包括的說明書和附圖描繪了具體的實現方式以教導本領域的技術人員如何制作和使用最佳模式。出于教導發明原理的目的,已經簡化或省略了一些常規方面。本領域技術人員將理解落入本發明的范圍內的這些實現方式的變型。本領域的技術人員還將理解,上文描述的特征可以各種方式組合以形成多個實現方式。因此,本發明不限于上述特定實現方式,而是僅由權利要求及其等同物限定。