今天的研究目標是讓實體主機(執行虛擬機的host)和虛擬主機(執行在Mininet上的主機)進行通訊,在環境上面的設定其實不難,其中最關鍵的地方在於「路由表」的設定,我們要告知實體主機目標網址(Mininet上的主機)的走向,否則封包會找不到,而導致無法通訊的情形發生
環境建置如下
- 實體主機(IP: 192.168.1.7)
- 虛擬主機(IP: 192.168.1.5) –> 使用橋接網路,網段會落在192.168.1.0/24
- 虛擬主機(IP: 10.211.55.5) –> 使用NAT網路,網段會落在10.211.55.0/24
- Mininet主機共10台(IP: 192.168.80.1 ~ 192.168.80.10)
介面設定如下





執行過程
# 執行Controller 和 Mininet
利用ipbase指令來分派host的IP
進行路由表設定[橋接網路]
未設定前,無法ping通虛擬主機


開始設定實體主機路由表
netstat -r #查看路由表
route -n add 192.168.80.0/24 192.168.1.5
[PS] 新增通往192.168.80.0網段經由192.168.1.5介面出去


# 測試與虛擬主機的連線


成功進行橋接網路的設定後,再來換試試NAT網路
進行路由表設定[NAT網路]
開始設定實體主機路由表
route -n delete 192.168.80.0/24 # 先刪除剛剛設定的路由表規則
netstat -r #查看路由表
route -n add 192.168.80.0/24 10.211.55.5
[PS] 新增通往192.168.80.0網段經由10.211.55.5介面出去,和橋接網路不同的地方在於出去的介面IP


