OpenWrt on Edgerouter-X の VLAN 設定備忘録

Gadget
Photo by hyt.

OpenWrt on Edgerouter-X の VLAN 設定備忘録です.

前回の記事で OpenWrt の Ubiquiti の Edgerouter-X への導入と VLAN の設定については注意が必要なことを記しました.

Ubiquiti Networks Edgerouter X で OpenWrt 備忘録
Ubiquiti Networks Edgerouter X で OpenWrt 備忘録です. 現在 VMware ESXi 7.0 上の OpenWrt でインターネット接続(PoE 接続)していて,安定して使えているのですが, ESXi...

と言うことで,今回は VLAN の設定方法について備忘録を残しておきたいと思います.

VLAN 利用時の注意

OpenWrt の場合,WebGUI 画面で VLAN の設定を行うことができますが,

OpenWrt on ER-X の場合は WebGUI で VLAN の設定を「はじめては」ダメです.設定を適用した瞬間に全てのポートに接続できなくなります!

運が良ければ再起動すれば設定が巻き戻って再び接続できるようになりますが,そうでない場合は初期化するしかなくなります.なお,初期化の方法は,ピンで reset ボタンを10秒間押し続けるです.

設定方法1(bridge コマンドの導入)

まず,VLAN を設定するコマンドラインのツールである bridge コマンドを導入しなければなりません.導入方法は,

  1. System → Software とメニューをたどる
  2. Update lists ボタンをクリックし,ソフトのアップデート情報を更新する
  3. Filter に ip-bridge と入力する.
  4. ip-bridge パッケージをインストールする

の順です.その後 SSH で OpenWrt に接続すれば,

BusyBox v1.35.0 (2022-10-14 22:44:41 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 22.03.2, r19803-9a599fee93
 -----------------------------------------------------
root@erx1:~# briege
-ash: briege: not found
root@erx1:~# bridge
Usage: bridge [ OPTIONS ] OBJECT { COMMAND | help }
       bridge [ -force ] -batch filename
where  OBJECT := { link | fdb | mdb | vlan | monitor }
       OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] |
                    -o[neline] | -t[imestamp] | -n[etns] name |
                    -c[ompressvlans] -color -p[retty] -j[son] }
root@erx1:~#

のように bridge コマンドが使えるようになっているはずです.

VLAN の設定スクリプトの作成

VLAN の設定が起動時に行われるよう簡単なスクリプトを用意します.具体的には /etc/hotplug.d/iface 以下に 21-lan として以下のような内容のファイルを作成します.

root@erx1:~# vi /etc/hotplug.d/iface/21-lan
#!/bin/sh
[ $INTERFACE = lan -a $ACTION = ifup ] || exit 0

# enable VLAN filtering
ip link set dev br-lan type bridge vlan_filtering 1

# clear out vlan 1
bridge v del dev eth1 vid 1
bridge v del dev eth2 vid 1
bridge v del dev eth3 vid 1
bridge v del dev eth4 vid 1
bridge v del dev br-lan self vid 1

# set vlans eth1
bridge v add dev eth1 vid 1 pvid untagged

# set vlans eth2
bridge v add dev eth2 vid 100 pvid untagged

# set vlans eth3
bridge v add dev eth3 vid 100 pvid untagged

# set vlans eth4
bridge v add dev eth4 vid 1
bridge v add dev eth4 vid 100

# set vlans cpu port
bridge v add dev br-lan self vid 1
bridge v add dev br-lan self vid 100 pvid untagged

OpenWrt on ER-X の場合,初期状態だと ポート 0 が WANで,ポート1から4がブリッジされてLANポートとなっています.上の設定は,その状態をたもったまま,

  1. まず全ての VLAN 設定を(念のため)削除する
  2. 各ポートごとの VLAN 設定を行う
  3. 最後に CPU ポート(OpenWrt とやり取りをするためのポート)の設定をする

です.コマンドの意味合いはまぁ見ての通りです.例えば eth4 だと,VLAN1 と VLAN100 の2つについてタグ付きで通信するって意味ですね.あと最後の CPU の部分は,OpenWrt に VLAN の通信をルーティングさせるための設定です.

なお,このままだと,ファームウェアのアップデート時にこのファイルが削除されてしまうようで,これを避けるには,/etc/sysupgrade.conf にこのファイルを指定しておけば良いようです.

root@erx1:~# cat /etc/sysupgrade.conf
## This file contains files and directories that should
## be preserved during an upgrade.

# /etc/example.conf
# /etc/openvpn/

/etc/hotplug.d/iface/21-lan

あとは再起動すれば VLAN のとりあえずの設定ができているはずです.実際 bridge コマンドを用いて以下のように現在の状態を確認することができます.

root@erx1:~# bridge vlan
port              vlan-id
eth1              1 PVID Egress Untagged
eth2              100 PVID Egress Untagged
eth3              100 PVID Egress Untagged
eth4              1
                  100
br-lan            1
                  100 PVID Egress Untagged

WebGUI を用いた VLAN の設定

次に WebGUI を用いて VLAN の設定を行います.上のスクリプトで VLAN の設定は起動時に行われるのですが,これだけだと /etc/config/network が伴わず,結果,その後のいろいろな設定を GUI で行えないからです.

WebGUI を用いた VLAN の設定は,

  1. メニューから Network → Interfaces を選択
  2. タブから Devices を選択
  3. br-lan の Configure を選択
  4. タブから Bridge VLAN filtering

を選択します.Enable VLAN Filtering にチェックを付け,上の起動時スクリプトで行った通りの設定をここでも行います.以下私の場合の例です(私は eth0 も bridge していますので少し上の設定とは違うものになっていることにご注意ください).

Photo by hyt.

保存すれば System → Interfaces の Devices タブの Devices メニューに br-lan.1 や br-lan.100 などのインターフェースが出てきますし,/etc/config/network ファイルにも対応していろいろな設定が行われるはずです.

あとはこれらのインターフェースを使えば普通にいろいろできるはずです.

と言うことで,以上ですが,できればこんな面倒なことしなくても WebGUI で普通に VLAN 設定できると良いんですけどね.この方法だと VLAN を設定するたびに再起動しないとダメですし…….将来に期待したいと思います.

以上!

GadgetNetworks
スポンサーリンク
Following hyt!
タイトルとURLをコピーしました