Linux活用レシピ > KNOPPIXの活用 > 帯域制御装置の作成


帯域制御 - パケットロス生成


    帯域制御PCで、パケットロスを意図的に発生させてみます。

1. 「tc」コマンドによるパケットロスの生成

  • 以下の「tc」コマンドで、パケットロスを発生させることができます。
  • root@Microknoppix;~# tc qdisc add dev eth0 root netem loss 10%[ENTER]
    
    ここでは、ネットワークデバイス「eth0」から出ていくパケットに対して「10%」のパケットロスを発生させています。

      なお、既に定義が入っている場合は、以下の通りエラーが出ますので、
      RTNETLINK answars: File exists
      
      以下の通り、定義を削除してからコマンドを投入してください。
      root@Microknoppix;~# tc qdisc del dev eth0 root[ENTER]
      root@Microknoppix;~# tc qdisc add dev eth0 root netem loss 10%[ENTER]
      

  • 確認してみましょう。帯域制御PCをはさんで、Windowsパソコンから以下の通りpingコマンドを発生させておき・・。
  • >ping -t 192.168.1.13[ENTER]
    192.168.1.13 に ping を送信しています 32 バイトのデータ:
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128
    
    帯域制御PCのコンソールで、先ほどのパケットロスを発生させます。
    root@Microknoppix;~# tc qdisc add dev eth0 root netem delay 100ms[ENTER]
    
    すると・・。
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128 <---コマンド発行
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128
    要求がタイムアウトしました。
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128
    192.168.1.13 からの応答: バイト数 =32 時間 <1ms TTL=128
    要求がタイムアウトしました。
    192.168.1.13 からの応答: バイト数 =32 時間 =9ms TTL=128
    
    コマンドを発行してからしばらくたつと、たまにタイムアウトが発生していることが分かります。
    また、以下のコマンドで、現在の設定を確認できます。
    root@Microknoppix;~# tc qdisc show dev eth0 [ENTER]
    qdisk netem 8009: root refcnt 2 limit 1000 loss 10%
    

     

    • なお、これらはKNOPPIXのターミナルで作業を行います。ターミナルが起動できていない場合は、以下のターミナルアイコンをクリックし、

    • 以下の通りターミナルが起動しとところで、
      knoppix@Microknoppix:~$
      

      以下のコマンドで「root」ユーザに変更し、これまでのコマンドを実行してください。
      knoppix@Microknoppix;~$ su - [ENTER]
      root@Microknoppix;~#
      


2. まとめ

    このように、帯域制御PCでパケットロスを自由に発生させられますので、これをネットワーク上の装置間にはさみ込むことで、不安定なネットワークの再現を意図的に行うことができます。