0%

VPN server is a very useful tool for your network connectivity, although there're many online VPN service around the world, it's slow speed and money cost and you can't sure they won't collect your connection data. That's why sometimes we want to build the VPN server by ourself and this porst introduce a way to setup a VPN server in your FreeBSD server.

Read more »

Brief

本章節的題目比較沒有什麼特定演算法,根據題目敘述去解即可

Read more »

Purpose

在Group table中,有一個類型為select,此類型的group會隨機執行底下的其中一個bucket。若我們將所有的output action都放進這個group中,則switch會將封包隨機導向不同的port,藉此達成multipath routing的功用。

Environment

使用下列的圖作為我們的網路環境,在此圖中。S1~S5都是支援OpenFlow 1.3的OpenFlow switch,左邊的Host 1則是一個Sender,會對於右邊的九個Host發送資料
picture.png

Read more »

在Openflow的協定中,有時候會想要知道每條`link`的`capacity`,然後就可以藉由當前的rate來判斷這個Link是否壅塞。 本文嘗試使用 `Floodlight` Controller 作為範例來展示如何使用透過預設的 API 來取得每個 Port 的資訊,並且從中計算出當前這條 Link 是否屬於壅塞或是閒置。 這類型的機制與資訊對於想要完成 Traffic Engineering 的開發者來說非常重要,畢竟這是其中一種可以幫每條連線加上權重的一種方式

Read more »

問題來源:
Floodlight LLDP problem

問題描述:

  • 從floodlight去觀察,會發現有Link的{source,dest}都是相同的dpid但是不同的port

想法思路:

  • 從該link的結果可以先猜測應該是LLDP從port 2送出去後不知道為什麼從port 3給接收到了.

  • 那我想到的時候,中間兩個switch使用傳統的learning switch把這個LLDP給一路廣播下去,使得LLDP繞了回來,我覺得可能是後面兩個switch還沒有連上controller的時候會把自己運作成傳統的switch,因此我就詢問對方的網路環境.

  • 在確認對方網路並非是mininet的後,就請對方先把ovs給設定成secure mode,在這種mode下,若是沒有跟controller連線,ovs就不會有任何的行為.
  • 最後對方表示一切都正常了,所以發生原因應該就是中間的switch尚未變成openflow swtich前會把LLDP給透過傳統的方式給轉發下去,導致LLDP繞了回去.

這邊簡單紀錄一下一種QoS的使用方法,實驗流程如下

Step

  • Create two different QOS queue on the openvswitch with different limitation.
  • Use the Restful API to add a flow entry with the action enqueue.
  • Chagne the flow action when you want to change the QoS behavoir.

Detail

  • Create topology
    sudo mn --mac --controller=remote
  • Adding two queues q0(limited 800M) and q1(limited 50M) on s1-eth1

    1
    2
    3
    4
    ovs-vsctl -- set port s1-eth1 [email protected] -- [email protected] create qos type=linux-htb \
    [email protected],[email protected] -- [email protected] create queue other-config:min-rate=200000000 \
    other-config:max-rate=800000000 -- [email protected] create queue other-config:min-rate=50000 \
    other-config:max-rate=50000000
  • Adding flow entry using q0 and forwarding packet from port2 to port1.

    1
    curl -d '{"switch": "00:00:00:00:00:00:00:01", "name":"flow-mod-1", "cookie":"0", "priority":"32768","ingress-port":"2","active":"true", "actions":"enqueue=1:0"}' http://127.0.0.1:8080/wm/staticflowentrypusher/json
  • Type “iperf h2 h1” in mininet

    1
    2
    3
    mininet> iperf h2 h1
    *** Iperf: testing TCP bandwidth between h2 and h1
    *** Results: ['745 Mbits/sec', '746 Mbits/sec']
  • Modify the flow entry with different queue.

    1
    curl -d '{"switch": "00:00:00:00:00:00:00:01", "name":"flow-mod-1", "cookie":"0", "priority":"32768","ingress-port":"2","active":"true", "actions":"enqueue=1:1"}' http://127.0.0.1:8080/wm/staticflowentrypusher/json
  • Type “iperf h2 h1” in mininet

    1
    2
    3
    mininet> iperf h2 h1
    *** Iperf: testing TCP bandwidth between h2 and h1
    *** Results: ['50.2 Mbits/sec', '50.6 Mbits/sec']

##2014##

  • 游泳
    • 1/7 1500m
    • 1/9 2000m
    • 1/14 1500m
    • 1/18 1500m
    • 1/22 1500m
    • 2/7 1500m
    • 2/16 2000m
    • 2/17 1500m
    • 2/25 1500m
    • 2/28 1000m
    • 3/7 1500m
    • 3/18 1500m
    • 3/21 1500m
    • 5/2 1500m
    • 5/6 1500m
    • 5/13 1500m
    • 5/18 2000m
    • 5/20 1500m
  • 跑步
    • 3/3 2000m
    • 3/5 2000m
    • 3/11 1200m
    • 3/15 2000m
    • 3/16 2000m
    • 3/19 2000m
    • 3/22 2700m
    • 5/3 2100m