エムスリー エンジニアの 矢崎 (id:Saiya) です。
集合住宅では天井高などの都合で 浴室天井裏にルーターが置かれる ケースが少なくないと思うのですが、VLAN を使うことで自由な場所にルーター等を配置できるようにしてみました。その状態で一年ほど運用した限り個人的には満足な結果であったため、自分のための備忘録も兼ねて記事にしてみました。
浴室天井裏とルーター
集合住宅の場合、光ファイバーが個別の部屋に引かれていることは稀*1であり、光ファイバーは建物全体で共有し、そこから LAN ケーブルなどとして各部屋へ分配されることが多いです*2。その場合、ユニットバスの天井と部屋全体の天井の間に隙間があるために、浴室の天井裏に配線や支給品のルーター*3が配置されることが少なくありません。
しかし、筆者は自前のルーター機材を色々試して遊ぶといった趣味があるのですが、浴室天井裏に自前の機材を配置することは好んでおりません:
- 脚立などがないと安全にアクセスできず、作業効率が悪い
- 排熱面であまり有利な場所ではない
- インジケーターランプの点灯状態などが常日頃から見えないのが悲しい
- (中古で買ったりしているとはいえ)高価な機材を水場の上に置くのが好みではない *4
とはいえどもインターネットにつながる回線が浴室天井裏までしか引かれていないのが現実なので、どうにかして部屋(ルーター設置場所)にインターネット回線を伸ばす必要があります。
実現した回線構成
※ 正確には他にも機材がありますが本筋に関係ない部分は省略
上記のように、天井裏にはスイッチを配置し、ルーター本体は部屋の中に配置しました。インターネットへ至る LAN 回線はスイッチを経由してルーターまで延長し、ルーターからのイントラネット回線(家庭内の通信回線)もスイッチを経由して各部屋に接続しています。
しかしここで問題なのは、天井裏から各部屋への物理的な LAN ケーブルは 1 本しかないという点です。図からも読み取れる通り、天井裏とルーターの間には 2 つの経路が必要になります。こういった記事 や こういった記事 にあるように LAN ケーブルを自力で敷設する方もおられますが、筆者は物件の都合と物理層の工作スキルの都合で、物理的にケーブルを引かない選択肢を模索しました。
では物理的に 1 つの LAN ケーブルに 2 つの異なる LAN を通すにはどうすればよいのでしょうか?
VLAN 構成
このような場合に有用な技術が Virtual LAN (VLAN) という技術です。これを用いることによって、1 つの物理的な LAN ケーブル上に、複数の仮想的な LAN の通信を通すことができます。ネットワーク関係の書籍では、企業内のコンピューターを部署ごとに異なる仮想的なネットワークに分けるために〜といった用途で言及されることが多い VLAN ですが、本質的には 1 つの物理回線を複数の仮想的な LAN (VLAN) で共有する技術なので、今回のようなケースにも活用できます。
今回のケースでは以下のようにして VLAN を利用しました:
浴室天井裏とルーターの近くの両方にスイッチを配置しています。後者のスイッチは必須ではないですが、ルーターのある部屋には他にさまざまな機材がありポート数が欲しかったため、ルーターに負荷を掛けない意味でもスイッチを配しています *5。
スイッチは以下のようにセットアップしています:
- ポート 1 は常に
VLAN 1
(インターネット回線) に属するものとみなす- このようにポートの属する VLAN を決め打ちする設定を "ポート VLAN" といいます
- ポート 2 は
VLAN 1
とVLAN 2
(イントラネット) 両方に属するものとみなす - ポート 3, 4, ... は
VLAN 2
に属するものとみなす
ポート 1 と 3, 4, ... については、そのポートの LAN ケーブル上の通信を決め打ちで VLAN 1 または 2 への通信とみなすだけなので単純です。しかしポート 2 については、1 つの LAN ケーブル上に VLAN 1 の通信と VLAN 2 の通信の両方が通るため、ただ単に両者の通信を通すとインターネット側回線とイントラネットの通信が混ざってしまいます。
そこでポート 2 については、"タグ VLAN" (IEEE 802.1Q)を用います。タグ VLAN は、Ethernet フレームをラップし、その Ethernet フレームが属する VLAN 番号を付与した状態で通信をする技術です。スイッチ (浴室天井裏) と スイッチ (部屋) の間の LAN ケーブルではタグ VLAN を用いるようにすることで、VLAN 1 と 2 の通信が混ざることなく、かつ 1 本の物理的配線で、インターネット回線の通信とイントラネットの通信の両方をスイッチ間でやりとりすることが可能になっています。
利用した機材
今回の構成を取るにあたっては、ポート VLAN および タグ VLAN (IEEE 802.1Q) に対応するスイッチが必須となります。
筆者は自宅の主要部分には昔から Allied Telesis 社の CentreCOM GS908M を利用しています (ヤフオクでまとめて買っていた)。以下のような特徴があるので、ネットワーク機材として遊ぶには十分興味深く、かつ実用性もあるかと思います:
- VLAN にはもちろん対応
- なんちゃって GbE 対応ではなく、全ポートでそれなりの負荷を掛けても速度低下しない性能
- (筆者の場合) 中古の払い出し品で 5 年近く * 8 台 運用したが不調や不具合などがない安定性
- Link Aggregation (IEEE 802.3ad) に対応しているので、複数のポートを束ねて可用性や通信速度を上げることも可能
- Web ブラウザ向けの管理画面、telnet での管理、SNMP にももちろん対応
- ファンレスで音がしないため生活空間に置いても困らない
- Alied Telesis 特有の灰色でごつい見た目とレインボーのワンポイントが、かわいい
各種機能を使わずに、普通に信頼性と性能が高いだけのスイッチとして使うだけでも有用なスイッチであると個人的には思っております (※実際にご利用される場合は自己責任で...特に中古は保証もありませんし)。
GS908M を今あたらめて Yahoo オークションで検索してみると 1 台 2000 円程度まで相場が下がっており、追加で買いたくなってきました...。
VLAN 設定
VLAN の設定については、先の章で述べた動作原理・用語を把握していれば、マニュアル通りにコマンドを発行 (あるいは Web UI から操作)するだけで設定できるかと思います。
筆者が以前に GS908M に投入した設定はおおむね以下のような内容でした (先の図とはポート番号は一致しないので、適宜読み替えてください):
# スイッチのホスト名を設定しておかないと、後で見たときに混乱するので設定 set system name=centrecom17 # 先の図でいう VLAN 1 の設定 (port 8 がタグ VLAN ポート) create vlan=dmz vid=10 add vlan=dmz port=1 frame=untagged add vlan=dmz port=8 frame=tagged # 先の図でいう VLAN 2 の設定 create vlan=internal vid=20 add vlan=internal port=2-7 frame=untagged add vlan=internal port=8 frame=tagged # スイッチの管理用 telnet, SNMP をイントラネット向け VLAN に対して開放 (そのためにスイッチ自体に IP アドレスを固定で割り当てもしている) add ip interface=internal ipaddress=10.0.1.2 mask=255.0.0.0 gateway=10.0.0.1 # Web UI も一応有効化 enable http server
まとめ
- VLAN を使うことで、物理的な LAN ケーブルの数に縛られないネットワーク構成を構築できます
- ポート VLAN, タグ VLAN の原理を理解してしまえば、設定は簡単です
- 一家に数台インテリジェント・スイッチがあると便利です
なお、エムスリーではオンプレ・クラウド両面においてインフラ面での各種チャレンジの機会がございます、ご興味があれば以下よりお気軽にコンタクトください: