題名を中国語(簡体字)で表記したことについては、特に意味がありません。
本当は向こうに書こうか迷ったのですが、まぁメモ代わりということもあるので、こちらに書きます。
実は設定で漏れていたりしませんか、という内容になります。
その1
まず最初にPath MTU Discovery (PMTUD)について。
これって調べてみると深い問題なんですね。
重要度についてはあまり理解していませんでした。
YAMAHA RTXシリーズだと以下の設定パラメータになると思います。
ip tcp mss limit auto
TCPのMSSサイズの制限については、RouterOSのFirewallのデフォルトルールには無かった気がします。
ただ、iptablesの設定例で調べてみると案外出てくるんですね。
ipv4については、「MTU
」と「MRU
」を1454などに設定する必要があるので、大きく影響することは少ないのですが、ipv6については影響が大きいようです。
UDPとICMPの深いぃ話 /
https://www.nic.ad.jp/ja/materials/iw/2014/proceedings/t2/t2-matsuhira.pdf
PowerPoint Presentation /
https://www.janog.gr.jp/meeting/janog34/doc/janog34-6pmtu-kunitake-1.pdf
というわけで、以下のFirewallルールをipv4、ipv6とも追加しておいたほうが良いでしょう。
/ip firewall mangle
add action=change-mss chain=forward comment="Clamp MSS to PMTU" \
new-mss=clamp-to-pmtu passthrough=yes protocol=tcp tcp-flags=syn
/ipv6 firewall mangle
add action=change-mss chain=forward comment="Clamp MSS to PMTU" \
new-mss=clamp-to-pmtu passthrough=yes protocol=tcp tcp-flags=syn
RouterOSの場合は、これでTCP MSSの自動調整が機能するようになります。
参考情報:
その2
過去にこのような記事を書いているのを覚えている方はいらっしゃいますでしょうか。
これはかなり有用な機能の追加になるのですが一つ問題が。
この手の機能を使用した方はわかると思うのですが、大量のaddress-listの入れ替えが発生するため、logにその旨のメッセージが大量に出力されてしまうことです。十数行ならまだしも数千行になると、一気にlogの可読性が落ちます。
ということでこれを防ぐ手段です。
/system logging
のon-eventに以下のように記述すると良いと思います。
:log warning "Disabling system Logging";
/system logging disable 0
<実行したいScript>
:log warning "Enabling system Logging";
/system logging enable 0
気がついた人もいるかもしれません。これは/system logging
の0番を無効にしたり有効にしたりする方法になります。
0番に該当するのはinfo/memory
になり、今回のようにinfoレベルのlogが出力される際のフラグになります。
[admin@MikroTik] /system logging> print
Flags: X - disabled, I - invalid, * - default
# TOPICS ACTION PREFIX
0 * info memory
1 * error memory
2 * warning memory
3 * critical echo
4 X debug memory
5 X debug memory
dhcp
これを一時的に無効にすることで、logの大量出力を防ぎます。
ただ、この無効化を忘れたままにしていると、重要なlogを逃す可能性がありますので、実装する際は十分に注意するようにしましょう。
上にもあるように、「:log warning "Enabling system Logging";
」のような形で、予めメッセージを出力するようにしてあげるのが良いと思います。