上一篇我們討論的IPv6相對于IPv4的諸多變化和相應的基礎知識。這一篇,我們要討論的是如何根據這些變化,具體落實到在公有云上部署一套自己的IPv6系統,以驗證或者直接在IPv6的網絡世界中提供自己的業務服務。
我們在海外測試IPv6的過程中,在AWS上和Azure云都做了詳盡的技術對比和測試,其中的經驗借此分享給大家。
在公有云上IPv6配置部署的方式
在公有云上部署IPv6應用原理上和使用配置部署IPv4的應用和服務是一樣的。然而,由于公有云底層架構的不同,具體的配置架構和方法則差距很大。總體來說,有2種方式:
直接綁定在VPC的虛機上,和IPv4并存使用
需要綁定在VPC的特定網絡設備上(如Net Gateway或者Load Balancer)
下面我們就以AWS和Azure分別說明兩種VPC配置IPv6的方法。
01
AWS 配置IPv6的方式
AWS的VPC配置IPv6相當的簡單直接。從2016年起,AWS的EC2就已經支持IPv6了。
01 為AWS VPC添加IPv6的綁定
首先,通過https://console.aws.amazon.com/vpc/ 通過AWS console訪問VPC的配置。
對于沒有VPC,需要先創建VPC。
通過AWS console中,通過VPC創建向導來創建一個具有 /16 IPv4 CIDR 塊的 VPC 并將一個 /56 IPv6 CIDR 塊與該 VPC 關聯。有關更多信息,請參閱您的 VPC。IPv6 CIDR 塊的大小是固定的 (/56),IPv6 地址的范圍是從 Amazon 的 IPv6 地址池中自動分配的 (不能手動自選范圍)。
將 Internet 網關連接到 VPC。
在 VPC 中創建一個具有 /24 IPv4 CIDR 塊和 /64 IPv6 CIDR 塊的子網。IPv6 CIDR 塊的大小是固定的 (/64)。
創建一個自定義路由表,并將其與您的子網相關聯,以便在子網與 Internet 網關之間進行通信。
具體而言,配置IPv6 CIDR就是在第一步的VPC創建向導中實現的:
隨后,選擇第一個選項,即 VPC with a Single Public Subnet,然后選擇 Select。
在配置頁面上,在 VPC name 字段中為您的 VPC 輸入一個名稱 (例如,my-vpc),并在 Subnet name 字段中為您的子網輸入一個名稱。
然后,就到了配置IPv4和IPv6 CIDR的階段。對于 IPv4 CIDR block,您可以保留默認設置 (10.0.0.0/16) 或指定自己的設置。對于 IPv6 CIDR block,則選擇 Amazon-provided IPv6 CIDR block。
對于 Public subnet's IPv4 CIDR,保留默認設置或指定您自己的設置。對于 Public subnet's IPv6 CIDR,選擇 Specify a custom IPv6 CIDR。您可以保留 IPv6 子網的默認十六進制對值 (00)。
保留頁面上的其余默認配置,然后選擇 Create VPC。
02 為已有的VPC添加IPv6地址
作為已經使用了IPv4搭建的EC2 instance,為其所在的VPC 添加IPv6的地址則比上文中提到的從頭創建VPC就更加簡單了。
首先,仍舊是通過https://console.aws.amazon.com/vpc/ 訪問VPC的配置。
隨后,選擇左側導航欄里的Your VPCs:
隨后,在右側下拉框選擇Edit CIDRs:
這時就會看到IPv6的CIDR還沒有配置:
直接選擇“Add IPv6 CIDR”來為VPC添加IPv6。
如何查看EC2的IPv6地址
首先訪問https://console.aws.amazon.com/ec2/, 進入EC2的配置界面。
然后,在左側的導航欄里選中自己的Instance,這時,下方的具體信息欄里就可以看到這個Instance的具體配置信息,比如IPv4的內網、外網地址等。
依次選擇Networking → Manage IP Addresses:
02
在Azure中為VPC配置IPv6
通過在AWS中配置IPv6簡直不能再簡單了,然而,到了Azure,你還想鼠標點點點就配置了,那么你就錯了。因為,這里只能通過Azure里portal中輸入命令,或者運行腳本才能配置。
不過,這里有個好消息,就是使用Windows平臺的用戶,可以通過按照Azure for PowerShell的插件來在本機運行Azure命令和腳本,比起來直接訪問Azure Portal 要速度快的多(想想國內打開Portal的速度……)。
除此2個方法之外,還有一個ARM模板的方法創建。
01 Azure配置的基本方法
我先討論一下Azure VPC的IPv6的基本原則:
Azure 的VPC中已有VM不支持添加IPv6,只能為了支持IPv6新創建VM
公網可訪問的IPv6必須綁定在Load Balance上
訪問VM的公網IPv6Inbound通過Load Balance上的映射關系實現
而出向的IPv6是另外一個綁定關系,Egress IPv6
同一個VPC中,VM之間不能使用IPv6相互通信,IPv6只用于VM和外部的IPv6通信
當然,以上原則是我8月份驗證的,也許Azure配置原則發生變化了,也未可知。
好在終于找到了一個教程,其完成的結構如上圖,即一個Load Balancer對應了2個VM,這樣他可以在一個VM升級改造過程中,仍舊有另一個VM提供服務。
不需要那么多VM,其實一個就夠了,然而他的script顯然有不少bug。 分步運行,然后逐條的排錯,最后終于能夠順利運行下來了。
具體步驟如下:(如需腳本,請直接在公號后臺聯系我們)
建立一個新的Resource Group
建立vNet的子網
建立IPv4和IPv6的公網地址
Load Balancer的公網一側的配置
Load Balancer 內網側的配置
Load Balancer 的入向NAT配置
建立RDP端口3389的探測
建立 Load Balancer上的負載均衡策略
創建Load Balancer
獲取vNet信息
給VM的網卡配置IPv4、IPv6
配置VM的存儲賬號(硬盤)
配置Admin的用戶密碼
創建VM
腳本運行過程中,會不斷有提示信息,所以,你要做的事就是一杯咖啡,慢慢等待。(當然,有了bug請及時刪掉已經創建的內容,這個可以從portal做)。
評論
查看更多