ALE OmniSwitch Network Automation for Virtualization

虛擬化與網路

一般我們使用虛擬化平台(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願景。