Raspberry Pi Advent Calendar 2020の20日目の記事です。
RaspberryPiで作るネットワーク遅延装置です。

作ったきっかけ

できるよねぇって話は前からしていたけど、実際作ったことなかったので雑につくりました。
個人的なメモ的な感じの記事になります。
実際はわけわからん仕事に巻き込まれているとか突然言われたので適当にでっちあげたメモ

環境

  • RaspberryPi 4
  • ELECOMのUSB3.0-Ethアダプタ(EDC-GUA3-B

注意点

有線ポートにはIPアドレスが振れなくなるので、有線が必要なら別NIC、もしくは無線を使う

作り方

OSインストールとかはググってね

アップデート

sudo apt update -y
sudo rpi-eeprom-update -a
sudo shutdown -r now

必要パッケージインストール

sudo apt install bridge-utils

ブリッジ設定

sudo sysctl net.ipv4.ip_forward=1
sudo brctl addbr br0
sudo brctl addif br0 eth0
sudo brctl addif br0 eth1

sudo brctl show

再起動

sudo shutdown -r now

インターフェイス設定

sudo vi /etc/network/interfaces
# 以下を追記
auto br0
iface br0 inet manual
bridge_ports eth0 eth1

10msecの遅延設定

sudo tc qdisc add dev eth0 root netem delay 10ms
sudo tc
sudo qdisc

※ 必要であれば、↑のコマンドをサービス化して自動実行させる

使い方

  • 遅延させたいNWの間に挟み込めば遅延します。
  • 向きとかも気にしなくてOK

まとめ