十分方便的 RouterOS 網絡實驗室

上次我提到在 vSphere Hypervisor 安裝了幾個 vyos 來做網絡實驗,後來我想到其實自己家中的器由器的那個作業系統 RouterOS 可能更適合用來做網絡實驗,因為它的 x86 版本就內建有 KVM 虛擬化功能,我可以在其上建立一堆虛擬路由器,而且功能更齊全,有基本的 switching、iptables 功能,又可以建立虛擬網絡介面、VPN 伺服器、EoIP、VRRP 之類,又可以設定 BGP、OSPF、RIP 等路由。它可以經 SSH 設定,又提供網頁介面,亦提供 Windows 的 GUI 設定程式,設定起來十分方便。

先到這裡下載它的 x86 版 iso,然後上載到 vSphere Hypervisor 的 Data Store,建立新的虛擬機器。

注意它只支援最多 2GB 記憶體,網絡卡須選用 E1000E,而硬碟要選用 IDE。

另外,就像在 Windows Server 2012 R2 上安裝 hyper v 一樣,要設定 nested virtualization,先從 Data Store 下載 RouterOS 虛擬機器的 vmx 檔案。

在 vmx 檔案上加入以下兩行:
vhv.enable = "TRUE"
hypervisor.cpuid.v0 = "FALSE"

然後再上載到原來位置就可以。

啟動虛擬機器後的安裝畫面,我全選了它們,特別是 kvm:
Capture-routeros1

半分鐘內就完成安裝:
Capture-routeros2

第一次啟動,注意它這一刻是試用版,暫時不能使用虛擬化功能:
Capture-routeros3

我將 RouterOS 虛擬機器的網絡卡跟我家的網絡連接起來,所以能夠用上同一子網絡:
Capture-routeros4

由於在同一子網絡,我可以直接用它的 GUI 程式登入系統:
Capture-routeros5

看 License,現在是 Level 0,即是試用版:
Capture-routeros6

到它的網站購買 License,我選用了 Level 4:
Capture-routeros7

不同級數 License 的功能:
Capture-routeros8

購買和安裝 License 後重新啟用 RouterOS,之後就能啟用 KVM 虛擬化功能,先製作跟 RouterOS 「自己」一樣的 image,然後用此 image 建立虛擬路由器(由於在 GUI 介面總是建立失敗,所以我 SSH 了進去,用指令建立 image):
Capture-routeros9
Capture-routeros10

成功啟動 KVM1 虛擬路由器,這是它的指令介面:
Capture-routeros11

在外層的 RouterOS 建立虛擬 Ethernet 介面和橋接器,好讓它可以跟另外建立、虛擬路由器的介面進行溝通:
Capture-routeros12
Capture-routeros13
Capture-routeros14

在橋接器上把它們連接在一起:
Capture-routeros15

在外層和虛擬路由器各自設定好 IP 地址,我設定了 192.168.100.0/24 這個網絡,之後就能互 ping:
Capture-routeros16

設定 Packet Sniffer 功能,好讓我可以抓取橋接器上的封包,傳送給 192.168.88.0/24 網絡上另一台電腦上的 Wireshark 作分析,連上次提到的 vSwitch 也不用設定:
Capture-routeros17
Capture-routeros18

看到抓取到的封包:
Capture-routeros19

我也能在 Wireshark 上看到這些封包,我們可以用 tzsp 這個 Filter 去過濾出由 RouterOS 傳送出來的封包,可見它以 UDP 傳送到我家網絡上的其他電腦:
Capture-routeros20

這就是上述的設定,RouterOS 和 KVM1 在 192.168.100.0/24 的網絡互 ping,然後 RouterOS 的 Packet Sniffer 功能將 Packet 經我家的 192.168.88.0/24 網絡,自 Intel NUC 經我家的路由路傳送到我的電腦,利用 Wireshark 進行分析:
Capture-routeros22

參考資料:
MikroTik
MikroTik Documentation

本文連結