發表文章

目前顯示的是 6月, 2014的文章

SDN 簡介

這邊是 2014.06.23 在元智大學介紹  SDN 所使用的簡報。這幾份簡報基本上已經覆蓋了 SDN 的技術研究以及實際開發所需要的背景,很適合當作入門的簡報。當中還缺少一份關於 OpenFlow 的介紹,因為那是我同事製作的,不方便放到我自己的 Blog 上面,所以之後我自己補上那一份的自行製作的投影片。另外,我很討厭我公司的簡報背景,所以我換了自己喜歡的 template 才放上來。 如果有人需要我去簡介的話,歡迎隨時跟我聯絡,我很樂意唷! 01.Introduction.to.SDN 這份投影片是從故事入手,幫助大家輕鬆學習 SDN 的概念,也同時帶出業界不同公司的不同看法。 02.SDN.Research.Tools SDN 很紅,但如果要做研究,應該要從何上手?OpenFlow Switch 很貴,我該怎麼辦?這份投影片介紹目前 SDN可使用的相關工具,並給了自己的 Comments。 03.SDN.APPs 軟體定義網路,關鍵當然在軟體(智能),該怎麼設計自己的網路才是 SDN 的真正關鍵。本份投影片介紹了 SDN App 的設計概念,透過實際的例子來帶出 SDN 創新思維。

Netfilter Hook 程式範例

圖片
Netfilter 是 Linux Kernel 裏面對於網路封包處理一個非常有趣的設計,它在 Linux Kernel 的封包處理路徑上安插了許多的 Hook Point,這樣使用者可以隨自己的高興在這些 Hook Point 上安插自己的封包處理行為(使用註冊 callback function的方式),常見的應用如防火牆檢查、NAT等。在這邊稍微提一下,很多人會說 Linux 是用 iptables 來做防火牆的,我不太喜歡這個說法(但我不會說它是錯的),因為 iptables 不過是設定 netfilter 的 user space 工具,當你使用 iptables 時,不過就是將那些功能模組配合上使用者輸入的參數,然後掛載到對應的 Hook Point。下面是來自官網的描述: netfilter is a set of hooks inside the Linux kernel that allows kernel modules to register callback functions with the network stack . A registered callback function is then called back for every packet that traverses the respective hook within the network stack . 至於有哪些 Hook Point 可以參考下面這張來自 Wiki 的圖:  這個概念是從 Linux Kernel 2.4 以後就內建在核心的機制。基本上我在研究所很常利用 iptables 這個設定工具來使用 netfilter,但一直沒有實際寫這 callback 的機會(之前工作上沒碰到,外加人懶)。但現在因為工作上有特殊的需求(來自一個莫名其妙的設計),所以就請(逼迫?)我同事撰寫了一個 Netfilter Callback 的模組範例出來(從程式裡可以找到作者),下面就是這個範例: # include < linux/module.h > # include < linux/kernel.h > # include < linux/init.h > # include < l