Mikrotikはディストリビュータやユーザに対して、情報共有をするということでMikrotik User Meeting、通称MUMを世界各地で開催しています。(日本でも過去に開催されています)
先日MUM Europa 2017がイタリアのミランで開催されたのですが、その中でMikrotikの中の人であるJanis Megisにより「Most underused and overused RouterOS tools and features」という、ユーザにとってはとても有用な情報を公開していました。
ひとつ取り上げてみます。
”High Layer7 load”
いろいろな接続条件により、FacebookやYoutubeなどの接続を制限している場合があると思いますが、その場合RouterOSで簡単に実現するにはLayer7-protocolというFirewallのルールを使用するのですが、このルール、正規表現を使用するためにとてもリソース的には重い処理とされています。
例えば下記のようなルールがあるとします。
/ip firewall layer7-protocol add name=youtube regexp="^.+(youtube).*\$" add name=facebook regexp="^.+(facebook).*\$" /ip firewall filter add action=drop chain=forward layer7-protocol=facebook add action=drop chain=forward layer7-protocol=youtube
正規表現で、youtube、もしくはfacebookを含む文字列があった場合、転送をドロップするというものです。
これを以下のように置き換えると良いそうです。
/ip firewall mangle add action=mark-connection chain=prerouting protocol=udp \ dst-port=53 connection-mark=no-mark layer7-protocol=youtube \ new-connection-mark=youtube_conn passthrough=yes add action=mark-packet chain=prerouting connectionmark=youtube_conn \ new-packet-mark=youtube_packet /ip firewall filter add action=drop chain=forward packet-mark=youtube_packet add action=drop chain=input packet-mark=youtube_packet
パケット全体を正規表現の対象にして、転送をブロックするのではなく、一旦DNSの名前解決が行われた際に、youtubeを含む転送を行った場合パケットにマーキングを行います。そのパケットのみを対象に転送およびinputをドロップするというものです。全部を対象にしないので、処理が軽くなるというわけです。
他にも色々と有用な情報が公開されていますので、気になる方は是非とも見てみてください。
MUM – MikroTik User Meeting /
https://mum.mikrotik.com/2017/EU/agenda