はじめに
この記事は中国語からの翻訳です。不自然な点がありましたらご容赦ください。
最近あるプロジェクトで Mikrotik の CRS3xx スイッチを使った VLAN 設定が必要になりました。少し調べてみたところ、自宅で使っている CRS1xx とは設定方法が異なっており、その独特な設定方法をここで共有します。
CRS1xx については以前の記事をご参照ください:自宅ネットワーク構成 - スイッチ編
ご存知の通り RouterOS の内部は Linux ですので、スイッチによって設定方法が異なるという状況が生まれます。 GPT もあまり役に立たなかったので、ここに記録しておきます(
本記事はスクリーンショットできない箇所があるため、全編テキストのみとなっております。
本文
機種を間違えないように
まず、対象のスイッチチップを搭載した機種かどうか確認します:
[admin@MikroTik] > /interface/ethernet/switch/print
Columns: NAME, TYPE, L3-HW-OFFLOADING, QOS-HW-OFFLOADING
# NAME TYPE L3-HW-OFFLOADING QOS-HW-OFFLOADING
0 switch1 Marvell-98DX3257 no no
1 switch2 Atheros-8227 no no
[admin@MikroTik] >
一致していれば問題なく続けられます。参考までに私の機種は:
[admin@MikroTik] > /system/routerboard/print
routerboard: yes
model: CRS354-48G-4S+2Q+
revision: r4
serial-number: xxx
firmware-type: qca9531L
factory-firmware: 7.18.2
current-firmware: 7.18.2
upgrade-firmware: 7.21.3
[admin@MikroTik] >
Bridge の作成
CRS1xx と同様に、まずソフトウェアブリッジを作成し、通信させたい VLAN をすべて追加します:
/interface bridge add name=bridge vlan-filtering=yes pvid=1
/interface vlan add interface=bridge name=MGNT vlan-id=888 disabled=no
/interface vlan add interface=bridge name=WAN vlan-id=101 disabled=no
/interface vlan add interface=bridge name=LAN vlan-id=1001 disabled=no
VLAN ルールの追加
ここでは省略して 101 のみ記載しています。実際の設定はより複雑ですが、応用して読んでください
アクセスポート
ether1 = vlan101 = untag
/interface bridge port add bridge=bridge interface=ether1 pvid=101 frame-types=admit-only-untagged-and-priority-tagged
トランクポート
/interface bridge port add bridge=bridge interface=sfp-sfpplus1 frame-types=admit-only-vlan-tagged
/interface bridge port add bridge=bridge interface=sfp-sfpplus2 frame-types=admit-only-vlan-tagged
/interface bridge port add bridge=bridge interface=sfp-sfpplus3 frame-types=admit-only-vlan-tagged
/interface bridge port add bridge=bridge interface=sfp-sfpplus4 frame-types=admit-only-vlan-tagged
ハイブリッドポート
応用すれば自明です:
pvid=101 frame-types=admit-all
Bridge VLAN ルールの追加
ここの
taggedは標準的な Linux のブリッジ VLAN 構文とほぼ同じです。untaggedは省略可能で、前述の pvid 設定に基づいて自動的に設定されます(設定を見直して初めて気づきました)。とはいえ、明示的に指定しておく方が望ましいです。
/interface bridge vlan add bridge=bridge vlan-ids=101 tagged=sfp-sfpplus1,sfp-sfpplus2,sfp-sfpplus3,sfp-sfpplus4 untagged=ether1
簡易 ACL
このスイッチには限定的な ACL ルール機能もあります。大まかな手順は以下の通りです。
まず bridge がどのスイッチチップを使っているか確認します。ほぼ確実に switch1 です。 ether49 は管理ポートで、別のスイッチチップで動作しています:
[admin@MikroTik]> /interface/ethernet/switch/port/print
Flags: R - RUNNING
Columns: NAME, SWITCH, L3-HW-OFFLOADING, STORM-RATE
# NAME SWITCH L3-HW-OFFLOADING STORM-RATE
0 qsfpplus1-1 switch1 yes 100
...
8 R sfp-sfpplus1 switch1 yes 100
...
12 R ether1 switch1 yes 100
...
60 R ether49 switch2 yes 100
この仕組みを踏まえ、switch1 に対して ACL ルールを追加することで、簡易的なレイヤー4フィルタリングが実現できます:
/interface/ethernet/switch/rule add switch=switch1 protocol=tcp dst-port=23 new-dst-ports="" comment="ban telnet anywhere"
明示的な drop / reject アクションはありません。代わりに、マッチしたトラフィックを new-dst-ports="" で存在しないインターフェースにリダイレクトすることでパケットを破棄します。
まとめ
Linux の思考でスイッチを管理するというのは珍しい体験です。さらにスイッチチップによってコマンドが変わるというのはもっと稀なケースです。
なお、この貧弱な CPU にレイヤー3 NAT を期待しないでください:
[admin@MikroTik] > /system/resource/print
uptime: 8m56s
version: 7.21.3 (stable)
build-time: 2026-02-12 13:10:04
factory-software: 7.16.2
free-memory: 75.4MiB
total-memory: 128.0MiB
cpu: MIPS 24Kc V7.4
cpu-count: 1
cpu-frequency: 650MHz
cpu-load: 100%
free-hdd-space: 19.8MiB
total-hdd-space: 32.0MiB
write-sect-since-reboot: 385
write-sect-total: 5750
architecture-name: mipsbe
board-name: CRS354-48G-4S+2Q+
platform: MikroTik
[admin@MikroTik] >
以上。
終
制作・著作
━━━━━
ⒽⓊⒼⒼⓎ