それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

dd-wrt の switch 設定を swconfig でみてみる

dd-wrt で スイッチをいじってみる練習

dd-wrt は OpenWRT ベースで色々と機能が多いので、ハッキリ行って持て余すほどの機能があって、ネットワークで遊ぶにはスゴく楽しい。

swconfig で いろいろ見る

市販ルーターには通常Switchが1つのみでデバイスはswitch0のみが存在する。

swconfig dev switch0 help

swconfig でデバイスを指定して、help を見ると設定可能な項目一覧がわかる。

root@dd-wrt:~# swconfig dev switch0 help
switch0: rtl8366rb(RTL8366RB), ports: 6 (cpu @ 5), vlans: 4096
     --switch
    Attribute 1 (int): enable_learning (Enable learning, enable aging)
    Attribute 2 (int): enable_vlan (Enable VLAN mode)
    Attribute 3 (int): enable_vlan4k (Enable VLAN 4K mode)
    Attribute 4 (none): reset_mibs (Reset all MIB counters)
    Attribute 5 (int): blinkrate (Get/Set LED blinking rate (0 = 43ms, 1 = 84ms, 2 = 120ms, 3 = 170ms, 4 = 340ms, 5 = 670ms))
    Attribute 6 (int): enable_qos (Enable QOS)
    Attribute 7 (int): enable_mirror_rx (Enable mirroring of RX packets)
    Attribute 8 (int): enable_mirror_tx (Enable mirroring of TX packets)
    Attribute 9 (int): enable_monitor_isolation (Enable isolation of monitor port (TX packets will be dropped))
    Attribute 10 (int): enable_mirror_pause_frames (Enable mirroring of RX pause frames)
    Attribute 11 (int): mirror_monitor_port (Mirror monitor port)
    Attribute 12 (int): mirror_source_port (Mirror source port)
    Attribute 13 (none): apply (Activate changes in the hardware)
    Attribute 14 (none): reset (Reset the switch)
     --vlan
    Attribute 1 (string): info (Get vlan information)
    Attribute 2 (int): fid (Get/Set vlan FID)
    Attribute 3 (ports): ports (VLAN port mapping)
     --port
    Attribute 1 (none): reset_mib (Reset single port MIB counters)
    Attribute 2 (string): mib (Get MIB counters for port)
    Attribute 3 (int): led (Get/Set port group (0 - 3) led mode (0 - 15))
    Attribute 4 (int): disable (Get/Set port state (enabled or disabled))
    Attribute 5 (int): rate_in (Get/Set port ingress (incoming) bandwidth limit in kbps)
    Attribute 6 (int): rate_out (Get/Set port egress (outgoing) bandwidth limit in kbps)
    Attribute 7 (int): pvid (Primary VLAN ID)

現在の vlan 状態を見てみる

色々出来るのだけれど、まずは現在のvlan 状態を見てみよう

root@dd-wrt: # swconfig dev switch0 get enable_vlan
0

有効なら1、無効なら0がかえってくる

QoSの状態を見てみよう

root@dd-wrti:~# swconfig dev switch0 get enable_qos
1

QoSは有効ですね

たとえば、vlanを有効にしてみる

swconfig dev switch0 set enable_vlan 1

get の部分がset になって、 引数が2つになった。

あとはコレを反映する

swconfig dev switch0 apply

各ポートの状態を確認する。

swtich には各ポートが存在して、そのそれぞれのポートに状態を確認することが出来る

いま、ポート番号を指定して取得するコマンドはこんな感じ

swconfig dev switch0 port 5 get link

使ってるDD-WRTにはポートが6つ(WANが1,ルーターCPU側に1、ケーブルのジャックが4)存在するので、そのそれぞれの状態を見てみようと思う。

root@dd-wrt:~# for i in 0 1 2 3 4 5 ; do swconfig dev switch0 port $i get link ; done ;
port:0 link:down
port:1 link:up speed:100baseT full-duplex
port:2 link:up speed:1000baseT full-duplex
port:3 link:up speed:1000baseT full-duplex txflow rxflow
port:4 link:down
port:5 link:up speed:1000baseT full-duplex txflow rxflow auto

色々応用できそう

設定項目を見てみると、パケットのミラーリング・ポートを作ってモニタリングとか、QoSで特定の帯域を絞ったり、LEDをチカチカさせたり、VLAN組んだり、100Mbps/1000Mbps のチェックとか、コマンド出来そうですね。

数千円の家庭用ルーターでここまで遊べるのすごい。

かゆいところに手が届くのがいいね。

遊ぶだけなら、ヤフオクで中古が投げ売りされている古い機種を入手すれば直ぐ遊べるので楽しいですね。

タグVLANとかで集約できたら更に便利そう。OpenVPNサーバーとかもね

dd-wrt で技適・・・まぁそうなんですけど。

DD-WRTが技適マーク無いとか言われているけど、技適は電波を使う無線LANカードに対するものであって、ソフトウェアとスイッチではないから無線LAN使わなきゃ関係ないので大丈夫ですね。

無線LANを飛ばしてしまってDD-WRTを使うなら問題なさそうな物を使うといいみたい

【朗報】無線LANルータにカスタムファーム使っても違法じゃない場合があることが判明!(・∀・) | 有限会社 高梨IT製作所

応用するとLEDチカチカでイルミネーションが出来るらしい

MZK-WNH で動く OpenWRT でイルミネーション: ranosgrantのブログ

関連資料

Buffalo WZR-HP-G300NH - DD-WRT Wiki