【多個 Mininet host 連接 — 使用Gre Tunnel 】

前者所分享關於Mininet的文章都是僅有一個虛擬機裡面執行mininet模擬環境,所測試host間的連接也都是在同一個Mininet環境,然而若是在多個不同間的VM或是Mininet環境要進行網路連接時,就要用到所謂的Gre Tunnel了

根據網路上關於Gre Tunnel的介紹,整理如下:

GRE(Generic Routing Encapsulation,通用路由封裝)是一種 IP-over-IP 的隧道協定(Tunneling Protocol),可以在虛擬對等鏈路中封裝多種網路層協定,是現今主要使用的 Overlay 網路技術之一。GRE 是 Cisco 等公司提出的技術,對部分網路層協定進行封裝並在 IPv4/IPv6 網路中傳輸,簡單說就是一種協定封裝格式,定義了如何用一種網路協定去封裝另一種網路協定。

簡單說 GRE Tunnel 原理,當我們讓兩台網路介面建立了私有通道時。當封包傳送給對方時,會將封包丟到建立 GRE Tunnel的邏輯介面進行轉送,當資料抵達另一方的邏輯介面時,在將被封裝成 GRE 的封包恢復成原始狀態傳送給目的地,因此取得的封包是乾淨的。

GRE 有以下優缺點:

  • 可跨區域部署的 L3 通道技術。
  • 使用 4 bytes 的 segment id 來通當 vlan id 的租戶隔離。
  • 基於點對點通道協定(Point to Point Tunneling Protocol),每兩個點需要有一個通道,對於第四層網路埠口(port)資源是一種浪費。
  • 增加 IP Header,因此會減少 Instance 的 MTU 值,因此會影響傳輸效率。
  • 不支援群組廣播,同網路中的一個虛擬機發送廣播 frame 後,GRE 會將其廣播到所有與該節點有通道連接的節點。
  • GRE 封裝的 IP 封包過濾與負載平衡問題,有許多第三層網路與防火牆裝置無法解析。

在實作前先看看待會我們要實作的架構

gre_tunnel.png
host 1 和 host 2 透過 Gre Tunnel 進行通訊

現在就開始準備實作吧!!首先準備兩個VM環境
VM 1 配置IP為 192.168.100.3
VM 2 配置IP為 192.168.100.4

[ VM 1 配置]

Screenshot from 2018-04-07 22-32-57.png

開啟兩個terminal分別執行Ryu Controller和Mininet
[ Ryu ]
# ryu-manager –verbose ryu/app/simple_switch_13.py

[ Mininet ]
# mn –topo=single,1 –controller=remote

Screenshot from 2018-04-07 22-36-11.png
VM 1 執行  Ryu Controller 和 Mininet

[ VM 2 配置]

Screenshot from 2018-04-07 22-38-32

開啟terminal執行Mininet

[ Mininet ]
# mn –topo=single,1

Screenshot from 2018-04-07 22-39-26
VM 2 只執行 Mininet,和 VM 1 不一樣喔 !! 

#更改VM 2 host 1 的IP 為 10.0.0.2 (避免重複)

ifconfig h1-eth0 inet 10.0.0.2

Screenshot from 2018-04-07 22-41-29.png

此時測試host 1 和 host 2 是否可以通訊 ?

Screenshot from 2018-04-07 22-42-55-2.png

Screenshot from 2018-04-07 22-42-29.png

#設定Gre Tunnel
[host 1] ovs-vsctl add-port s1 s1-gre1 — set interface s1-gre1 type=gre options:remote_ip=192.168.100.4
———————————————————-
[host 2] ovs-vsctl add-port s1 s1-gre1 — set interface s1-gre1 type=gre options:remote_ip=192.168.100.3

Screenshot from 2018-04-07 22-44-21-2.png
VM 1 host1 的gre tunnel 配置
Screenshot from 2018-04-07 22-45-10.png
VM 2 host2 的gre tunnel 配置

設定完gre tunnel 後host間可以進行通訊了

Screenshot from 2018-04-07 22-45-37.png

Screenshot from 2018-04-07 22-45-21

 

 

 

 

 

 

 

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s