iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 8
0

若是想要了解 SDN OpenFlow 以及 P4 請不要吝嗇點擊喜歡或是訂閱我喔!(訂閱又不收費XD)
未來有機會也可以跟大家分享我當網管的辛酸血淚史,可以讓人解決問題時可以參考我的文章。

話不多說,我們就累狗!!/images/emoticon/emoticon05.gif

今天要講解的是 Basic Tunneling!!
這邊先給大家一個基本的 topology 這是最最最基本的 拓樸圖!
https://ithelp.ithome.com.tw/upload/images/20200914/20130051gtLVxLl3MK.png

那這次的目標就是要添加對 basic tunneling protocol 的支援!
一般來說 switch 是透過 dst 的位置也就是目標 IP 進行 forwarding 的動作~
我們要做的事情定義一個新的 header 並加以封裝 packet,
目的就是在於要修改 switch 的 ID,以確定我的 dst 的 port 達到 tunnel 的目的。

那之前付的 reference 有付一個 basic_tunnel.p4的檔案可以提供大家去做修改!

原則上 Parser的 地方就是跟我們前幾天提到的地方一樣

parser MyParser(packet_in packet,
                out headers hdr,
                inout metadata meta,
                inout standard_metadata_t standard_metadata) {
    state start {
        transition parse_ethernet;
    }
    state parse_ethernet {
        packet.extract(hdr.ethernet);
        transition select(hdr.ethernet.etherType) {
            TYPE_IPV4 : parse_ipv4;
            default : accept;
        }
    }
    state parse_ipv4 {
        packet.extract(hdr.ipv4);
        transition accept;
    }
}

我們的目標就是要去自定義自己所需要傳的switch 所以我們需要透過架 tunnel的方式來做

action myTunnel_forward(egressSpec_t port) {
    pratice;
}

一樣先交給大家做練習,明天再公布解答!

完成之後 一樣到 該目錄底下

make run
xterm h1 h2

此時用 h2 開啟 receive.py這個檔案

./receive.py

https://ithelp.ithome.com.tw/upload/images/20200914/20130051iQXf0UWdmE.png

並用 h1 開啟 send.py 這個檔案 並帶入 dst 的 IP 位置

./send.py 10.0.2.2 "Hello World!"

https://ithelp.ithome.com.tw/upload/images/20200914/201300512qaI8bnIYk.png

這樣子我們就可以看到該傳送者的資訊了
明天再公布要怎麼建立 tunnel~

在此付上我的 Reference,我將會以簡短白話的方式來講解 P4 這套語言,若是你/妳不嫌棄可以訂閱我的發文
每天就根據我自己了解的程度來做發文的動作,如果自己對於 P4也有興趣可以先來預習,那我們明天見!
Reference :
P4_turtorial
[(http://docs.google.com/presentation/d/1zliBqsS8IOD4nQUboRRmF_19poeLLDLadD5zLzrTkVc/edit#slide=id.g37fca2850e_6_1802)]


上一篇
[Day7] 網管大小事 初階-管理cisco switch 所使用到的指令(基本查詢) 各位可以給我一些回饋
下一篇
[Day9] P4 Basic Tunnel 制定 Forwarding Rules(2)
系列文
A survey between OpenFlow Protocol and P4 in Software Defined Network(SDN)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言