我先根據 Day04-網路的建置討論(後篇) 裡面架設的網路架構用網路拓譜圖再次簡單表現出來,具體請看下圖
左側青藍色的框內是我們內網,而中間靛藍色及上行網路表示的是會暴露在外網的部分,而右側則是我們在外網如果期望連回內網的大環境應該要用 VPN 去做連線。
看到左下角的 VM 嗎,這就是我們今天的主人公 GNS3
今天如果想要測試一個網路架構,可以用 GNS3 去測試,不用買很貴的硬體,只需要在官網去下載對應的虛擬機設定即可。同時其可以直接在軟體上畫網路拓譜圖,所以能非常直觀的設計自己腦內的網路架構。
根據未來可能要建設的網路環境我建議 ram 可以給到 4GiB~8GiB,至於儲存空間也需要給多些(32G 以上最好,畢竟有些應用真的非常吃空間的) ,當然核心數多多益善,不過要注意核心的類型不要用預設的,需要調成 host(這樣才能沿用宿主機的虛擬化技術)。詳細請看下圖。
詳細的硬體配置可以參考下圖
在配置網路上前請先下載 bridge-utils,可以使用指令 sudo apt install bridge-utils
接著配置網路 /etc/netplan/01-static.yaml
可以參考下列配置
註:因為我是從其他 VM 複製過來的,所以網路介面的配置會剛好顛倒過來,配置前,請先用 ip a
看好自己的網路介面配置
network:
ethernets:
ens19:
addresses:
- 10.2.26.21/24
routes:
- to: 0.0.0.0/0
via: 10.2.26.254
nameservers:
addresses:
- 8.8.8.8
- 1.1.1.1
dhcp4: no
ens18:
dhcp4: no
bridges:
br0:
interfaces: [ens18]
dhcp4: no
配好後使用 netplan try
去測試並使用。
其實配置起來,官網的 Install GNS3 on a remote server 寫得非常清楚了,這裡我就只把我設定時的指令貼上來便是了
cd /tmp
curl https://raw.githubusercontent.com/GNS3/gns3-server/master/scripts/remote-install.sh > gns3-remote-install.sh
bash gns3-remote-install.sh --with-iou --with-i386-repository
雖然官網上說因為使用 telnet 去跑終端,所以需要用 openvpn 的相關參數讓本地端的 gns3 軟體直接和 gns3 的伺服器使用 openvpn 做連線。但是因為我們已經把伺服器放在內網了,同時傳輸時也有用 VPN ,於是 openvpn 這步就是多餘的了。
接著根據官網的 One GNS3 server, multiple clients 先下載好本地端的 GNS3 (不是VM ,是這個),然後去設定對應 gns3 的內網IP位址(埠號通常是3080),這樣應該就可以進到畫面了,畫面應該如下圖
進入 edit > preference > server 可以去修改 gns3 server 端連線的設定
在上面圖片左側側邊欄有很多圖標,從上到下分別是 routers、switches、end devices、security devices、all devices 和 add a link,著重說明
add a link 就像連網線一樣,把兩個裝置連到一起。
而 all devices 裡面有個 New Template 可以新增新的設備,我比較推薦 tiny core linux 、 webterm 還有 GNS3 Toolbox 其餘的之後有遇到再慢慢說明吧。
添加的方式也非常簡單按下 New Template 然後按照預設繼續,然後選擇你要用的應用,如 webterm 和 tiny core linux 都可以在 Guest 下找到。
這裡回收伏筆,之前多增加的網路介面並且在 gns3 的機器上新增一個橋接網路界面 ens18 的原因就是因為cloud。這樣設定完後如果你希望讓你設計的網路架構能夠 "上網" 就只需要把你的網路設備連上 cloud 中的 br0 就可以了。