以前在《亞馬遜AWS學習——EC2的自訂VPC配置》這篇文章中講述了如何設定自訂VPC並使自己的EC2案例能夠連線公網。本篇說一下連線公網時會泛起的一個小問題。
如題所示,在一個EC2案例擁有多個網路介面的環境下,假設為其配置公網連線會有一個「bug」。其實也不能說是「bug」,而是AWS網路環境的限制。
1. 主網路介面
咱們曉得,不少時候咱們的一台主電腦需要有多個網路介面,以使其同時架設在不同的網路中。EC2案例建立時會有一個主網路介面,預設描寫為 「Primary network interface」,每台EC2案例至少有一個網路介面,就是這個主網路介面。主網路介面,對應一個預設的子網,不能與EC2案例進行分離動作,當然也 就不能被移除。
2. 彈性網路介面(ENI)
「Elastic Network Interface」即彈性網路介面,簡稱ENI。AWS的官網上對彈性網路介面(ENI)是這樣解釋的:彈性網路介面 (ENI) 是可以蘊含如下屬性的虛擬網路介面:
主要私有 IP 位址
一個或者多個次要私有 IP 位址
每一個私有 IP 位址一個彈性 IP 位址
一個公有 IP 位址,可在您啟動案例時自動配置給 eth0 的網路介面,然而僅當您為 eth0 建立網路介面而不是使用現有的網路介面時才能實現此自動配置
一個或者多個安全群組
MAC 位址
源/目的檢查旗標
描寫
說得太正規了啊,小魚也有些望而卻步。無非世間一切奇怪之物的第一特色不是奇怪,而是看起來奇怪。大的是看起來好大,小的是看起來很小。否則《冰河 世紀》裡的猛獁象妹妹也不用躲在小樹後面以為自己是只鼴鼠,螞蟻看到自己的寫真照片也要接替螳螂去做劫匪了。這ENI再擁有彈性,也仍然個網路介面而已, 說白了就是一塊網路卡。因為EC2是虛擬裝置,網路卡的環境也被虛擬了出來。當咱們需要自己的EC2案例同時處於多個子網中時,就需要為其增添ENI。增添了 ENI之後還要將其附加到EC2案例上,選取「EC2」服務,點擊左導航「網路介面」,在清單中選中一項,再點擊「附加」,如圖:
假設該網路介面是「in-use」狀況,「附加」按鈕就不能再點擊。
3. EC2案例連線公網的必要前提
要讓EC2案例連線公網有一些必要的前提:
所在子網必需選取了」自動配置公有IP「
設定步驟是這樣的:
1.開啟舊檔 Amazon VPC 節制台。
2.在導航窗格中,點選 Subnets (子網)。
3.選取您的子網,點選 Subnet Actions,並選取 Modify Auto-Assign Public IP(修改自動配置公有IP)。
4.假設選中,則 Enable Auto-assign Public IP (啟用自動配置公有 IP) 複選框會為在所選子網中啟動的所有案例都請求公有 IP 位址。選中複選框,然後點選 Save (儲存)。
如圖:
必需建立了公網通訊閘(igw)並且關聯到VPC的路由表
選中對應的路由表項,可以看到如圖:
4. 多網路介面的限制
好了,賣關子賣了這麼久,現在該說重點了。假設你為自己的一台EC2案例事先設定好了多個網路介面,又把什麼」自動配置公有IP「啊,igw啊都設定好了,案例一啟動,呀!居然仍然沒有公有IP,當然也就不能上網,這是為嘛呢?
因為這是AWS EC2的一個限制,標準情況下一個案例只會配置一個公網IP,除非使用EIP。
對于多個網路卡的案例,啟動的時候,一個公網IP不能配置給兩個網路卡ENI,因而配置IP失敗。
有的同窗說,我儘管有兩塊網路卡,但只有一個設定了公網IP,但案例啟動之後發現仍然沒有勝利。是的,這也是不行的,因為虛擬化以及底層架構的設計,AWS EC2會限制只要網路介面有多個就不去配置公網IP,而無論你是否只有一個網路介面設定了公網IP。
5. 解決辦法
不少時候咱們就是需要一台案例對應多個網路介面(要不然要ENI幹嗎),這該怎麼辦呢?
方式一——腳踏兩船法
有一個稍稍取巧的辦法,在EC2案例啟動以前,先只保留一個網路介面,並保證其設定了公有IP,然後啟動案例,這時你會發現案例公有IP設定勝利!這時再將其他ENI附加之去,就能啦!
無非這個方式還有一個限制,假設你休止,然後啟動了案例,這時AWS會嘗試從新配置公有IP,然而檢驗到多個ENI,所以依然不能配置公有IP。公有IP配置又會失敗。
方式二——土豪法
配置EIP。是的就這麼簡單。無非停機是要付費的。哎,這讓我又愛又恨的AWS。。。
來源:本文為博主原創文章
責任編纂:梓涵
歐界科技|O2OJIE,O2O企業服務領導品牌,提供餐飲、零售O2O全套解決專案,軟硬體總體施行,品牌營運以及推廣,直達主力核心使用者!兩岸商貿,在家工作,網路創業,創業賺錢思維,微商平台,賺新台幣
歐界傳媒 iECEMBA.com
留言列表