🔌

小規模(5〜20人)オフィスのネットワーク構築例

に公開

⚠️ 2025年現在の読者の方へ

**この記事は2019年に書かれた内容です。**以下の点に注意してください:

  • RTX1200は2021年5月に保守終了しました → 現在は使用を推奨しません
  • 新規構築の場合は RTX1300RTX1220 をご検討ください
  • Wi-Fi 6E/7対応のアクセスポイントが主流になってきています
  • IPv6対応は必須の時代になりました
  • セキュリティ対策として、ゼロトラストネットワークの考え方が重要になってきています

それでは、2019年当時の構築記録をご覧ください!

背景

  • 株式会社マインディア CTO の @matsubokkuriです。
  • 事業規模の拡大に伴いオフィスの移転がありました。それに伴い社内ネットワークインフラの構築しました。オンサイトで働く人は約 10 名。エンジニアは私 1 名なのでインフラ整備を自分でやるか外注するかという選択でしたが、外注するためには RFP 作るのが面倒だし費用がかかるので DIY しました。
  • 中小企業のネットワーク構築の記事は 5 年前の @wadapさんの記事が詳しいです。その記事以降、まとまった社内LAN構築の良い感じのノウハウ記事を見つけられませんでした。その5年の差分を埋めるためにも記録を書いておきます。

要求定義

  • ゲスト用ネットワークの分離(インターネット回線、LAN 回線)
    • 将来のシステム監査で指摘されるであろうことなので。
    • トラフィックの QoS 制御のため。
    • インターネット上のホストにおいてグローバル IP アドレスによるアクセス制限がかかっている場合があるため。
  • 役割(部署)毎に LAN の分離
    • コンピュータウィルスなどのインシデントが発生した際、被害を限定的にするため。
    • QoS 制御のため。
  • 安定
    • ストリーミングを扱う自社プロダクトを構築しているので安定性を高める。
    • 特に普段遣いをする Wi-Fi は安定してほしい。
  • Wi-Fi と有線を用意して L1 レイヤの冗長性を確保しておく。
  • 有線 LAN の低遅延と安定性は素晴らしいです。
    • ルーターへの ping において、RTT が Wi-Fi では数 ms かかるのに対して有線では 1ms 以内です。
  • グローバルネットワーク、LAN において低レイテンシー
  • 初期費用、固定費は安く。
  • 20 人ぐらいの同時利用ユーザに対応できる。
    • 平均 3 台/人と想定して 60 端末同時接続

要件

  • ISP は 2 アカウント用意する。社員用の固定 IP とゲスト用。
  • 物理ネットワークの自由度を持たすために VLAN を使う。
  • Wi-Fi が安定していること。
  • オフィス外からネットワークに入れる。
  • 各席に有線。

設計

どんな機材を買ってどこに設置するのかを考えるためにネットワークの設計します。

タグ VLAN が絡むと設計書を書くのが難しかったです。物理レイヤ(L1)と論理レイヤ(L2)を同時に考えて 1 つの図にする必要が有りました。これが結構難しかったです。

論理レイヤで考えて、それを物理レイヤに落として。その逆を行ったりと。L1、L2、L3 を行ったり来たりして考えていました。vlan 使わなければ L1 だけ考えれば済むので超楽だなぁと思いました。

VLAN を使わなければ、L1 と L2 は完全に分離して考えられるので非常に簡単ですが、VLAN が絡み出すと難易度がかなり上がります。本来は、論理と物理を分けて考えられて便利にするための VLAN なのに。

一部に VLAN 非対応機器が存在したり、tag, untag を同一ネットワークに混在して設置できてしまうため、論理と物理が混ざってしまう原因でした。

このあたり、想定した動作と各ベンダーの実装が若干違うので検証が大変でした。
例えば、ルーターは vlan の設定しかしていないのに、vlan ではないパケットも vlan1 として扱われてしまいます。
そうしないと vlan を設定した途端 untag のパケットが到達出来なくなったりするのを回避するためなのかと思います。

どのツールで設計書を書くのが良いのかよくわからないのでとりあえず cacooで設計しました。

次に、図にある各エンティティについて詳細を書きます。

キャリア

  • フレッツ光ネクストで最高速 1Gbps のプランを使っています。

  • 余談

    • 最近評判が良いと聞く NURO 光を検討しましたが導入をやめました。
    • NURO 光は個人と法人(Nuro Biz)で内容が全然違います。根本的なところで運営している会社自体が違います。
      • NURO光の個人の利用料は6,000円ぐらい(大人気らしく敷設に2ヶ月待ちとのことで、タイムラインが間に合わず断念)
      • NURO 光の法人(NURO biz)の利用料は月額 20,000 円ぐらい。サポート充実。固定 IP あり。2 個 +6,000 円とかで予算感が合わずに断念。

ISP

  • Web の管理画面にアクセス制限をつけるために、アクセス元のネットワークによってアクセス制限をしたいというユースケースがあります。それを代替できるアプローチが今のところないので、IPv4 の固定 IP アドレスが必要です。
    • サーバサイドからの視点では、やはり IP アドレス制限を入れる事でリスクを L3 以下は気にしないで良くなる利点は大きい
    • IPv6 の固定レンジでの割り当てをする ISP はほぼ無い
  • 固定 IP アドレスを提供する ISP は安いしいままで大きな問題が無かった GMO BB を引き続き使います。1,100 円/月(夜 20 時以降は少し遅い感じがします → 遅いので解約して、so-netの固定IPオプションにしました
  • ゲスト用のネットワークは適当な ISP で良いので、キャリアと ISP の申し込みを同時にすると安いので適当に選びました。とりあえず IPv6 に対応している so-net にしました。家で使っていたときは下りで400Mbps出ていたので。

ルーター

  • 安く済ますために YAMAHA RTX1200です。10年近く前の機種ですが、1Gbps対応、L2TP対応、SNMP対応など十分な機能です。
  • 定価 125,000 円ですが、保守終わりの中古機材が 7,000円ぐらいで大量に流通しています。保証はないですが、壊れたら買えば良いのです。自宅でも使っていますが2年以上全く落ちませんでした。スループットも1Gbps近くまでは出ます。
  • IPv6の複数の接続方式に対応するため、新しいモデルである RTX1210をおすすめします。

スイッチ

  • 全部 YAMAHA で揃えて一元管理したいのが理想ですが、いかんせん VLAN 対応の YAMAHA のインテリジェントスイッチは高いです。中古でも出回ってないです。
  • 安い VLAN 対応のスイッチを選択。Netgear GS108eを2台。約5,000円/台
  • 参考のために、8 ポートの YAMAHA SWX2200-8G は実売で約23,000円。Netgear の 4 倍!

Wi-Fi AP(アクセスポイント)

  • YAMAHA WLX313で。実売約6万円。定価69,800円(税抜)。Wi-Fi AP だけはケチらずに買います。WLC(Wireless LAN Controller)と VLAN にも対応しております。

  • WLX313 はかなりいろんな機能があって良いのですが、自動制御が不安定です。残念なのですが便利な機能は OFF にしまくってシンプルな設定にして運用する必要がありました。自動チャネル選択、自動出力変更などの便利そうな機能を一通り OFF にしました。

  • PoE 対応なので、PoE スイッチに接続して使おうしたのですが普通の PoE スイッチでは電源容量が足りなくて動きませんでした。Wi-Fi AP は消費電力が大きいので対応した PoE スイッチを選択する必要があります。

  • 余談

    • 市販の家庭用アクセスポイントはよく壊れます。
    • コンシューマ向けの Wi-Fi アクセスポイントはすぐに詰まったり、電波飛ばなかったり、不安定な動作が多いです。
    • 自宅の AP は 1〜2 年おきに買い換えています。電波は目に見えなくてトラブルシューティングしづらいのでここはケチらず良い物を買いましょう。
    • Cisco の meraki も見たのですが、小規模ビジネスでの実績がよくわからないし見た感じ安定性が心配だったので外しました。

LANケーブル

  • 今回は小規模だしケチりたいので自前で行います。自前で圧着するとなったら テスタや圧着器など一式が必要になりますが、今後も使えるので買っておいて良いかなと。いつでも好きなときに好きな長さのLANケーブルを作れるようになります。
  • 楽天などにて 200 円/本で 0.5m から 5m のいろいろな長さの cat6 ケーブルが売っています。自分で圧着する時間を考えると買った方が安います。しかしながら、安い楽天にて買った LAN ケーブルは品質が悪くて断線が頻繁に起きました。
  • かといって市販のケーブルは 500 円/m とかするので、10 本買うと 5,000 円ぐらいかかったりする。また、長い距離になると 5m 単位や 10m 単位のロットしかなくて配線の余りが出てきてしまいます。なので、自作します。
  • 今回買った エレコムのLANケーブルは安いのでケーブルの被覆と芯線がとても硬くて扱いづらいです。ローダー付きのRJ45じゃないとコネクタへのケーブルの挿入の難易度高すぎて無理でした。最初はローダー無しのRJ45を買ったのですが、穴に通らなくてローダー付きを書い直しました。

実装

L1

  • どこに何を通すか設計します。業者からもらった室内の設計図では不十分なので、結局は現況を見てからちゃんと作りました。意外と図面は抽象的なので要注意です。
  • 現場では、図面に載っていない配線があったりしました。天井裏の配線は謎で、ケーブル通しを使って業者と 2 人がかりで捜索し、現場の作業員を勝手にお借りしてケーブル通しを手伝ってもらいました。頭数が 2 人は最低必要な状況でした。
  • ケーブリングが終わったら、引き継ぎやすいように As-Is を残しておきます。モザイクばかりでよくわかりませんが。

機材の設定は、事前に一通り行って動作テストを行っておくことを強く推奨します。理由は以下です。

  • 初期不良を検出する。
  • 現地はトラブルシュートをするための機材が少ないので、事前に資材や機材の環境が整ったところでトラブルシュートをする。
  • 現地ではインターネットにつながらない場合もあるため。
  • 特に VLAN とパケットフィルタの動作テストには時間がかかります。

動作テストのために 50cm のケーブルをたくさん作る事になって辛かったです。

フリーアクセスなのでカーペットを剥がして床を見て見ると結構堅い締め付けでネジが締められていて、外すのが大変でした。インパクトドライバーが無いと堅くて緩まないので取りに帰りました。

インパクトドライバーでやっと開けられた。

仮に敷設。ケーブルが堅い。

テーブルの上に置けるように、端っこは長めに残しておきます。

床を元通りにして L1 は完了(床を剥がさないで線を通す方法、道具を教えてほしいです。通線で真っ直ぐを引っ張れるのでしょうか?)

L1 の敷設は大変だけど、一般人にはわかってもらえなくて悲しいです。

Wi-Fi Sanner で帯域をチェック。これを見て利用するチャネルを決めます。2GHz 帯は外から回り込んでくるのか、他社のが入ってきます。

電波が届きにくいところや、外への漏れ具合を確認するときには、WiFiミレルを使ってチェックします。PCを持ち歩いてうろうろしないで良いので楽です。

WiFiミレル

ルーターの設定

RTX1200 の設定の要点をいくつか書いておきます。

4 つの vlan を作ります。

  • 社内リソース用
  • エンジニア用
  • biz 用
  • ゲスト用
vlan lan1/4 802.1q vid=4
vlan lan1/5 802.1q vid=5
vlan lan1/6 802.1q vid=6
vlan lan1/7 802.1q vid=7

次に、どこからどこに何を通したいかを設定します。ネットワーク間は全てデフォルトではpassなので、一旦全てrejectした上で必要なパケットをpassさせていきます。

ルール自体はとても複雑なので、使うか使わないかは別にしてルールは一旦全部作って起きます。その後、このルールをip pp secure filterで適用していきます。

ip filter 600000 reject 192.168.4.0/24 192.168.5.0/24
ip filter 600001 reject 192.168.4.0/24 192.168.6.0/24
ip filter 600002 reject 192.168.4.0/24 192.168.7.0/24
ip filter 600011 reject 192.168.5.0/24 192.168.4.0/24
ip filter 600012 reject 192.168.5.0/24 192.168.6.0/24
ip filter 600013 reject 192.168.5.0/24 192.168.7.0/24
ip filter 600021 reject 192.168.6.0/24 192.168.4.0/24
ip filter 600022 reject 192.168.6.0/24 192.168.5.0/24
ip filter 600023 reject 192.168.6.0/24 192.168.7.0/24
ip filter 600031 reject 192.168.7.0/24 192.168.4.0/24
ip filter 600032 reject 192.168.7.0/24 192.168.5.0/24
ip filter 600033 reject 192.168.7.0/24 192.168.6.0/24
ip filter 600045 reject 192.168.4.0/24 192.168.5.0/24
ip filter 600046 reject 192.168.4.0/24 192.168.6.0/24
ip filter 600047 reject 192.168.4.0/24 192.168.7.0/24
ip filter 600054 reject 192.168.5.0/24 192.168.4.0/24
ip filter 600056 reject 192.168.5.0/24 192.168.6.0/24
ip filter 600057 reject 192.168.5.0/24 192.168.7.0/24
ip filter 600064 reject 192.168.6.0/24 192.168.4.0/24
ip filter 600065 reject 192.168.6.0/24 192.168.5.0/24
ip filter 600067 reject 192.168.6.0/24 192.168.7.0/24
ip filter 600074 reject 192.168.7.0/24 192.168.4.0/24
ip filter 600075 reject 192.168.7.0/24 192.168.5.0/24
ip filter 600076 reject 192.168.7.0/24 192.168.6.0/24
ip filter 600145 pass 192.168.4.0/24 192.168.5.0/24 icmp
ip filter 600146 pass 192.168.4.0/24 192.168.6.0/24 icmp
ip filter 600147 pass 192.168.4.0/24 192.168.7.0/24 icmp
ip filter 600154 pass 192.168.5.0/24 192.168.4.0/24 icmp
ip filter 600156 pass 192.168.5.0/24 192.168.6.0/24 icmp
ip filter 600157 pass 192.168.5.0/24 192.168.7.0/24 icmp
ip filter 600164 pass 192.168.6.0/24 192.168.4.0/24 icmp
ip filter 600165 pass 192.168.6.0/24 192.168.5.0/24 icmp
ip filter 600167 pass 192.168.6.0/24 192.168.7.0/24 icmp
ip filter 600174 pass 192.168.7.0/24 192.168.4.0/24 icmp
ip filter 600175 pass 192.168.7.0/24 192.168.5.0/24 icmp
ip filter 600176 pass 192.168.7.0/24 192.168.6.0/24 icmp
ip filter 600245 pass 192.168.4.0/24 192.168.5.0/24 * 631
ip filter 600246 pass 192.168.4.0/24 192.168.6.0/24 * 631
ip filter 600247 pass 192.168.4.0/24 192.168.7.0/24 * 631
ip filter 600254 pass 192.168.5.0/24 192.168.4.0/24 * 631
ip filter 600256 pass 192.168.5.0/24 192.168.6.0/24 * 631
ip filter 600257 pass 192.168.5.0/24 192.168.7.0/24 * 631
ip filter 600264 pass 192.168.6.0/24 192.168.4.0/24 * 631
ip filter 600265 pass 192.168.6.0/24 192.168.5.0/24 * 631
ip filter 600267 pass 192.168.6.0/24 192.168.7.0/24 * 631
ip filter 600274 pass 192.168.7.0/24 192.168.4.0/24 * 631
ip filter 600275 pass 192.168.7.0/24 192.168.5.0/24 * 631
ip filter 600276 pass 192.168.7.0/24 192.168.6.0/24 * 631
ip filter 610047 pass 192.168.4.0/24 192.168.7.0/24 icmp
ip filter 610048 pass 192.168.7.0/24 192.168.4.0/24 icmp

ipv6の設定。社員用はIPv4のアクセス制限があるので、IPv6の利用はゲストネットワークのみにします。lan1/6がゲストネットワークのvlanです。

ipv6 prefix 1 ra-prefix@lan2::/64
ipv6 lan1/6 address ra-prefix@lan2::1/64
ipv6 lan1/6 rtadv send 1 o_flag=on
ipv6 lan1/6 dhcp service server
ipv6 lan2 secure filter in 200030 200031 200038 200039
ipv6 lan2 secure filter out 200099 dynamic 200080 200081 200082 200083 200084 200085 200086 200098 200099
ipv6 lan2 dhcp service client ir=on
ipv6 filter 200030 pass * * icmp6 * *
ipv6 filter 200031 pass * * 4
ipv6 filter 200038 pass * * udp * 546
ipv6 filter 200039 reject * *
ipv6 filter 200099 pass * * * * *
ipv6 filter dynamic 200080 * * ftp
ipv6 filter dynamic 200081 * * domain
ipv6 filter dynamic 200082 * * www
ipv6 filter dynamic 200083 * * smtp
ipv6 filter dynamic 200084 * * pop3
ipv6 filter dynamic 200085 * * submission
ipv6 filter dynamic 200086 * * https
ipv6 filter dynamic 200098 * * tcp
ipv6 filter dynamic 200099 * * udp

ゲストネットワークのQoSを最初は設定していましたが、ユーザが少ないので撤廃しました。

ゲストネットワークには帯域を100MBpsまでしか割り当てない設定例。

queue lan1 type shaping
queue lan1 class filter list 1 2
queue lan1 class property 1 bandwidth=100M
queue class filter 1 1 ip 192.168.6.0/24 * * * *
queue class filter 2 1 ip * 192.168.6.0/24 * * *

うるさいログをoffにしたり。

ip filter dynamic 200080 * * ftp syslog=off
ip filter dynamic 200081 * * domain syslog=off
ip filter dynamic 200082 * * www syslog=off
ip filter dynamic 200083 * * smtp syslog=off
ip filter dynamic 200084 * * pop3 syslog=off
ip filter dynamic 200085 * * submission syslog=off
ip filter dynamic 200098 * * tcp syslog=off
ip filter dynamic 200099 * * udp syslog=off

とある日のトラフィックはこんな感じです。

スイッチの設定

ブラウザ上で vlan の設定をポチポチとやります。

設定値は以下のような感じです。

安い VLAN 対応スイッチですが簡単な統計は出ます。

Wi-Fi APの設定

周波数と SSID が分離されていて設定しやすいです。このご時世、2.4GHz をオフにしていてもクレームは出ませんでした。

AP の設定は以下のような感じです。VLAN に対応してアクセスポイント名を設定しています。

L1 の敷設です。Wi-Fi AP は上の方に設置して降らせる感じで電波を飛ばすのが良いみたいなので上部に設置します。

壁に穴を開けて、Wi-Fi を設置したところです。ケーブルが露出していて汚いのでモールでカバーをします。

Viva ホームで買ってきたモールです。マルチカッターで切ります。2 秒位でカットできます。

完了した状態です(アンテナの向き地面に対して垂直が正しく、写真の状態は間違い)。

Chromecastを設置

  • 会議室のテレビには Chromecastを設置しました。ゲストネットワークに参加させておきます。
  • 来訪者が Wi-Fi に繋げれば、Windows と macOS からも会議室のテレビをワイヤレスで投影できるので便利です。

設定管理

API で制御は出来ないので、Infrastructure as Code の理想に近づけるためにも設定ファイルをダンプして GitHub で管理。

結果

初期コスト: 約11万円

ランニングコスト: 1万円未満/月

ベンチマーク

Wi-Fi でのベンチマーク

有線でのベンチマーク

IPv6 の設定テスト結果

  • 2019 年 4 月〜2023 年 10 月の 4 年半が経過した現在、問題は 1 度も起きておりません。
  • 1 年に 1 回程度、ファームウェアの更新しているので再起動しています。
  • Wi-Fi だけで事足りてしまうようで、有線 LAN はほぼ使われていないです。OS のアップデートなどで数百 GB のダウンロードをする際には周りの Wi-Fi ユーザに迷惑をかけないという意味でも有線を使うのが良いです。早く終わるし。

まとめ

  • オフィスの引っ越しに伴いネットワークを構築しました。
  • 工数は 10 人日ぐらい使いました(キャリア選定、機器選定、L1,L2 設計、施工、設定、テスト、ケーブル作成など)
  • もし、在宅環境を整備するなら:YAMAHA RTX830 + WLX212 or WLX313を入れておけば完璧かなと。WiFi6はまだ理論値をちゃんと出せるハードウェアが無いので気にしなくて良いかと思います。
株式会社マインディア テックブログ

Discussion