【Ubuntu】TC Command 通信に遅延を入れる方法 ★配線画像あり

目次

通信に遅延を入れる理由

事の始まりは、狭い帯域の先にあるサーバーで障害が発生し、
同じ環境を疑似的
に作って再現をすることに。

有線環境だと山奥の狭帯域、
無線だと宇宙を経由した衛星回線、かなり離れた支社への通信、
それらの先にあるサーバーへの処理やSWアップグレードで障害があったため
疑似的な環境を作って再現をするための環境づくりを実施

必要なものは3つ

・PC1台
→今回はLinuxを入れるので、いらないPCでもOK
・USB NIC (Network Interface Card)
→LANケーブルを2つPCに接続したいので1つ
・Ubuntu OS
→PCに入れるUbuntu Desktop OS、インストール方法は、検索してわかりやすいものを参照お願いします。どこかでアップするかも
 ※Windows PCでもフリーソフトで同じことができると聞きましたが、いまいちいいのが見つからないのと、自分はLinuxが好きなのでLinuxを選択。

配線の仕方

下記のように配線します。
通常のPCはケーブルの差込口が一つなので、USBのLANケーブル差込を追加
※ノートPCのほうがどこにでもかませるのでノートPCを選択

Server→ Ubuntu PC(今回のPC:ここで遅延を入れる) → SwitchやRouter

10年以上前に、知り合いから7千円でゆずりうけたPCをUbuntu OSを上書きして利用
Windows7OSが入っていたものなのでかなり古くても作れるかと。

PCをハブ化する Bridge設定

Addでブリッジを追加

編集で更にハブ化したいNIC2つを選ぶ

ハブ化したいEtherを二つ追加 (USBの外付けLANを付け、追加後に二つ選択しUbuntuをHAB化)
IP設定はいらない


ブリッジ設定箇所の
Enable IGMP SnoopingEnable STPは外す。(相性かもしれないが、ここ外さないと何回か切れたり等々があったことがある。)

TC Command コマンドで遅延を入れる

Hab化が終わったらTCコマンドで好きなIFに遅延を入れる

ifconfig or ip コマンド
で事前にインターフェイスの名前を調べる

ip a

→コマンドでLANケーブルを指している2つのインターフェイスを確認

IF=enp7s0

IF=enx00018e6192e4

TC Command

確認コマンド

root@lenovo:~# tc qdisc show dev virbr0

qdisc noqueue 0: root refcnt 2

ここから遅延を入れるコマンド

まずAddでIFに遅延ファイル作る(1000ms=1秒)

root@lenovo:~# tc qdisc add dev enp7s0 root netem delay 200ms

root@lenovo:~# tc qdisc change dev enp7s0 root netem delay 1000ms

root@lenovo:~# tc qdisc change dev enp7s0 root netem delay 2000ms

ハブ化してるので特に意味はないがもう一つのIFにも遅延いれてみた

root@lenovo:~# tc qdisc add dev enx00018e6192e4 root netem delay 1000ms

最後に遅延ファイルをけす。

root@lenovo:~# tc qdisc delete dev enp7s0 root netem delay 2000ms

root@lenovo:~# tc qdisc delete dev enx00018e6192e4 root netem delay 1000ms

まとめ

思ったより簡単に疑似的にネットワークへ遅延をいれられる

・Linux PC(今回はUbuntuを利用)で遅延を入れられる

・いらないPCでOK

・普通のPCで実施の場合はUSB NICを追加
→LANケーブルの差込口が一つの場合は、追加

PCをハブ化してネットワークにかませた方が楽

遅延装置をゼロから作って、かませてみることを記載してみました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次
閉じる