虛擬化與網路
一般我們使用虛擬化平台(Hypervisior)時,除非Server上的網卡數量足夠你一個port對應一個Native VLAN,否則我們通常都會在Hypervisior的Virtual Switch(vSwitch)
上使用到VLAN(IEEE 802.1q)
的功能,當vSwitch設定了一個VLAN ID,Server的實體網卡對應到Physical Switch上的port也要設定VLAN Tag才能使Virtual Machine(VM)
可以正常的連通網路。
VLAN這個協定的原理對於主機管理者來說通常是陌生的,他還需要網路管理者的協助才能讓VM的網路可以正常使用,而Server節點數量少的時候還沒關係,但數十台以上,設定上就會變得很繁瑣。
ALE Network Security
Alcatel-Lucent Enterprise(ALE) Network Security Framework中有一個解決方案名為Access Guardian
,他的設計是可以針對所有接入的終端設備進行辨識
、認證
、授權
、QoS
等等,也就是我們常聽到的Network Access Control(NAC)
以及Bring Your Own Device(BYOD)
。
其中一個功能叫Universal Network Profile(UNP)
,我們可以將這個功能運用在dynamic vlan tag assign 上,就可以讓網路管理者不需要查找Server對應的port有哪些,只要vSwitch設定的VLAN ID有在Physical Switch上,profile的設定會自動套用。
概念就是會根據Virtual Machine的Life cycle(creation, migration, deletion)而進行profile auto-provisioning。
如果想要VLAN都可以自動create,可以啟動下面這個指令
1 -> unp dynamic-vlan-configuration
不過要特別注意,啟動這個功能所建立的VLAN型態會是UNP Dynamic Vlan
,也因為是動態產生,所以無法手動刪除。
Environment
我這裡所設定的環境如下:
Hypervisior: Nutanix AHV (4 nodes)
Physical Switch: ALE OS6900
Nutanix AHV各個節點預先已與ALE OS6900設定好link aggregation(LACP)。
Predefine UNP
Login to OS6900 並設定以下指令
1 2 3 4 5 6 7 8 9 10 11 unp profile "unp-ntnx-ahv" unp profile "unp-ntnx-ahv" map vlan 100 unp port-template unp-tpl-ntnx direction both default-profile "unp-ntnx-ahv" classification trust-tag admin-state enable unp linkagg 1 port-type bridge unp linkagg 2 port-type bridge unp linkagg 3 port-type bridge unp linkagg 4 port-type bridge unp linkagg 1 port-template unp-tpl-ntnx unp linkagg 2 port-template unp-tpl-ntnx unp linkagg 3 port-template unp-tpl-ntnx unp linkagg 4 port-template unp-tpl-ntnx
第1, 2行說明設定一個unp profile unp-ntnx-ahv , default vlan id 為 100。
第3行說明設定一個unp port-template unp-tpl-ntnx , 預設的profile套用unp-ntnx-ahv , 並允許vlan tag 封包。
第4-7行指的是將Server網卡所接的LACP ID設定成 bridge mode, 允許在同一個port上使用不同的unp profile。
第8-11行就是將port-template unp-tpl-ntnx 設定在LACP ID上。
Verify UNP
VM creation
當我們在hypervisior上create一台VM,並使用vlan id 161
的網路,OmniSwitch就會辨識出封包有vlan tag,然後進行profile auto-provisioning把VM所在的port打上dynamic vlan tag
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 > show unp user User Port Username Mac address IP Vlan Profile Type Status -----+--------------------+-----------------+--------------+----+------------------------------+------------+----------- 0/1 00:e0:ed:9a:e5:3b 00:e0:ed:9a:e5:3b 10.255.100.17 100 unp-ntnx-ahv Bridge Active 0/1 50:6b:8d:39:08:0d 50:6b:8d:39:08:0d 10.255.100.13 100 unp-ntnx-ahv Bridge Active 0/2 00:e0:ed:9a:e7:e7 00:e0:ed:9a:e7:e7 10.255.100.16 100 unp-ntnx-ahv Bridge Active 0/2 50:6b:8d:14:cf:85 50:6b:8d:14:cf:85 172.16.1.123 161 - Bridge Active 0/2 50:6b:8d:9b:d8:10 50:6b:8d:9b:d8:10 10.255.100.12 100 unp-ntnx-ahv Bridge Active 0/3 00:e0:ed:9a:e5:31 00:e0:ed:9a:e5:31 10.255.100.15 100 unp-ntnx-ahv Bridge Active 0/3 50:6b:8d:2b:21:26 50:6b:8d:2b:21:26 10.255.100.11 100 unp-ntnx-ahv Bridge Active 0/4 00:e0:ed:9a:e4:9b 00:e0:ed:9a:e4:9b 10.255.100.14 100 unp-ntnx-ahv Bridge Active 0/4 50:6b:8d:14:38:61 50:6b:8d:14:38:61 10.255.100.10 100 unp-ntnx-ahv Bridge Active Total users : 9
VM migration
當VM在做vMotion的時候,也能夠偵測並且將vlan tag切換到另一個Port上。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 > show unp user User Port Username Mac address IP Vlan Profile Type Status -----+--------------------+-----------------+--------------+----+------------------------------+------------+----------- 0/1 00:e0:ed:9a:e5:3b 00:e0:ed:9a:e5:3b 10.255.100.17 100 unp-ntnx-ahv Bridge Active 0/1 50:6b:8d:39:08:0d 50:6b:8d:39:08:0d 10.255.100.13 100 unp-ntnx-ahv Bridge Active 0/2 00:e0:ed:9a:e7:e7 00:e0:ed:9a:e7:e7 10.255.100.16 100 unp-ntnx-ahv Bridge Active 0/2 50:6b:8d:9b:d8:10 50:6b:8d:9b:d8:10 10.255.100.12 100 unp-ntnx-ahv Bridge Active 0/3 00:e0:ed:9a:e5:31 00:e0:ed:9a:e5:31 10.255.100.15 100 unp-ntnx-ahv Bridge Active 0/3 50:6b:8d:2b:21:26 50:6b:8d:2b:21:26 10.255.100.11 100 unp-ntnx-ahv Bridge Active 0/4 00:e0:ed:9a:e4:9b 00:e0:ed:9a:e4:9b 10.255.100.14 100 unp-ntnx-ahv Bridge Active 0/4 50:6b:8d:14:38:61 50:6b:8d:14:38:61 10.255.100.10 100 unp-ntnx-ahv Bridge Active 0/4 50:6b:8d:14:cf:85 50:6b:8d:14:cf:85 172.16.1.123 161 - Bridge Active Total users : 9
VM deletion
當我們將VM shutdown/delete,Omniswitch會自動的移除vlan 161的device。
1 2 3 4 5 6 7 8 9 10 11 12 13 > show unp user User Port Username Mac address IP Vlan Profile Type Status -----+--------------------+-----------------+--------------+----+------------------------------+------------+----------- 0/1 00:e0:ed:9a:e5:3b 00:e0:ed:9a:e5:3b 10.255.100.17 100 unp-ntnx-ahv Bridge Active 0/1 50:6b:8d:39:08:0d 50:6b:8d:39:08:0d 10.255.100.13 100 unp-ntnx-ahv Bridge Active 0/2 00:e0:ed:9a:e7:e7 00:e0:ed:9a:e7:e7 10.255.100.16 100 unp-ntnx-ahv Bridge Active 0/2 50:6b:8d:9b:d8:10 50:6b:8d:9b:d8:10 10.255.100.12 100 unp-ntnx-ahv Bridge Active 0/3 00:e0:ed:9a:e5:31 00:e0:ed:9a:e5:31 10.255.100.15 100 unp-ntnx-ahv Bridge Active 0/3 50:6b:8d:2b:21:26 50:6b:8d:2b:21:26 10.255.100.11 100 unp-ntnx-ahv Bridge Active 0/4 00:e0:ed:9a:e4:9b 00:e0:ed:9a:e4:9b 10.255.100.14 100 unp-ntnx-ahv Bridge Active 0/4 50:6b:8d:14:38:61 50:6b:8d:14:38:61 10.255.100.10 100 unp-ntnx-ahv Bridge Active Total users : 8
結論
這裡所提到的只是我在運用Access Guardian針對Virtualization的一個小應用,但可以幫助我解決繁瑣的設定,達到Network Automation願景。