xenhost上的qos

来源:互联网 发布:rk算法 编辑:程序博客网 时间:2024/04/29 00:54
 

XEN : Network : QoS : 帯域制御 : xenbr1 → Dom0

xenbr1からDomUへのトラフィック制御
  1. 構成詳細確認

    まずは、お約束チックな確認をする

    xen domainの確認から

    # xm listName                                      ID Mem(MiB) VCPUs State   Time(s)Domain-0                                   0      200     1 r-----   2178.6test2                                      2       32     1 -b----   1637.8

    次に仮想スイッチの確認

    # brctl showbridge name     bridge id               STP enabled     interfacesxenbr0          8000.feffffffffff       no              vif0.0                                                        peth0xenbr1          8000.feffffffffff       no              vif0.1                                                        vif2.0

    仮想スイッチからDom0向けのIFの確認

    # ip link show vif0.16: vif0.1: <BROADCAST,NOARP,UP,10000> mtu 1500 qdisc noqueue    link/ether fe:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ffsv2:#

    ついでに、帯域制御の対象となるDomUのip

    # ifconfig eth0eth0      Link encap:Ethernet  HWaddr 00:16:3E:28:FC:BA          inet addr:192.168.3.2  Bcast:192.168.3.255  Mask:255.255.255.0          inet6 addr: fe80::216:3eff:fe28:fcba/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:580955 errors:0 dropped:0 overruns:0 frame:0          TX packets:390100 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:733333329 (699.3 MiB)  TX bytes:402026984 (383.4 MiB)

    図として書くと今回のターゲットは下記の通り

    xenbr1-Dom0.png

    こんかいは、クラスフルなqdiscのHTBを使う。帯域制限だけが目的なので、2層構造でいく

    OPNW-Tech-HTB-0.1-20071130.png
  2. 設定

    サンプルとして、上記の図にも記載している通り
    デフォルトでclass 3:ff0に流れる。ここでは、10Mbit/secで帯域制御。
    あとは、filterを使ってソースIPにマッチしたのか、それぞれのclassに入っていく。1Mbit/secだ

    tc qdisc add dev vif0.1 root handle 3: htb default ff0tc class add dev vif0.1 parent 3: classid 3:ff0 htb rate 10Mbit ceil 10Mbittc class add dev vif0.1 parent 3: classid 3:ff1 htb rate 1Mbit ceil 1Mbittc class add dev vif0.1 parent 3: classid 3:ff2 htb rate 1Mbit ceil 1Mbittc class add dev vif0.1 parent 3: classid 3:ff3 htb rate 1Mbit ceil 1Mbittc filter add dev vif0.1 protocol ip parent 3: u32 match ip src 192.168.3.1 flowid 3:ff1tc filter add dev vif0.1 protocol ip parent 3: u32 match ip src 192.168.3.2 flowid 3:ff2tc filter add dev vif0.1 protocol ip parent 3: u32 match ip src 192.168.3.3 flowid 3:ff3
  3. 設定を確認

    ip コマンドで確認。qdiscがhtbになっている

    # ip link show vif0.16: vif0.1:  mtu 1500 qdisc htb    link/ether fe:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff

    tc コマンドでqdiscを確認。それっぽくなっている。

    # tc -s -d qdisc lsqdisc htb 3: dev vif0.1 r2q 10 default ff0 direct_packets_stat 0 ver 3.17 Sent 54 bytes 1 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0

    tcコマンドでclassを確認。それっぽくなっている。

    # tc class show dev vif0.1class htb 3:ff0 root prio 0 rate 10000Kbit ceil 10000Kbit burst 6598b cburst 6598bclass htb 3:ff1 root prio 0 rate 1000Kbit ceil 1000Kbit burst 2099b cburst 2099bclass htb 3:ff2 root prio 0 rate 1000Kbit ceil 1000Kbit burst 2099b cburst 2099bclass htb 3:ff3 root prio 0 rate 1000Kbit ceil 1000Kbit burst 2099b cburst 2099b

    tc コマンドでfilterを確認。ずらずらと出てくる。ipが16進数で表現されているっぽい

    # tc filter show dev vif0.1filter parent 3: protocol ip pref 49151 u32filter parent 3: protocol ip pref 49151 u32 fh 802: ht divisor 1filter parent 3: protocol ip pref 49151 u32 fh 802::800 order 2048 key ht 802 bkt 0 flowid 3:ff3  match c0a80303/ffffffff at 12filter parent 3: protocol ip pref 49151 u32filter parent 3: protocol ip pref 49151 u32 fh 801: ht divisor 1filter parent 3: protocol ip pref 49151 u32 fh 801::800 order 2048 key ht 801 bkt 0 flowid 3:ff2  match c0a80302/ffffffff at 12filter parent 3: protocol ip pref 49152 u32filter parent 3: protocol ip pref 49152 u32 fh 800: ht divisor 1filter parent 3: protocol ip pref 49152 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 3:ff1  match c0a80301/ffffffff at 12
  4. 疎通確認

    今回は、DomUが1つしかないので、帯域制限されていることだけ確認。他のホストからFTPでダウンロードしてみる。
    ちょっとオーバー気味な気がするが、まぁいいだろう。

    ftp< mget 1MBmget 1MB? y200 PORT command successful150 Opening BINARY mode data connection for 1MB (1000000 bytes)226 Transfer complete.1000000 bytes received in 7.46 secs (130.9 kB/s)ftp< mget 1MBmget 1MB? y200 PORT command successful150 Opening BINARY mode data connection for 1MB (1000000 bytes)226 Transfer complete.1000000 bytes received in 7.46 secs (130.9 kB/s)ftp< mget 1MBmget 1MB? y200 PORT command successful150 Opening BINARY mode data connection for 1MB (1000000 bytes)226 Transfer complete.1000000 bytes received in 7.46 secs (131.0 kB/s)
引自:
http://yorunoseikatsu.com/archives/2007/11/xen-network-qos-xenbr1-dom0.html
原创粉丝点击