2016-04-02 19 views
0

です。シミュレーション用の仮想ネットワークを構築しようとしています。リンクは、IPアドレスによって決定されていると私はトラフィックをシェーピングとネットマスクtcフィルタがIPアドレスと一致しません。範囲は

#!/bin/bash 
VETH_1="vethf4dbb89" 

tc qdisc del dev $VETH_1 root 

tc qdisc add dev $VETH_1 root handle 1: htb default 14 
tc class add dev $VETH_1 parent 1: classid 1:0 htb rate 1000Mbps 

tc class add dev $VETH_1 parent 1:0 classid 1:2 htb rate 1000Mbps 
tc class add dev $VETH_1 parent 1:0 classid 1:3 htb rate 1000Mbps 
tc class add dev $VETH_1 parent 1:0 classid 1:4 htb rate 1000Mbps 
tc class add dev $VETH_1 parent 1:0 classid 1:5 htb rate 1000Mbps 


tc qdisc add dev $VETH_1 parent 1:2 handle 12: netem loss 0% 1% delay 30ms 10ms 
tc qdisc add dev $VETH_1 parent 1:3 handle 13: netem loss 0% 1% delay 200ms 10ms 
tc qdisc add dev $VETH_1 parent 1:4 handle 14: netem loss 0% 1% delay 10ms 10ms 
tc qdisc add dev $VETH_1 parent 1:5 handle 15: netem loss 0% 1% delay 15ms 10ms 

tc filter add dev $VETH_1 parent 1: protocol ip prio 1 u32 match ip dst 172.17.0.3/24 flowid 1:2 

によって定義された範囲の遅延を設定することができます。しかし、私はすべて/ 24で最初のケースで

tc filter add dev $VETH_1 parent 1: protocol ip prio 1 u32 match ip dst 172.17.0.3 flowid 1:2 
tc filter add dev $VETH_1 parent 1: protocol ip prio 1 u32 match ip dst 172.17.0.4 flowid 1:3 
tc filter add dev $VETH_1 parent 1: protocol ip prio 1 u32 match ip dst 172.17.0.5 flowid 1:4 
tc filter add dev $VETH_1 parent 1: protocol ip prio 1 u32 match ip dst 172.17.0.6 flowid 1:5 

のような、特定のIPアドレスをフィルタリングする必要がありますパケットが正しくキャプチャされます。ネットマスクを使用しない2番目の設定はパケットをキャプチャしません。

tc -s qdisc ls dev veth09840d5 
qdisc htb 1: root refcnt 2 r2q 10 default 14 direct_packets_stat 110795 direct_qlen 2 
Sent 268440356 bytes 269182 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 
qdisc netem 12: parent 1:2 limit 1000 delay 30.0ms 10.0ms 
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 
qdisc netem 13: parent 1:3 limit 1000 delay 200.0ms 10.0ms 
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 
qdisc netem 14: parent 1:4 limit 1000 delay 10.0ms 10.0ms 
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 
qdisc netem 15: parent 1:5 limit 1000 delay 15.0ms 10.0ms 
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
backlog 0b 0p requeues 0 

EDIT: 定義済みのインターフェイスに割り当てられているIPアドレスのみが宛先としてキャプチャされます。しかし、どのように他のIPアドレスを遅くするには?

答えて

0

iptablesを使用してパケットにマークを付け、特定のIPからのトラフィックを捕捉するかどうかを確認してください。

+0

あなたのコメントを拡大したり、説明する方法を説明するリソースへのリンクを付けることができますか? –

関連する問題