Interfaceに一括でVLAN IDを付与する方法

Blog

Manual:Scripting – MikroTik Wiki /
http://wiki.mikrotik.com/wiki/Manual:Scripting#Operations_with_Arrays

InterfaceにVLAN IDを付与するとき、一個二個ならば手作業で追加するのでも問題ないと思いますが、例えば100個単位で付与しなければならないとなった時はどうすれば良いでしょうか?

そういうときはScriptを使うと解決できるかもしれません。

たとえば、Ether1にVLAN 1から20までを付与するときは以下の様なScriptを組むと、Ether1に一気にVLAN IDを付与することが出来ます。

:for i from=1 to=20 \
do={ /interface vlan add vlan-id=$i interface=ether1 name=("eth1-vlan" . $i); }

では、VLAN IDを10から100までの10こ飛ばしで設定する場合はどのようにすればよいでしょうか?

そのようなときは上記のScriptにStepを追加することで、付与することが出来ます。

[admin@Mikrotik] > :for i from=10 step=10 to=100 \
\... do={ /interface vlan add vlan-id=$i interface=ether8 name=("ether8-vlan" . $i);}

 

[admin@Mikrotik] > interface print
Flags: D - dynamic, X - disabled, R - running, S - slave
 #     NAME                                TYPE       ACTUAL-MTU L2MTU  MAX-L2MTU
...
12     ether8-vlan10                       vlan             1500  1586
13     ether8-vlan100                      vlan             1500  1586
14     ether8-vlan20                       vlan             1500  1586
15     ether8-vlan30                       vlan             1500  1586
16     ether8-vlan40                       vlan             1500  1586
17     ether8-vlan50                       vlan             1500  1586
18     ether8-vlan60                       vlan             1500  1586
19     ether8-vlan70                       vlan             1500  1586
20     ether8-vlan80                       vlan             1500  1586
21     ether8-vlan90                       vlan             1500  1586

どうでしょうか?

これでTrunk Portなどに複数のVLAN IDを付与したInterfaceを作成するときも、若干楽になるのではないかと思います。

設定からそもそも範囲指定できないのか、との疑問もあるかもしれませんが、Mikrotikに確認したところ、今のところは開発が困難だということで、今回のScriptを教えてもらいました。

もしかしたら将来出るであろう、RouterOS v7では解決しているかもしれませんね。

それではよいRouterboardライフを!