本文章為介紹Oracle Virtual Cloud Network,總共有上下兩篇,建議先閱讀第一篇。
5.對等互連
使用虛擬雲端網路對等連線(VCN peering)來連結兩個虛擬雲端網路,透過建立兩者之間的私有連線通道,對等連線又依虛擬雲端網路是否存在同一個區域區分為兩種類型:
- 本地對等連線(區域性) : 連結位於同一個區域內沒有IP重疊(overlap)的虛擬雲端網路,需要在與連結的虛擬雲端網路的路由表內配置本地對等連線閘道(local peering gateway, LPG) ,不能遞傳網路。
- 遠端對等連線 (跨區域性) : 遠端對等連線(Remote peering) 則是處理跨區域的虛擬雲端網路連接,可能是基於異地備援、備份的考量會使用這種架構,此時使用的就是動態路由閘道(DRG),如同本地對等連線一樣不能有IP重疊,也不能遞傳網路。
6.網路安全
網路服務提供了設置虛擬防火牆的方式,來限制封包層級的網路安全,分別為安全列表(Security list)與網路安全群組(Network Security Group, NSG)。
6.1安全列表
安全列表(Security list)是位於子網路層級的虛擬防火牆,控制所有實例網路進出子網的規則,不論是否有跨越虛擬雲端網路,點入預設安全規則後,於左方資源分為輸入規則(Ingress Rules) 與輸出規則(Egress Rules),各有預設開啟的的規則 。
輸入規則 : 在輸入規則(Ingress Rules)內點選加入規則(Add Ingress Rules)就可以新增,如下圖,預設的輸入規則有三條,也可以視需求修或刪除:
- 狀態為有狀態,允許TCP 協定目標埠為22來源IP為0.0.0.0/0(整個網路)任何通訊埠的輸入,這條規則使得在建立完Linux實例後可以立即使用SSH連線到該實例,而不用設定任何安全列表。
- 狀態為有狀態,允許 ICMP type 3 code 4 來源IP為 0.0.0.0/0 的輸入
- 狀態為有狀態,允許 ICMP traffic type 3 (所有的 codes) 來自該虛擬雲端網路的所有無類別域間路由的輸入,這條規則使得可以接受所有來自虛擬雲端網路內其他實例的錯誤訊息。
輸出規則 : 如圖4-17,設允許所有的網路輸出至任何目的地,因為狀態為有狀態,所以當網路輸出會有連線追蹤的回應,不論輸入規則如何設定。
預設的安全列表皆為有狀態(Stateful)的,若使用無狀態(Stateless)就不會自動允許回應封包,這就意味著不想要做連線追蹤,當有大量的連線時最好就採用無狀態。
6.2網路安全群組
如果位於相同子網又有多個實例必定會需要不同的防火牆,這樣安全列表就無法達成需求,這時候甲骨文還提供了網路安全群組(Network Security Group, NSG),網路安全群組為虛擬網路介面卡層級的虛擬防火牆,使得不同的實例於相同子網內可以有不同的網路通訊安全需求,對於使用安全列表或是網路安全群組則取決於是否子網路內有一致的應用與規範,但若兩種安全設定都使用了,則是集合的效果,因為只要其一開啟就能允許封包通過。
7.域名系統
域名系統(Domain Name System, DNS)讓運算實例可以使用主機名稱來解析主機名稱,如下圖,可以使用網際網路與虛擬雲端網路解析(Internet and VCN Resolver)與客製化解析(Custom Resolver)方式,預設使用前者。
- 網際網路解析 : 網際網路解析(Internet Resolver)透過網際網路執行域名解析,不需要通過網際網路閘道(Internet Gateway)或連接至本地部屬(On-Premises) 的網路。
- 虛擬雲端網路解析 : 虛擬雲端網路解析(VCN Resolver)解析同一個虛擬雲端網路內的其他的主機名稱。
- 客製解析 : 主要會透過客製解析(Custom Resolver)讀取本地部屬的域名系統伺服器,提供實例解析主機名稱,透過動態路由閘道設置虛擬私人網路或快速連線,最多可以有三個域名系統伺服器。
當建立虛擬雲端網路、子網路、實例時可以指定域名系統的標籤如表
VCN | <VCN DNS label>.oraclevcn.com |
Subnet | <subnet DNS label>.<VCN DNS label>.oraclevcn.com |
Instance FQDN | <hostname>.<subnet DNS label>.<VCN DNS label>.oraclevcn.com |
完整網域名稱(Fully Qualified Domain Name, FQDN)可用來解析實例的私有 IP 位置而不能自動拿來解析公有 IP,所以目前並無法透過完整網域名稱進行SSH連線。
8.虛擬私人網路與快速連線
連結至雲端網路有三種方式,如前節可以使用公有 IP連線,透過網際網路閘道,公有 IP 分為預留(Reserved)與臨時(Ephemeral)。除此之外還提供兩種方式可以將本地網絡連接到雲端,虛擬私人網路連線(VPN Connect)使用網際網路安全協定(IPsec)協定來授權與加密,主要又透過兩種方式來實現,這種方法是免費使用於雲端與地端環境,或是使用自己的虛擬私人網路軟體,運行於實例服務,而最後一種連線至雲端的方式為快速連線(FastConnect),這方式提供了一個高可用、可效能的私有通道,並有服務等級協定的保證。當虛擬雲端網路要連接網際網路以外的網路時使用動態路由閘道,也包含與本地端的連接,我們所要研究的兩種方式都是透過動態路由閘道,並要更新路由表的路由目標(Route Target) 為動態路由閘道,動態路由閘道是獨立的物件,當建立完後再將它附加到虛擬雲端網路,與虛擬雲端網路為一對一的關係,並提供實體與邏輯的兩條通道來達到高可用性。
8.1 虛擬私人網路
虛擬私人網路連線(VPN Connect)為一項免費的服務,提供了兩種路由模式靜態路由(Static Routing)與動態路由(Dynamic Routing),使用網際網路安全協定(IPsec)加密與認證,網際網路安全協定有兩種模式,直接傳輸模式(Transport Mode)與通道傳輸模式(Tunnel Mode),甲骨文基礎設施芸目前只支援通道傳輸模式,每個通道可以選擇不同的路由模式。
8.2 快速連線
快速連線(FastConnect)使用邊界閘道器協定(Border Gateway Protocol, BGP)協定提供了一個專用私有且具有高頻寬、99.95的可用性與一致的連接,可以選擇直接連到雲端或是透過網際網路服務供應商(ISP)兩階層的連接,如圖4-19,根據所連到的網際網路服務供應商所提供的副可以選擇layer2或是layer3,速度1Gpbs到10Gbps,甚至可以超過10Gbps。有兩種方法可以使用快速連線,第一種為私有對等(Private Peering) 延伸地端的資料中心到虛擬雲端網路,透過私有連接的方式,並可以於虛擬雲端網路內運行服務,毋須使用網際網路安全協定虛擬私人網路(IPSec VPN) 或網路位址轉譯 (NAT),第二種為公共對等(Public Peering),可以連接地端的環境與一些雲端公有服務例如物件儲存或虛擬雲端網路中的公共負載平衡器,而流量毋須穿越網際網路路徑。快速連線僅針對已消耗的端口時數收費,而不對數據傳輸收費。
9.負載均衡器
負載均衡器(Load Balancer)位於前端工作站(Clients) 與後端伺服器(Backend)之間,當有多台實例同時提供服務時,使用負載均衡器(Load Balancer)作為入口端點來分配流量,以提高整體可用頻寬與應用程式層級的可用性提高容錯能力。
如下圖,分送流量的方式有循環(Round Robin)、最少連線(Least Connections)或IP 雜湊(IP Hash)三種。
在控制台可以看到後端實例的健康狀態,分為(ok, warning, critical, unknow),對於後端伺服器的管理,如圖,可以編輯通訊埠(Port),若有比較偏好的後端伺服器,也可以編輯後端伺服器的權重比(Weight),進而調整連入的狀況,設定排泄狀態(Drain State)設為”True”則可以停止均衡器在往此實例發送連線,以對此做維護的工作。
負載均衡器又分為公有負載均衡器(Public Load Balancer)與私有負載均衡器(Private Load Balancer)
9.1 公有負載均衡器
公有負載均衡器(Public Load Balancer) 會配置一個公有IP,是一個區域性的服務,當區域內有多個可用區時,可建構均衡器的可用性架構,建議使用區域內子網路(Reginal subnet),或是在每個可用區內的子網路(AD-specific subnet),差別在使用區域子網路,負載平衡服務會在不同的可用區內創建一個主負載平衡器和一個備用負載平衡器,以確保即使在其中一個可用區中斷的情況下也可訪問,若使用AD-specific分別在兩個可用區內建立均衡器,當均衡器不可用時,公有IP則會將服務帶到另一個均衡器,但此時的均衡器並沒有區分主負載平衡器與備用負載平衡器。不論使用哪一種類型,都會消耗均衡器子網路內的私有IP,區域型消耗該子網路兩個私有IP,指定可用區型個別消耗子網路內一個私有IP,同時會分配浮動的公有IP做故障移轉(Failover)用途,若是區域內只有一個可用區,就沒有以上故障移轉的功能來達到均衡器的高可用性。
9.2私有負載均衡器
如果要隔離平衡區與網際網路,則會建立私有負載均衡器(Private Load Balancer),配置私有IP作為均衡器的入口,私有負載均衡器只需要建立在一個子網路內就會自行配置主/備均衡器,消耗該子網路內三個私有IP,主/備均衡器與浮動私有IP。如果可用區故障則會觸發故障移轉,若只有一個可用區則沒有該功能。
結論
本章探討了許多雲端網路服務,在實驗建立前了解其架構尤為重要,包含網路架構的規劃,連線安全的設計,建立資源時選擇於哪一個區間,更是容易搞混,大多的資源我們需要先指定其位於哪個網路。
安全面有每個子網路對應一張路由表定義了進出虛擬雲端網路的封包(包含虛擬雲端網路對虛擬雲端網路,如果沒進出虛擬雲端網路就不需要路由表),而防火牆安全列表與網路安全群組,則定義不論是子網對自網或是進出虛擬雲端網路的規則,因為安全列表是子網路層級的,本研究建議就不要使用了,全部針對虛擬網路卡使用網路安全群組,不然就得花點心思設計子網路分群應用。
雲端可用性面負載均衡器扮演重要的角色,與實驗當中也驗證了負載均衡器分流的功能,並可以檢視後端伺服器的健康狀態。