上一期文章簡述了VMware NSX/NSX ALB對應IPv6的支援能力,並就建置一個標準NSX IPv6環境的IPv6啟用以及T0-Gateway與企業環境間的IPv6 Uplink/路由介接等前兩個流程做相關說明,本文將繼續介紹後續兩個步驟,以完成在NSX上的IPv6環境相關配置。
前文簡述了VMware NSX/NSX Advanced Load Balancer對應IPv6的支援能力,並就建置一標準NSX IPv6環境的前兩個流程,包含IPv6啟用以及T0-Gateway與企業環境間的IPv6 Uplink/路由介接進行了相關說明。本文將繼續討論後續步驟,完成在NSX上的IPv6環境相關配置。與前文相同,整個環境建置流程如圖1所示。
同樣如前文,作為展示環境的架構圖也如圖2所示。
步驟三:建立ND Profile及DAD Profile,並配置於T1 Gateway
在真正於Tier-1 Gateway上建立IPv6 Segment前,一個重要步驟是先配置ND Profile(SLAAC Profile)和DAD Profile(Duplicated Address Detection Profile)。這是IPv6特有的配置,在純IPv4環境內是沒有的。
在NSX介面內點選Networking - Networking Profiles - IPv6 - ND Profiles後,便可以定義ND Profile。這個配置是用來定義在Segment內進行IPv6動態配置時IP配發、Gateway告知、DNS配發的機制。很快地複習一下IPv6運作,基本上,若要在網段內進行動態IP地址與DNS資訊等配發,有以下兩種機制:
1. SLAAC(Stateless Address Auto-Configuration):透過機器發送Router Solicitation要求並從路由器回應之Router Advertisement取得網段、Gateway、DNS等等資訊,並由機器本身的識別碼,自動配置出機器的IPv6地址。
2. DHCPv6:透過IPv6版本的DHCP機制,取得網段和IPv6地址、DNS,以及其他DHCP可發送的自動配置資訊,如NTP、TFTP地址等。
這兩種方法都在不同環境中經常被使用,SLAAC的好處是配置簡單,不需要建立DHCP伺服器,但由於「Stateless」沒有狀態,所以管理者不容易追蹤機器配址資訊。
DHCPv6可以控制IP地址配發並進行記錄(Stateful),且提供更多的自動配置選項,但要建置並維護DHCP Server就比較麻煩。
在NSX內透過ND-Profile可選擇要在Tier-1 Gateway下面的IPv6 Segment採用上述的哪種自動配置機制。Profile配置畫面,如圖3所示。
ND Profile內有五種選擇:
1. Disabled:T1 Gateway不配發IPv6地址。通常使用在完全手動配置的IPv6網段環境(少見),或是確定此T1 Gateway內僅會有IPv4網段。
2. SLAAC with DNS Through RA:IP網段、Gateway及DNS資訊均由IPv6 SLAAC(Router Advertisement)機制配發。此時,要在這個ND Profiles內直接定義DNS以及網域等資訊。
3. SLAAC with DNS Through DHCP:IP網段和Gateway資訊由IPv6 SLAAC(Router Advertisement)機制配發,但DNS、網域資訊要詢問此T1 Gateway內的DHCP Server來決定。
4. DHCP with Address and DNS Through DHCP:Gateway資訊採用Router Advertisement方式,IP、DNS、網域資訊則均由DHCP Server配發。
5. SLAAC with Address and DNS Through DHCP:同時運作SLAAC與DHCPv6。這是特殊機制,僅使用在NSX Edge上。
請將上面這些機制與「http://www.ipv6.org.tw/newc.html」內,由TWNIC編撰的「IPv6位址配發技術介紹」一文進行比對:
第一種方式「Disabled」就對應到文章內的「手工配置地址」機制。
第二種方式「SLAAC with DNS Through RA」對應到文章內的「SLAAC RDNSS」方法。
第三種方式「SLAAC with DNS Through DHCP」對應到文章內的「Stateless DHCPv6」機制。
第四種方式「DHCP with Address and DNS Through DHCP」就對應到文章內的「Stateful DHCPv6」機制,是TWNIC最推薦的方法。
基本上,大部分IPv6環境僅使用上面的第二種「SLAAC with DNS Through RA」或第四種「DHCP with Address and DNS Through DHCP」即可。
另一個可考慮要進行的配置是DAD Profile(Duplicated Address Detection)。如其名,IPv6內會進行IP地址是否重複的檢查,DAD Profile內定義如果發現有重複時的行為是「Loose」(僅告警,仍配置地址)或是「Strict」(告警外禁止配置地址)。通常在這裡除非特別要求,就是使用標準的預設Profile,如圖4所示。
當上面的Profile配置完成,即可到後續要配置IPv6 Segment的Tier-1 Gateway上,於Additional Settings內進行Profile配置,如圖5所示。
另外,若ND Profile內要求是採用DHCP配發的機制(而非SLAAC),則也必須於此T1 Gateway內指定所使用的DHCP Server,如圖6所示。相關配置方式與標準IPv4環境內相同,就不贅述。但這裡特別要指出的是,雖然這個DHCP Server要使用在IPv6環境,但由於NSX內的管理用相關構件都只能採用IPv4地址,同樣地,DHCP Server內配置的那個Server Address目前也必須是IPv4,不能採用IPv6。
本步驟進行了在真正配置IPv6 Segment前,於Tier-1 Gateway上面需要進行的準備動作,包含IP動態配置的選擇、地址重複狀態選擇,以及DHCP配置。這裡因為是傳統配置IPv4網路時沒有的步驟,因此特別說明一下。
另外,特別要注意的是,雖然上面舉例都是配置在Tier-1 Gateway上,但管理者要配置在Tier-0 Gateway上也是可以的,只是這樣就比較沒有符合NSX建議的分層架構。
由於ND Profile/DAD Profile是配置在Gateway上,這代表整個Gateway下面的多個Segments都必須是同樣的配置方式。例如,管理者想要在Seg-101用DHCP方式,但Seg-102因為其他需求採用SLAAC,此時這兩個Segment就必須要放到不同的Tier-1 Gateway上,才能滿足需求。
步驟四:建立IPv6 Segments,配置虛機確認正確取得地址及相關網路資訊
接下來,在Segment的配置就非常直接了,包含:
‧建立Segment連接到Tier-1 Gateway上,配置IPv6閘道位址。如果要採用Dual-Stack,則同時將IPv4/IPv6閘道位址各自輸入。
‧如果Tier-1 Gateway上的ND Profile是採用DHCP(DHCP with Address and DNS Through DHCP),則需要配置對應這個Segment內透過DHCP派發的相關資訊(如果ND Profile採用SLAAC with DNS Through RA,就無須額外配置)。
從圖7中可看到,已建置三個Segments,Seg-mgmt網段同時有配置IPv4/IPv6閘道地址,Seg-101與Seg-102都僅配置IPv6地址。
在Seg-mgmt網段以及Seg-101有啟用DHCPv6。圖8是在Seg-101內的DHCP配置設定,快速說明如下:
‧採用Tier-1 Gateway本身的DHCP Server,並於網段內指定一個IPv6地址為DHCP Server接取至此網段的IP(2001:db8:cafe:101::dde/64)。
‧設定DHCP配發地址範圍由2001:db8:cafe:101::dddd:1至2001:db8:cafe:101::dddd:fff,這邊001~fff共4,095個IP。特別注意的是,在NSX DHCP配置內,可配發的IP數量限制最大為65,536個。
‧配置DNS Server(2001:db8:cafe:100::ddd)和網域(acme.com)。這邊的DNS Server當然是預先建立好的伺服器,透過AAAA Record提供IPv6環境內的名稱解析服務。
Seg-102網段由於採用SLAAC方式,上面的DHCP配置就不用做了。那麼,各網段的IPv6配置就完成了。
接下來的虛機建立和網路配置方式與NSX無關,不過作為展示用途,以幾台Windows虛機進行示範。Windows內的IPv6配置方式極為直接,到網卡選擇IPv6 Properties,圖9左邊是手動配置機制,而右邊則是動態IP配置。可以特別注意的是,在Windows作業系統中,無論採用SLAAC或是DHCP模式,網卡內都只要選自動配置位置就好。
透過Windows Command Line下指令來看IPv6資訊。如圖10所示,這個虛機是環境內的DNS Server,位於2001:db8:cafe:100::/64這個管理網段上,採用靜態IP地址配置(就是圖9的左方配置)。
這裡有配置四組IPv6地址,包括:手動靜態指定的::ddd、透過DHCP配置的::dddd:2(Seg-mgmt網段亦有配置DHCP)、自行以識別碼加上網段資訊配置的:5033:2924:3598:212d,以及fe80::5033:2924:3598:212d這個Link-local Address。Gateway有手動指定的::f,也有Link-local網段內指定的fe80::50:56ff:fe56:4452。至於DNS/Search List,則都正確地照手動要求配置的值出現。
配置圖內的win-101是在使用DHCP自動配置的Seg-101內。使用「ipconfig /all」看到地址配置,如圖11所示。
有正確拿到透過DHCP配置的::dddd:a(管理網段亦有配置DHCP)、自行以識別碼加上網段資訊配置的:d0f4:ed92:24e6:b9bf,以及fe80::d0f4:ed92:24e6:b9bf這個Link-local Address。Gateway就直接使用Link-local網段內指定的fe80::50:56ff:fe56:4452。DNS/Search List則都正確照DHCP內配置的值出現。
再來看配置圖內的win-102,是在使用SLAAC自動配置的Seg-102內,如圖12所示。
藉由SLAAC機制的配置,IPv6地址包含自行以識別碼加上網段資訊配置的:dcc7:adad:29b4:ebde,以及fe80::dcc7:adad:29b4:ebde這個Link-local Address。Gateway直接使用Link-local網段內指定的fe80::50:56ff:fe56:4452,DNS/Search List則都正確照SLAAC之Profile內指定的值出現。
Linux那邊的結果差不多,就不重複了。這裡特別提醒一下,不同作業系統在自動配置各個IPv6地址後面64位元(bit)的系統識別碼時,傳統是用網卡MAC Address,但不少新的系統改採用系統ID,例如Ubuntu內就是採用machine-id來進行計算。同樣地,很多新系統在與DHCP要求地址時,發送的識別碼也都改用獨立的系統ID。
所以,在虛擬化環境內複製虛機時,務必記得Windows作業系統要做System-Prep來改動SID,Ubuntu也必須要重設「/etc/machine-id」(使用「systemd-machine-id-setup」指令)。在IPv6環境內自動配置地址是基礎要求,因此上面對於各台虛機在系統ID必須要完全不同的要求,就會變得非常重要。
結語
到此已經將NSX-T內L2/L3 IPv6的網路相關配置都完成,虛機也建立好能夠互通。下篇文章要特別討論的議題是:「許多企業會用NSX微分段進行虛機保護,那IPv6內的網路安全防護有哪些配置流程呢?」,再繼續與大家討論。
<本文作者:饒康立,VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化、軟體定義網路、微分段安全防護技術,以及新應用遞送方案的介紹與推廣。>