YAMAHAルータの帯域制御で速度の遅い回線を再現してみる
たまにはネットワークの話もしてみようというわけで、YAMAHAルータで接続速度の遅い回線を再現する方法をお送りします。
どういう状況下というと
ネットワーク対応の製品を開発しているところで、速度の遅い回線でどのくらい使えるか確認したいので、速度調整ができる回線PLZ,ということになりました。
図にするとこんな感じですね。
もちろん、何百万円するお高い機械を使えば性格に速度制限ができます。でもキャリアやプロバイダじゃないんだからそんなお高い機械など津開けるわけもなし。IIJは1000万円以下の機械は稟議いらないとかいう話なんかちっとも羨ましくなんかないんだからね(涙目)
そこで、ガチに正確な回線速度のエミュレートはできませんが、だいたいいい感じに回線速度を遅くすることができるフィルタをYAMAHAルータで実現してみました。
材料
YAMAHAのRTX系列ルータ。中古なら2000円くらいで買えるRTX1000でもおーけー。SRTとかFWXでもいけるようだけど、RT107eはshaping機能に対応してないから使えないので注意。
ネットワーク構成
ルータのLAN2側を172.17.0.0/16、LAN1側を192.168.0.0/24として、LAN1側につないだ機器がLAN2側にアクセスするときの速度を上下とも制限します。今回は上下とも同じ速度にしますが、上下の速度を変えるとADSLを再現することもできます。
設定ファイル
設定ファイルはこんな感じです。
# この例ではIP Masquaradeだけど # LAN2側ととLAN1側の通信が成立するなら # 中継方法はなんでもいいよconsole character ascii
# デフォルトルート設定
ip route default gateway 172.16.0.1
# インタフェイスの設定
ip lan1 address 192.168.0.1/24
ip lan2 address 172.16.0.2/16
ip lan2 nat descriptor 1
# LAN1から出て行く通信の帯域を200kbpsに制限queue lan1 type shaping
queue lan1 class filter list 2
queue lan1 class property 3 bandwidth=200k
queue lan1 class property 4 bandwidth=200k# LAN2から出て行く通信の帯域を200kbpsに制限
queue lan2 type shaping
queue lan2 class filter list 1
queue lan2 class property 1 bandwidth=200k
queue lan2 class property 2 bandwidth=200k# Queueing configuration
queue class filter 1 1 ip * * *
queue class filter 2 3 ip * * *# LAN1側クライアントのための設定
# この例ではIP Masquaradeで接続、クライアント側アドレスは
# DHCPで配布するnat descriptor type 1 masquerade
nat descriptor address outer 1 primary
nat descriptor address inner 1 192.168.0.2-192.168.0.191dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.0.2-192.168.0.191/24dns host lan
dns service recursive
dns server 8.8.8.8 4.4.4.4
この設定は何をやっているかというと
LAN1とLAN2のそれぞれについて、出て行く通信の帯域を制限しています。この設定例では200kbpsに制限しています。
でも、RTXの帯域制限はソフトウェアベースのキューイングでやるので、制限の結果の帯域は、大体これぐらい、という数字になります。
RTXのキューイングは帯域制御とQoSとで共用します。キューはルータ内部からのパケットがインタフェイスから外に出るときに制御されます。そのため、上り下りの上下方向で制限をかけるには、外側内側の両方のインタフェイスでそれぞれ制限をかける必要があります。
インタフェイスごとにプロパティが、フィルタ定義されている者とされていない者の一つずつありますが、これは、フィルタ対象(IPのパケット)と、念のためにそれ以外のものも全部制限をかける、というので書いています。
でも、IPXとか、IP以外のパケットが出てくることはないと思うので、フィルタ定義されてないプロパティは削ってもいいような気がします。
そういえばうちはネットワークのサークルだった
ネットワークっぽい記事って初めてだなー。というわけで今回はおしまいです。
Recent Comments