[追記あり] RouterOS 6.40からはbridgeにHWオフロードが実装されそうです

2017-07-08 13:26Blog

金曜日にRouterOS 6.40rc36が公開になったのですが、どうやら6.40に向けてbridgeインターフェイスに対して、ハードウェアオフロードが実装されるようです。

Version 6.40rc36 has been released.
Important note!!! Backup before upgrade!
RouterOS v6.40rc36 contains new bridge implementation that supports hardware offloading (hw-offload).
This update will convert all interface "master-port" configuration into new bridge configuration, and eliminate "master-port" option as such.
Bridge will handle all Layer2 forwarding and the use of switch-chip (hw-offload) will be automatically turned on based on appropriate conditions.
The rest of RouterOS Switch specific configuration remains untouched in usual menus for now.
Please, note that downgrading to previous RouterOS versions will not restore "master-port" configuration, so use backups to restore configuration on downgrade.
Before an upgrade:
1) Remember to make backup/export files before an upgrade and save them on another storage device;
2) Make sure the device will not lose power during upgrade process;
3) Device has enough free storage space for all RouterOS packages to be downloaded.
Changes since previous 6.40rc release:
!) bridge - implemented software based "igmp-snooping" (untested, undocumented, CLI only);
!) bridge - implemented software based MSTP (untested, undocumented, CLI only);
!) bridge - implemented software based vlan-aware bridges;
!) switch - "master-port" conversion into a bridge with hardware offload "hw" option (undocumented, CLI only);
!) switch - CRS3xx switch VLAN configuration integrated within bridge VLAN configuration with hw-offload;
*) filesystem - improved error correcting process on tilera and RB1100Dx4 storage;
*) firewall - fixed bridge "action=log" rules;
*) health - fixed memory leak on devices that have "/system health" menu (introduced in 6.40rc30);
*) ikev1 - added log error message if netmask was not provided by "mode-config" server;
*) ipsec - added support for "key-id" peer identification type;
*) rb3011 - fixed packet passthrough on switch2 while booting;
*) sniffer - do not skip L2 packets when "all" interface mode was used;
*) snmp - fixed "/system resource cpu print oid" menu;
*) switch - fixed "loop-protect" on CRS SFP/SFP+ ports;
*) trafficgen - added "lost-ratio" to statistics;
*) vlan - do not delete existing VLAN interface on "failure: already have such vlan";
*) winbox - do not autoscale graphs outside known maximums;
*) winbox - hide LCD menu on CRS112-8G-4S;
*) winbox - show "/system health" only on boards that have health monitoring;
*) winbox - show "D" flag under "/interface mesh port" menu;

Important note!!! あるように、今までswitchインターフェイスとしてmaster-slaveな構成になっているところ、master-portに対して、ハードウェアオフロード設定を入れ込むように、変換が入るようです。

適用にあたっては、一旦設定をバックアップするようにということです。というのも上記にあるように設定の変換が入るので、ダウングレードをした際、設定の切り戻しが行われないためです。

今まではmaster-slaveなインターフェイスはCPUを介さない経路を通り、bridgeインターフェイスはCPU処理をされるということで、なるべくスループットを稼ぐにはmaster-slaveな構成にするようにしていましたが、それでもCPUへの負荷があることにはかわりありませんでした。

これが更に他の部分へオフロードできるのであれば、もう少しスループットが高まる可能性が増えるかもしれません。

今回の適用にあたっては、出来ればTraffic generatorなどで負荷をかけて確認するべきなのですが、少し時間が取れそうもありません。

また、ハードウェアオフロードに当たっては、どの部分に対してオフロードするのか書いていないので気になるところです。(基本的にRouterboard製品はASICを搭載している訳ではないからです)

今も公式フォーラムでは議論がされていますので、気になる方は確認してみるのが良いかもしれません。

v6.40rc [release candidate] is released! (New bridge implementation) – MikroTik RouterOS /
https://forum.mikrotik.com/viewtopic.php?f=21&t=123335

ちなみデフォルトではハードウェアオフロードは有効になっていません。

/interface bridge port
add bridge=bridge1 hw=no interface=ether1
add bridge=bridge1 hw=no interface=ether6
add bridge=bridge1 hw=no interface=sfp1
add bridge=bridge1 hw=no interface=ether2
add bridge=bridge1 hw=no interface=ether3
add bridge=bridge1 hw=no interface=ether4
add bridge=bridge1 hw=no interface=ether5
add bridge=bridge1 hw=no interface=ether7
add bridge=bridge1 hw=no interface=ether8
add bridge=bridge1 hw=no interface=ether9
add bridge=bridge1 hw=no interface=ether10

hw=no の部分ですね。こちらをhw=yes に書き換えることで、設定上はハードウェアオフロードが有効になるようです。ただし一部のRouterboard製品ではハードウェアオフロードを有効にすることで通信ができなくなるようなので、注意してください。(WinboxのMAC Telnetならつながるかもしれません)

2017年7月10日:

サポートに確認したところ、以下に詳細があるとのことです。

Manual:Switch Chip Features – MikroTik Wiki /
https://wiki.mikrotik.com/wiki/Manual:Switch_Chip_Features#Bridge_Hardware_Offloading

また、HW-offloadを有効にするには、搭載Chipによりますが、いくつか条件があるようです。igmp-snoopingの有効化とは両立しない感じですね。

2017年7月17日:

ROS6.40rc41でアップデートがありました。どうやらHWオフロードの実装が6.40には間に合わなそうで、ROS6.41rcにて継続してテストを行うようです。