ネットワークのブラッシュアップ
また現在の構成をよく表しているのが、
https://wanchance.com/infra/
https://wanchance.com/ip-daichou/
である
この表にないものとして
darkheroZ790からVLAN20で192.168.20.10がXS-12の4番portに追加されています。またdarkheroZ790のファブリックR640とのQSFP+は廃止されました。
新しくメディアserverとしてhiramePCが追加されました現在はVLAN10192.168.10.40とR640とのファブリック接続のみです。
🔍 ネットワーク機器 検査レポート
みーきゅんクラウド インフラ — SSH接続による設定・障害診断
📊 エグゼクティブサマリー
- 🔴【高】Ciscoスイッチ全体で大量のoutput drops — 通信速度低下の直接原因12XS の複数ポートで数千万〜1億超のパケットドロップ。RTX1300方向27M、WiFi方向80M、SMストレージ方向95M など。
- 🔴【高】Te2/0/9 (SM_STORAGE_LACP) が suspended — ストレージ帯域50%喪失Po2 (SMストレージ LACP) の片側メンバーが suspended。94M出力ドロップ+1億3800万 PAUSE frames。
- 🔴【高】Po30 (R640-STG-BOND) で PAUSE frames が 42億超 — カウンタオーバーフローR640ストレージポートからのEthernet PAUSE frameが異常多発。フロー制御が連続発動しているためストレージ通信が断続的に停止。
- 🔴【高】48T: Gi1/0/1 (RTX1300-OOB) に281M output drops + 頻繁なリンクフラップ3月24日に約1分間隔でup/downを繰り返す。OOB管理通信の信頼性が著しく低下。
- ✅【対応済】RTX1300 再起動後にNextcloud NATポートフォワードが消失 → 復旧完了config-main.txt適用後にWireGuard(UDP:54024)/HTTPS/HTTP の静的NATが消えていた。今回の検査中に即時修復・save済み。
- ✅【対応済】RTX1300 LAN1/LAN3 同一IPで1G回線のみ使用 → rebootで10G切替完了再起動前はLAN1(1G)・LAN3(10G)が同じIPを持ち1Gのみ使用。reboot後はLAN3(10G)が正しく内部GWに。
- 🟡【中】両Ciscoスイッチで NTP 未設定%NTP is not enabled. ログのタイムスタンプが不正確で障害調査が困難。
- 🟡【中】RTX1300: MAP-E アドレス解決サーバへの通知が毎時間失敗"Not response from the address resolution server." ログが2026/03/06から継続記録。WAN疎通自体は正常だが監視が必要。
- 🟡【中】IOS-XE バージョン不一致 (12XS: 03.07.05E / 48T: 03.06.07E)どちらも2017年リリース。セキュリティパッチ・バグフィックスが未適用の可能性。統一アップデートを推奨。
- 🟡【中】VLAN40 の STP priority が未明示設定 (32768 vs 他VLANは 4096)VLAN10/20/30/50はpriority 4096が明示設定だがVLAN40だけデフォルト32768。今は問題ないが将来のトポロジ変化でrootが変わるリスク。
- 🟡【中】48T: Gi1/0/13 (MAIN_PC_Z790), Gi1/0/15 (R640-MGMT) 等でリンクフラップMar 22〜24 にかけて複数ポートで断続的なup/down。ケーブル品質またはNIC側の問題が疑われる。
- 🔵【低】Logging level debugging 設定 — 実エラーがSSHデバッグログに埋もれる12XS のログバッファがSSH MAC計算ログで埋まっており実障害の検知が困難。informational に変更推奨。
- 🔵【低】RTX1300: 冗長・矛盾フィルターエントリ400212は400202と重複(WAN_PC outbound)。存在しない192.168.100.0/24向けfilter(400003,400030-037)が残存。
- 🔵【低】Te2/0/2 (DARKHERO_WAN) notconnect — 2本中1本のみ使用DarkHeroへの10G接続は1本のみ使用中。冗長性なし。
🗺️ ネットワーク全体構成図
WS-C3850-12XS — コア L3 スイッチ
192.168.10.1 | IOS-XE 03.07.05E | 16x 10GbE | 稼働: 4週3日17時間
📌 ポート配線図
📋 インターフェース エラーカウンター詳細
| ポート | 接続先 | VLAN/役割 | 状態 | Output Drops | Pause Input | CRC/Frame |
|---|---|---|---|---|---|---|
| Te2/0/1 | RTX1300 LAN3 | VLAN10 | connected 10G | 27,288,209 ⚠️ | 0 | 0 |
| Te2/0/2 | DarkHero WAN | VLAN40 | notconnect | 0 | 0 | 0 |
| Te2/0/3 | DarkHero WAN | VLAN40 | connected 10G | 7,614,678 | 6,618,352 | 0 |
| Te2/0/4 | Nextcloud PC | VLAN20 | connected 10G | 0 | 0 | 0 |
| Te2/0/5 | R640 DATA (Po20) | VLAN20 | connected 10G | 23,655,269 ⚠️ | 685,213 | 0 |
| Te2/0/6 | R640 DATA (Po20) | VLAN20 | connected 10G | 1,792,199 | 175,144 | 0 |
| Te2/0/7 | R640 STG (Po30) | VLAN30 | connected 10G | 7,456,416 | 4,161 | 0 |
| Te2/0/8 | R640 STG (Po30) | VLAN30 | connected 10G | 47,626,224 ⚠️ | 0 | 0 |
| Te2/0/9 | SM STG (Po2) | VLAN30 | ⚠️ SUSPENDED | 94,735,344 ⚠️ | 138,158,681 ⚠️ | 0 |
| Te2/0/10 | SM STG (Po2) | VLAN30 | connected 10G | 0 | 0 | 0 |
| Te2/0/11 | — | VLAN1 | notconnect | 0 | 0 | 0 |
| Te2/0/12 | WiFi Router | VLAN40 | connected 10G | 80,207,641 ⚠️ | 26,338,486 ⚠️ | 0 |
| Po1 | 48T (LACP 20G) | trunk | connected | 0 | 0 | 0 |
| Po2 | SM Storage | VLAN30 | 1本のみ | 84,883,524 ⚠️ | 11,512,702 | 0 |
| Po20 | R640 DATA | VLAN20 | connected | 25,447,468 ⚠️ | 860,357 | 0 |
| Po30 | R640 STG | VLAN30 | connected | 7,456,416 | 4,294,963,347 🔴オーバーフロー | 0 |
🔒 ACL検査結果
- ✅MGMT_ONLY: 192.168.10.0/24のみSSH許可 — 適切
- ✅VLAN20/30/40/50 のセグメント間分離ACL — 適切に設定
- ✅VLAN50_EGRESS: UPDATEセグメントはプロキシ経由のみ許可 — 適切
- 🟡VLAN50_EGRESS rule 90: deny ip any any — 65,528 matches (UPDATEからの外部直接通信が大量にブロック)プロキシ設定が正しく機能しているか確認推奨。頻繁なdenyはプロキシ経由が機能していない可能性。
- 🔵AutoQos ACL群 — 自動生成エントリ、実運用に影響なし
⚙️ STP・NTP状態
| VLAN | STP Role | Priority | TCN回数 | 最終変化 |
|---|---|---|---|---|
| VLAN10 | Root | 4106 | 2 | 3週3日前 |
| VLAN20 | Root | 4116 | 5 | 2日5時間前 |
| VLAN30 | Root | 4126 | 5 | 2日5時間前 |
| VLAN40 | Root | 32808 ⚠️ | 3 | 1日1時間前 |
| VLAN50 | Root | 4146 | 2 | 3週1日前 |
| VLAN999 | 非Root | 33767 | 1 | 3週3日前 |
WS-C3850-48T — アクセス・OOBスイッチ
192.168.10.2 | IOS-XE 03.06.07E | 48x GbE + 4x 10GbE | 稼働: 4週3日18時間
📌 ポート配線図
📊 重要指標
RTX1300 — YAMAHA WANエッジルーター
192.168.10.254 | Rev.23.00.16 | 8LAN | 起動時刻: 2026/03/26 14:11
🌐 インターフェース構成
| IF | アドレス | 速度 | 状態 | 用途 |
|---|---|---|---|---|
| LAN1 | 192.168.100.1/24 | 1G (PORT1のみ) | Up | 旧管理/未使用セグ |
| LAN2 | DHCP (WAN) | 10G | Up | OCN インターネット |
| LAN3 | 192.168.10.254/24 | 10G (PORT10) | Up ✅ | 内部GW (12XS接続) |
| TUNNEL1 | 114.164.250.167 | MAP-E | Up | WAN IPv4カプセル |
📡 ルーティングテーブル
| 宛先 | ゲートウェイ | IF | 種別 |
|---|---|---|---|
| 0.0.0.0/0 | — | TUNNEL[1] | static |
| 192.168.10.0/24 | 192.168.10.254 | LAN3 | implicit |
| 192.168.20.0/24 | 192.168.10.1 | LAN3 | static |
| 192.168.30.0/24 | 192.168.10.1 | LAN3 | static |
| 192.168.40.0/24 | 192.168.10.1 | LAN3 | static |
| 192.168.50.0/24 | 192.168.10.1 | LAN3 | static |
🔒 フィルター・NAT検査
- ✅【対応済】Nextcloud NATポートフォワード (UDP:54024 / TCP:443 / TCP:80) — 本検査中に復旧config-main.txtにstatic NATエントリが欠如していたため追加。sd1:/config-main.txtに保存済み。
- ✅WAN inbound: プライベートアドレス詐称 (400000-002) 拒否 — 適切
- ✅NetBIOS/SMB (135, 445, NetBIOS) 拒否 (400020-025) — 適切
- ✅WAN outbound: MGMT/UPDATE/WAN_PCセグメントのみ許可 — セグメント制御適切
- 🟡MAP-E address resolution server 通知失敗ログ — 2026/03/06から毎時間記録"Not response from the address resolution server." — WAN疎通は正常だが、OCN側のサーバ応答なし。ISP側の仕様変更の可能性あり。
- 🔵ip filter 400212 が 400202 と重複 (両方 pass 192.168.40.0/24)機能上の問題はないが不要エントリ。削除推奨。
- 🔵192.168.100.0/24向けフィルター群 (400003, 400030-037) が残存現在LAN1が192.168.100.1/24になったため一部は有効だが、tunnelのinboundに含まれる400003は不要ロジック。整理推奨。
⚙️ リソース状況
🚨 通信速度低下 — 根本原因分析
原因① 出力キュー枯渇 (Output Queue Drop)
最大の問題。スイッチの出力バッファが満杯になりパケットを廃棄している状態。CRC/フレームエラーは0件のため物理層の問題ではなく、受信側の処理能力を超えたトラフィックが送信されていることが原因。
| ポート | 接続先 | Output Drops | 主因 |
|---|---|---|---|
| Te2/0/12 | WiFi Router | 80,207,641 | WiFiルーターがパケット処理しきれない / フロー制御未設定 |
| Po2 | SM Storage (1本) | 84,883,524 | Te2/0/9 suspend により実効帯域50%減少 |
| Te2/0/9 | SM STG (suspended) | 94,735,344 | LACP片側断 → Po2に集中 → overload |
| Te2/0/8 | R640 STG | 47,626,224 | R640からの大量PAUSE frame → バッファ圧迫 |
| Te2/0/1 | RTX1300 LAN3 | 27,288,209 | reboot前は1G経由→ 現在は10G改善済 |
| Gi1/0/1 (48T) | RTX1300-OOB | 281,690,858 | OOBポートへのトラフィック集中 + リンクフラップ |
原因② Ethernet PAUSE Frame 異常多発
接続先デバイスがバッファ満杯を通知するPAUSE frameを大量送信。スイッチ側が送信を停止し、実効帯域が大幅に低下。
| ポート | PAUSE Input 件数 | 意味 |
|---|---|---|
| Po30 (R640-STG) | 4,294,963,347 (カウンタオーバーフロー🔴) | R640のストレージ側NICが限界を超えて連続PAUSE送信 |
| Te2/0/9 (SM SUSP) | 138,158,681 | suspended前に大量受信。SMが1本に過負荷状態だった |
| Te2/0/12 (WiFi) | 26,338,486 | WiFiルーターが処理しきれず頻繁にPAUSE送信 |
| Po2 (SM STG) | 11,512,702 | SMストレージからのPAUSE |
原因③ Te2/0/9 (SM_STORAGE_LACP) suspended による帯域半減
- 🔴Po2 (SMストレージ LACP) の片側ポートが suspended 状態本来 20Gbps (2×10G) の帯域が 10Gbps に低下。LACPネゴシエーション失敗の可能性。SM側のbondingデバイス設定またはケーブルの確認が必要。
確認コマンド:show etherchannel 2 detail
原因④ RTX1300 LAN1/LAN3 IP重複 (reboot前) — 対応済
- ✅reboot前: LAN1(1G)・LAN3(10G)が同じ192.168.10.254/24を持ち1G経由でルーティングされていたreboot後は LAN3(10G) のみ 192.168.10.254/24。LAN3の送信パケット数が 5 → 145,000+ に増加。内部⇄WAN間の実効帯域が大幅改善。
📋 改善アクション一覧(優先度順)
| 優先度 | 対象機器 | 問題 | 推奨アクション | 効果 |
|---|---|---|---|---|
| 🔴 高 | 12XS | Te2/0/9 suspended (Po2片側断) | SMストレージ側bonding設定確認・ケーブル再挿し・LACP再ネゴシエーション | SMストレージ帯域を20Gに回復 / ドロップ解消 |
| 🔴 高 | 12XS | Po30 PAUSE frames オーバーフロー | R640ストレージNICのフロー制御設定確認・OS側でPAUSE制御を調整 | ストレージ転送速度安定化 |
| 🔴 高 | 12XS | Te2/0/12 WiFi Router 80M drops | WiFiルーター側の受信バッファ設定確認・接続先をGbEに変更検討・QoS設定 | WiFiトラフィック安定化 |
| 🔴 高 | 48T | Gi1/0/1 リンクフラップ + 281M drops | RTX1300-OOBポート (LAN1 PORT1) のケーブル交換・ポート変更 | OOB管理の安定化 |
| 🟡 中 | 12XS / 48T | NTP未設定 | NTPサーバ設定を追加 (RTX1300を参照元に推奨) | ログタイムスタンプ正確化・障害調査改善 |
| 🟡 中 | 12XS | VLAN40 STP priority未設定 | spanning-tree vlan 40 priority 4096 を追加 |
STP安定性向上 |
| 🟡 中 | 12XS | logging level debugging | no logging buffered debugging → logging buffered informational |
実エラーの検知精度向上 |
| 🟡 中 | 48T | リンクフラップポート (Gi1/0/13, 15, 19) | ケーブル交換・NIC確認。再発するなら errdisable recovery + carrier-delay 設定 |
管理通信安定化 |
| 🟡 中 | 12XS / 48T | IOS-XE バージョン古い | 03.07.05E → 最新版へアップデート (メンテウィンドウで実施) | セキュリティ・バグ修正 |
| 🔵 低 | RTX1300 | 冗長フィルター (400212重複等) | 不要フィルターを整理・削除 | 設定の可読性向上 |
| 🔵 低 | 12XS | Te2/0/2 notconnect (DarkHero 2本目) | 未使用ならshutdown設定推奨 | 設定明確化 |
⚙️ 推奨設定変更コマンド集
WS-C3850-12XS
! ① NTP設定 (RTX1300をNTPサーバとして使用)
ntp server 192.168.10.254
! ② VLAN40 STP priority 明示設定
spanning-tree vlan 40 priority 4096
! ③ logging level を debugging → informational に変更
no logging buffered debugging
logging buffered 65536 informational
! ④ Te2/0/2 (未接続DarkHero) をshutdown
interface TenGigabitEthernet2/0/2
shutdown
! ⑤ Te2/0/9 (SM LACP) の状態確認・再ネゴシエーション
show etherchannel 2 detail
! 問題があればSM側のbonding設定確認後:
interface TenGigabitEthernet2/0/9
shutdown
no shutdown
! 設定保存
write memory
WS-C3850-48T
! ① NTP設定
ntp server 192.168.10.254
! ② フラップポートへの carrier-delay 設定 (誤検知防止)
interface GigabitEthernet1/0/1
carrier-delay msec 500
interface GigabitEthernet1/0/13
carrier-delay msec 500
interface GigabitEthernet1/0/15
carrier-delay msec 500
! ③ logging level 変更
no logging buffered debugging
logging buffered 65536 informational
! 設定保存
write memory
RTX1300
# ① 冗長フィルター削除 (要administrator権限)
no ip filter 400212
# ② MAP-E通知失敗は ISP側の問題の可能性大
# → OCN側に問い合わせ推奨 (機能には影響しない)
# ③ 設定保存
save
SMストレージ (Supermicro) — OS側対応
# Po2片側suspended の調査
# SM側でのbonding状態確認:
cat /proc/net/bonding/bond0 # または該当bond名
ip link show
ethtool bond0
# PAUSEフレーム設定確認 (R640側も同様)
ethtool -a eth0 # RX/TX pause状態確認
# 不要なPAUSEを無効化する場合:
ethtool -A eth0 rx off tx off
作成日: 2026-03-27 | 作成者: みーきゅんわんわん + Claude | ステータス: 計画確定・実施待ち
現在のネットワーク設計では、RTX1300がVLAN10(MGMT: 192.168.10.0/24)経由でNATを行っている。この設計により以下の問題が発生している。
| 問題 | 詳細 |
|---|---|
| 重大 VLAN10が外部と接触 | MGMT用のVLAN10がRTX1300経由でインターネットに接続可能な状態。管理系機器が意図せず外部に露出するリスクがある。 |
| 重大 IPv6 RAの制御不能 | RTX1300からのIPv6 RA(Router Advertisement)がVLAN10に流入し、VLAN10上の全機器にグローバルIPv6アドレスが付与される。R640にグローバルIPv6が付いた原因。 |
| 重大 外部アクセス制御の分散 | 12XSのACLで外部アクセス制御を実施しているが、本来はWAN境界(RTX1300)またはアクセス層(48T)で実施すべき。役割分担が不明確。 |
| Squid依存の脆弱性 | R640上のSquidでVLAN50の外部通信をフィルタリングしているが、R640に過度な役割集中。設定ミスやSquid障害時に全VLAN50通信が停止するリスク。 |
| ブラウザ制御の限界 | Chrome等の個別アプリにProxy設定をしても、他のプロセス(curl、wget、pip等)は制御できない。ネットワーク層での制御が本質的解決。 |
| # | 目的 | 達成方法 |
|---|---|---|
| 1 | VLAN10の完全閉域化 | RTX1300との接続をVLAN60(新設)に変更し、VLAN10を外部から完全遮断 |
| 2 | IPv6のVLAN単位制御 | IPv6 RAはVLAN60にのみ流入させ、VLAN40とWGのみIPv6許可 |
| 3 | 役割の明確化 | WAN境界フィルタはRTX1300、アクセス層フィルタは48T、L3ルーティングは12XS |
| 4 | Squid廃止 | 48TのACLでVLAN50のフィルタリングを実施。R640の役割集中を解消 |
| 5 | シンプルな設計 | 12XSの外部向けACLを削除。各装置が本来の役割のみを担当 |
| VLAN | 名称 | サブネット | 外部接続 | IPv6 | GW | 備考 |
|---|---|---|---|---|---|---|
| 10 | MGMT | 192.168.10.0/24 | 不可 | 不可 | 48T内完結 | 管理用。完全閉域。48Tから外に出さない |
| 20 | DATA / WG | 192.168.20.0/24 | WGのみ | 許可 | 12XS | WG接続クライアントのみ外部アクセス可 |
| 30 | STORAGE | 192.168.30.0/24 | 不可 | 不可 | なし | NFS/内部ストレージ専用。完全閉域 |
| 40 | DarkHero | 192.168.40.0/24 | 制限なし | 許可 | 12XS→VLAN60→RTX | 唯一のフルアクセスVLAN |
| 50 | UPDATE | 192.168.50.0/24 | ACL制限 | 不可 | 12XS→VLAN60→RTX | 48TのACLでフィルタ。許可先のみ |
| 60 | WAN-LINK | 192.168.60.0/24 | ★ RTX接続専用 | RA受信 | RTX1300 | 新設。RTX↔12XS間トランク |
| 999 | NATIVE | — | — | — | — | トランクNative(未使用VLAN) |
| VLAN | IPv6 | 理由 |
|---|---|---|
| VLAN60 (WAN-LINK) | RA受信 | RTX1300からのIPv6 RAはここにのみ到達 |
| VLAN40 (DarkHero) | 許可 | 12XSがVLAN60のIPv6をVLAN40にルーティング |
| VLAN20 (WG) | 許可 | WGクライアント向けにIPv6提供 |
| VLAN10/30/50 | 不可 | 12XSでIPv6ルーティング対象外。RA到達不可 |
| 機器 | VLAN60 IP | 役割 |
|---|---|---|
| RTX1300 LAN3 | 192.168.60.1 | VLAN60 GW / NAT / WAN境界 |
| 12XS SVI | 192.168.60.2 | VLAN60側 L3ルーティング |
| 装置 | 役割 | 詳細 |
|---|---|---|
| RTX1300 | WAN境界 NAT フィルター |
・インターネット接続の唯一の出入口 ・NATをVLAN60経由で実施(現VLAN10から変更) ・VLAN40/50のみWAN通過許可(VLAN10/20/30は遮断) ・VLAN20はWGクライアントの戻りパケットのみ許可 ・IPv6 RAをVLAN60にのみ配信 |
| 12XS | L3ルーティング VLAN間分離 |
・VLAN間ルーティング(default route → VLAN60 192.168.60.1) ・VLAN30(STORAGE)への到達制御 ・IPv6ルーティング:VLAN40/20のみ許可 ・外部向けACLは持たない(RTX1300に委譲) |
| 48T | アクセス層 VLAN50フィルタ VLAN10完結 |
・VLAN10をこのスイッチ内で完結させる(外に出さない) ・VLAN50のACL(現VLAN10 ACLを転用)でフィルタリング ・許可先IPアドレス/ポートのみ通過 |
| R640 | サーバー専任 |
・WireGuard終端(wg0, wg-admin) ・Nextcloud / Portal / Docker ・Squid廃止(フィルタリング役割から解放) ・デフォルトルートはVLAN20 GW経由→12XS→VLAN60→RTX |
| 項目 | Before(現状) | After(新設計) |
|---|---|---|
| RTX↔12XS接続 | VLAN10(192.168.10.254) | VLAN60(192.168.60.0/24)新設 |
| NAT | VLAN10経由 | VLAN60経由 |
| VLAN10 | RTXに到達可能(外部接触あり) | 48T内完結(完全閉域) |
| IPv6 RA | VLAN10に流入(制御不能) | VLAN60のみ。40/20にルーティング |
| 外部アクセス制御 | 12XS ACL + R640 Squid | RTX1300フィルタ + 48T ACL |
| VLAN50フィルタ | R640上のSquid(プロキシ) | 48TのACL(L2/IP層制御) |
| 12XS ACL | VLAN20/40/50の外部向けACL多数 | VLAN間分離のみ(外部向け削除) |
| DarkHero外部 | VLAN40→12XS→RTX(ACL経由) | VLAN40→12XS→VLAN60→RTX(制限なし) |
| # | 作業 | コマンド/詳細 | リスク |
|---|---|---|---|
| A1 | 全装置の現行config保存 |
RTX1300: save /flash/backup-20260327.config12XS: copy running-config flash:backup-20260327.cfg48T: copy running-config flash:backup-20260327.cfgR640: sudo cp /etc/netplan/*.yaml /root/backup-netplan/
| なし |
| A2 | R640 Squid設定の記録 |
cp /etc/squid/squid.conf /root/backup-squid/cp /etc/squid/allowed-domains.txt /root/backup-squid/※ 廃止前の記録として保存 | なし |
| A3 | 48T VLAN50 ACL許可リスト作成 |
Squidのallowed-domains.txtをIPアドレスに変換し、48TのACLに落とし込む準備。dig +short ubuntu.com 等で主要ドメインのIP確認。※ CDN利用サービスはIPレンジでの許可が必要 | なし |
| A4 | ロールバック手順書の準備 | 各Phaseのロールバックコマンドを事前に用意 | なし |
| # | 作業 | コマンド/詳細 | リスク |
|---|---|---|---|
| B1 | 12XSにVLAN60を作成 |
conf t vlan 60 name WAN-LINK exit interface vlan 60 ip address 192.168.60.2 255.255.255.0 no shutdown exit | 低 |
| B2 | 12XS→RTX間ポートにVLAN60追加 |
RTX接続ポートをtrunkにしVLAN60を許可。 ※ 既存VLAN10のtrunkも維持(Phase D完了まで) interface [RTX接続ポート] switchport trunk allowed vlan add 60 exit | 低 |
| B3 | RTX1300 LAN3をVLAN60に設定 |
※ この手順はRTXのconfigを確認してから確定する。 VLAN60のIP: 192.168.60.1/24 NATの内側インターフェースをVLAN60に変更。 ip lan3 address 192.168.60.1/24 (NATおよびフィルタの変更は Phase C で実施) | 中 |
| B4 | 疎通確認 |
12XS から: ping 192.168.60.1RTX から: ping 192.168.60.2
| なし |
| # | 作業 | コマンド/詳細 | リスク |
|---|---|---|---|
| C1 | RTX1300の現行config確認 |
show config で現在のNAT/フィルター/ルーティング全体を確認。特に nat descriptor, ip filter, ip route を記録。
| なし |
| C2 | NATをVLAN60経由に変更 |
nat descriptorの内側アドレスレンジを変更。 192.168.60.0/24(および12XS経由の40/50/20)をNAT対象に。 ※ 具体的なconfigはC1の結果を元に確定 | 高 |
| C3 | RTXフィルター設定 |
# VLAN40(制限なし) ip filter 600100 pass 192.168.40.0/24 * * * * # VLAN50(許可先のみ — 48T ACLと二重防御) ip filter 600110 pass 192.168.50.0/24 * * * * # VLAN20(WGクライアント戻りのみ) ip filter 600120 pass 192.168.20.0/24 * * * * # VLAN10/30 は遮断(デフォルトdeny) ip filter 600190 reject * * * * * # LAN3適用 ip lan3 secure filter in 600100 600110 600120 600190※ 具体的なフィルター番号は現行configに合わせて調整 | 高 |
| C4 | IPv6 RA制御 |
RTX1300のIPv6 RAがVLAN60にのみ流れることを確認。 LAN3(VLAN60)以外のインターフェースでRA無効化。 | 中 |
| C5 | 疎通確認 |
DarkHero(VLAN40)からインターネット到達確認 R640(VLAN20)からインターネット到達確認 traceroute 8.8.8.8 でVLAN60経由を確認
| なし |
| # | 作業 | コマンド/詳細 | リスク |
|---|---|---|---|
| D1 | 12XS default route変更 |
no ip route 0.0.0.0 0.0.0.0 192.168.10.254 ip route 0.0.0.0 0.0.0.0 192.168.60.1 | 高 |
| D2 | 12XSの外部向けACL削除 |
VLAN20_INGRESS, VLAN40_EGRESS, VLAN50_EGRESS 等の外部向けACLを削除。 VLAN間分離用ACL(STORAGE保護等)のみ残す。 ※ 削除対象は現行configを確認してからリストアップ | 中 |
| D3 | IPv6ルーティング設定 |
VLAN40/20にのみIPv6ルーティングを許可。 VLAN10/30/50へのIPv6ルーティングは設定しない。 | 中 |
| D4 | 疎通確認 |
各VLANからのインターネット到達確認。 VLAN10/30からインターネットに到達しないことを確認。 | なし |
| # | 作業 | コマンド/詳細 | リスク |
|---|---|---|---|
| E1 | 12XSからVLAN10 SVIを削除 |
conf t no interface vlan 10 exit※ VLAN10のGWが消えるため、VLAN10機器の外部到達性が失われる(意図通り) | 中 |
| E2 | 12XS→48Tトランクからvlan10除外 |
interface [48T uplink] switchport trunk allowed vlan remove 10 exit | 中 |
| E3 | 48T内でVLAN10 GW設定(必要なら) |
VLAN10機器同士の通信がL2のみで完結するなら不要。 管理用に48T内にVLAN10 SVIを置く場合: interface vlan 10 ip address 192.168.10.1 255.255.255.0 no ip route-cache exit | 低 |
| E4 | 確認 |
VLAN10機器から ping 8.8.8.8 → 到達不可を確認 ✅VLAN10機器間の通信は正常を確認 ✅ | なし |
| # | 作業 | コマンド/詳細 | リスク |
|---|---|---|---|
| F1 | 現VLAN10 ACLを確認・転用設計 |
show access-lists で現VLAN10 ACLの内容を確認。VLAN50向けに許可IPリストを作成。 | なし |
| F2 | VLAN50 ACL作成 |
Squidのallowed-domains.txtの内容をIP/CIDRベースに変換し、ACLに設定。 許可対象例: ・Ubuntu APTリポジトリ(archive.ubuntu.com系) ・Docker Hub(registry-1.docker.io系) ・PyPI(pypi.org系) ・GitHub ※ 具体的なIPレンジは事前調査(Phase A3)の結果を使用 | 中 |
| F3 | ACL適用 | 48TのVLAN50ポートにACLを適用 | 中 |
| F4 | 確認 |
R640(VLAN50)から apt update → 成功を確認R640(VLAN50)から curl https://example.com → 拒否を確認
| なし |
| # | 作業 | コマンド/詳細 | リスク |
|---|---|---|---|
| G1 | Squid停止・無効化 |
sudo systemctl stop squid sudo systemctl disable squid | 低 |
| G2 | Chrome .desktop復元 |
sudo cp /usr/share/applications/google-chrome.desktop.bak \
/usr/share/applications/google-chrome.desktop
プロキシ設定を削除(Squid不要のため)
| 低 |
| G3 | APT proxyを削除 |
sudo rm /etc/apt/apt.conf.d/01proxy※ 48T ACLで制御するため、プロキシ経由は不要 | 低 |
| G4 | R640 netplan確認 |
デフォルトルートがVLAN20 GW(192.168.20.1)経由であることを確認。 VLAN50のGWが正しいことを確認。 | 低 |
| テスト項目 | 期待結果 | コマンド例 |
|---|---|---|
| VLAN40(DarkHero)→ インターネット | 到達 | ping 8.8.8.8 / ブラウザ確認 |
| VLAN40 IPv6 | 到達 | ping6 google.com |
| VLAN50(R640 UPDATE)→ apt update | 成功 | sudo apt update |
| VLAN50 → 許可外ドメイン | 拒否 | curl https://twitter.com |
| VLAN20(WG Client)→ インターネット | 到達 | WG接続端末からブラウザ確認 |
| VLAN20 IPv6 | 到達 | WG端末から ping6 |
| VLAN10 → インターネット | 到達不可 | ping 8.8.8.8 → timeout |
| VLAN10 → VLAN10内通信 | 正常 | VLAN10機器間ping |
| VLAN30 → インターネット | 到達不可 | ping 8.8.8.8 → timeout |
| VLAN30 NFS → R640 | 正常 | showmount -e |
| WireGuard(外部→R640) | 正常 | 外部端末からWG接続確認 |
| Nextcloud(WG経由) | 正常 | WG接続後ブラウザでcloud.k2-o.net |
| R640 IPv6 グローバル | なし | ip -6 addr でグローバルIPv6なし確認 |
| Phase | ロールバック方法 |
|---|---|
| Phase B | 12XSからVLAN60削除。RTX LAN3を元に戻す。影響なし。 |
| Phase C | RTX1300のconfigをバックアップから復元: load /flash/backup-20260327.config |
| Phase D | 12XSのdefault routeを元に戻す: ip route 0.0.0.0 0.0.0.0 192.168.10.254。ACLをバックアップから復元。 |
| Phase E | 12XSにVLAN10 SVIを再作成。トランクにVLAN10追加。 |
| Phase F/G | Squid再有効化: sudo systemctl enable --now squid。APT proxy復元。 |
| 時刻 | 作業 | 結果 |
|---|---|---|
| 14:44 | R640 Chrome をSquid経由で起動テスト | root権限ではX11接続不可。katuoユーザーで実行して成功。 |
| 14:47 | Squidログ確認 | TCP_DENIED/403 で全ドメイン拒否を確認。allowed-domains.txt更新。 |
| 14:48 | ブラウザだけでなくOS全体の制御が必要と判断 | みーきゅん指摘: ブラウザ制御は人的ミスリスク軽減に過ぎない。ネットワーク層制御が本質。 |
| 14:57 | Squid起動失敗 | allowed-domains.txtのサブドメイン重複エラー(.dl.google.comが.google.comの重複)。整理後に復旧。 |
| 15:00 | Squid復旧確認 | active (running) 確認。 |
| 15:12 | 大規模ネットワーク再設計を決定 | VLAN60新設、NAT移行、VLAN10閉域化、Squid廃止、48T ACL化。 |
| 15:19 | 設計詳細の議論 | VLAN10をXSから切り離す理由を確認。IPv6制御の方針確定。 |
| 15:28 | IPv6ポリシー確定 | VLAN60→40/20のみIPv6許可。10/30/50は不可。 |
| 15:31 | 計画書作成開始 | 本ドキュメント。 |
# /etc/squid/allowed-domains.txt(整理後) .github.com .githubusercontent.com .chatgpt.com .openai.com .anthropic.com .claude.ai .ubuntu.com .launchpad.net .google.com .googleapis.com .gstatic.com .googleusercontent.com .youtube.com .googlevideo.com .ytimg.com .pypi.org .pythonhosted.org .docker.io .docker.com .wanchance.com .cloudflare.com
# 変更済み(Phase Gで復元予定) /usr/share/applications/google-chrome.desktop → Exec行に --proxy-server="http://192.168.50.10:3128" を追加 → バックアップ: google-chrome.desktop.bak
| 優先度 | 作業 | 備考 |
|---|---|---|
| 最優先 | RTX1300 現行config取得 | show config の全文をClaude に貼り付け。NATとフィルターの現状把握が最初のステップ。 |
| 最優先 | 12XS 現行config取得 | show running-config の全文。ACL/VLAN/SVI/ルーティング把握。 |
| 最優先 | 48T 現行config取得 | show running-config の全文。VLAN10 ACLの転用準備。 |
| 高 | Phase A 事前準備 | config保存、IPレンジ調査、ロールバック手順書 |
| 高 | Phase B〜G 実施 | メンテウィンドウを設けて順次実行 |
| 中 | Phase 2 ロードマップ続行 | Step 1(Switch安定化)は本計画で吸収。Step 2以降を継続。 |
状況: Mikyun Cloud のネットワーク大規模再設計を計画中。VLAN60新設、RTX1300のNAT移行、VLAN10閉域化、Squid廃止が主な変更。計画書は完成。実施は未着手。
次にやること:
① RTX1300 / 12XS / 48T の現行 show config を取得し、Phase B〜G の具体的なコマンドを確定する。
② メンテウィンドウを決めて Phase B から順次実施。
③ 各Phase完了後にテスト項目を実行し、問題があれば即ロールバック。
設計原則(みーきゅん判断):
・R640に特殊設定を集中させない(Squid廃止の理由)
・スイッチは自発的行動がないから設定が崩れない
・フィルタリングはスイッチ/ルーターの本来の役割
・VLAN10は完全閉域(IPv6含む)
・IPv6はVLAN40とWGのみ
作成日: 2026-03-27 | 作成者: みーきゅんわんわん + Claude | ステータス: 計画確定・実施待ち
参照元: wanchance.com/infra/ ・ /ip-daichou/ ・ /next-mission/ ・ 検査レポート(2026-03-26)
1. 背景と目的 | 2. 現行構成の完全整理 | 3. 新設計(VLAN60・Po1変更) | 4. 全体ルール集 | 5. Before/After比較 | 6. 物理配線変更マップ | 7. 実施手順(Phase A〜H) | 8. ロールバック | 9. 最終テスト | 10. 引き継ぎサマリ
| # | 問題 | 詳細 | 深刻度 |
|---|---|---|---|
| 1 | VLAN10が外部と接触 | RTX1300 LAN3が192.168.10.254でVLAN10に直接参加。MGMT機器(iDRAC, UPS, スイッチOOB)がRTX経由でインターネットに到達可能。検査レポートでGi1/0/1(RTX1300-OOB)に281M output dropsも確認。 | 重大 |
| 2 | IPv6 RAの制御不能 | RTX1300のIPv6 RAがVLAN10に流入→R640を含む全VLAN10機器にグローバルIPv6が付与される。R640にIPv6グローバルアドレスが付いた根本原因。 | 重大 |
| 3 | 外部アクセス制御の分散 | 12XSのACL(VLAN20_INGRESS, VLAN40_EGRESS, VLAN50_EGRESS等)で外部制御を実施中。本来はWAN境界(RTX)またはアクセス層(48T)の役割。12XSに不要な複雑さが集中。 | 重大 |
| 4 | R640へのSquid集中 | R640上のSquid(port 3128)でVLAN50フィルタリング。Squid障害→全UPDATE通信停止。3/27にallowed-domains.txtサブドメイン重複でSquid起動失敗を実際に経験。 | 高 |
| 5 | Po1トランクの過剰設計 | 48T↔12XS間のPo1(10G×2 LACP)がVLAN10/50をトランクで搬送。VLAN10を48T内完結にすればPo1はVLAN50専用で十分。トランクの複雑さが不要。 | 高 |
| # | 目的 | 実現方法 |
|---|---|---|
| 1 | VLAN10の完全閉域化 | RTXとの接続をVLAN60(新設)に移行。VLAN10は48T内でL2完結。12XSからVLAN10 SVIを削除。 |
| 2 | IPv6のVLAN単位制御 | IPv6 RAはVLAN60のみに流入。12XSからVLAN40/20のみにIPv6ルーティング。10/30/50はIPv6なし。 |
| 3 | 役割の明確化 | RTX1300=WAN境界フィルタ/NAT、12XS=L3ルーティング/VLAN間分離のみ、48T=VLAN50フィルタ/VLAN10完結 |
| 4 | Squid廃止 | 48TのACLでVLAN50をIP/ポートベースでフィルタ。R640からフィルタリング役割を完全に解放。 |
| 5 | Po1をVLAN50専用に変更 | 48T↔12XS間のPo1(10G×2 LACP)をVLAN50アクセスポートに変更。トランク不要化。 |
| 6 | 設計のシンプル化 | 12XSの外部向けACLを全削除。各装置が本来の役割のみ担当。 |
| VLAN | 名称 | CIDR | GW(12XS SVI) | 外部接続 | 収容ポート |
|---|---|---|---|---|---|
| 10 | MGMT | 192.168.10.0/24 | 192.168.10.1 | RTX経由で可能(問題) | 48T: Gi1/0/1,3,5,7,9,11,13,15,17,37,39,41 |
| 20 | DATA | 192.168.20.0/24 | 192.168.20.1 | ★唯一の出口(DGW) | 12XS: Te2/0/4(NC-PC), Po20(R640) |
| 30 | STORAGE | 192.168.30.0/24 | 192.168.30.1 | なし(閉域) | 12XS: Po30(R640), Po2(SM) |
| 40 | WAN_PC | 192.168.40.0/24 | 192.168.40.1 | 制限なし | 12XS: Te2/0/3(DH), Te2/0/12(WiFi) |
| 50 | UPDATE | 192.168.50.0/24 | 192.168.50.1 | Squid経由のみ | 48T: Gi1/0/25(R640), Gi1/0/27(SM) |
| 999 | NATIVE | — | — | — | トランクNative(未使用) |
| 機器 | IF名 | Linux IF | IP | VLAN | 接続先ポート | DGW | DNS |
|---|---|---|---|---|---|---|---|
| R640 | R640-IDRAC | (iDRAC) | 192.168.10.20 | 10 | 48T Gi1/0/7 | — | — |
| R640-MGMT | eno3 | 192.168.10.21 | 10 | 48T Gi1/0/15 | — | — | |
| R640-UPD | eno4 | 192.168.50.10 | 50 | 48T Gi1/0/25 | — | — | |
| R640-DATA1 | enop216sof0 | 192.168.20.20 | 20 | 12XS Te2/0/5 (Po20) | 192.168.20.1 | 1.1.1.1 | |
| R640-DATA2 | eno1 | 192.168.20.21 | 20 | 12XS Te2/0/6 (Po20) | 192.168.20.1 | 1.1.1.1 | |
| R640-STG1 | enop216sof1 | 192.168.30.20 | 30 | 12XS Te2/0/7 (Po30) | — | — | |
| R640-STG2 | eno2 | 192.168.30.21 | 30 | 12XS Te2/0/8 (Po30) | — | — | |
| R640-FAB1 | enp59s0 | 172.31.20.1 | FAB-B | SM直結 QSFP | — | — | |
| R640-FAB2 | enp59s0d1 | 172.31.21.1 | FAB-B | SM直結 QSFP | — | — | |
| R640-DH1 | ibp94s0 | 172.31.22.1 | FAB-B | DH直結 QSFP | — | — | |
| R640-DH2 | ibp94s0d1 | 172.31.23.1 | FAB-B | DH直結 QSFP | — | — | |
| Supermicro | SM-WEB | console | 192.168.10.30 | 10 | 48T Gi1/0/9 | — | — |
| SM-MGMT | eno3 | 192.168.10.31 | 10 | 48T Gi1/0/17 | — | — | |
| SM-STG1 | eno1 | 192.168.30.30 | 30 | 12XS Te2/0/9 (Po2) | — | — | |
| SM-STG2 | enp1311sf1 | 192.168.30.31 | 30 | 12XS Te2/0/10 (Po2) | — | — | |
| SM-UPD | eno2 | 192.168.50.30 | 50 | 48T Gi1/0/27 | — | — | |
| SM-FAB-A | eno4 | 172.31.10.1 | FAB-A | DH直結 10G | — | — | |
| SM-FAB-B1 | ens6 | 172.31.20.2 | FAB-B | R640直結 QSFP | — | — | |
| SM-FAB-B2 | enos6d1 | 172.31.21.2 | FAB-B | R640直結 QSFP | — | — | |
| spare | enp1311sf0 | — | — | — | — | — | |
| DarkHero | DH-MGMT | — | 192.168.10.10 | 10 | 48T Gi1/0/13 | — | — |
| DH-WAN | — | 192.168.40.10 | 40 | 12XS Te2/0/3 | 192.168.40.1 | 1.1.1.1 | |
| DH-FAB-A | — | 172.31.10.2 | FAB-A | SM直結 10G | — | — | |
| DH-FAB-B1 | — | 172.31.22.2 | FAB-B | R640直結 QSFP | — | — | |
| DH-FAB-B2 | — | 172.31.23.2 | FAB-B | R640直結 QSFP | — | — | |
| RTX1300 | LAN3 | — | 192.168.10.254 | 10 | 12XS Te2/0/1 | — | — |
| ポート | 接続先 | VLAN/モード | 速度 | 検査結果 |
|---|---|---|---|---|
| Te2/0/1 | RTX1300 LAN3 | trunk (VLAN10) | 10G | ⚠️ 27M output drops |
| Te2/0/2 | DarkHero WAN #2 | VLAN40 | notconnect | 未使用 |
| Te2/0/3 | DarkHero WAN #1 | VLAN40 | 10G | 7.6M drops |
| Te2/0/4 | Nextcloud PC | VLAN20 | 10G | ✅ 0 drops |
| Te2/0/5 | R640-DATA1 (Po20) | VLAN20 | 10G | ⚠️ 23.6M drops |
| Te2/0/6 | R640-DATA2 (Po20) | VLAN20 | 10G | 1.8M drops |
| Te2/0/7 | R640-STG1 (Po30) | VLAN30 | 10G | 7.5M drops |
| Te2/0/8 | R640-STG2 (Po30) | VLAN30 | 10G | ⚠️ 47.6M drops |
| Te2/0/9 | SM-STG1 (Po2) | VLAN30 | ⚠️ SUSPENDED | 🔴 94.7M drops / 138M PAUSE |
| Te2/0/10 | SM-STG2 (Po2) | VLAN30 | 10G | ✅ 0 drops |
| Te2/0/11 | — | VLAN1 | notconnect | 未使用 |
| Te2/0/12 | WiFi Router | VLAN40 | 10G | 🔴 80.2M drops / 26M PAUSE |
| Te2/1/3 | 48T (Po1) | trunk | 10G | ✅ |
| Te2/1/4 | 48T (Po1) | trunk | 10G | ✅ |
| VLAN | 名称 | CIDR | GW | 外部 | IPv6 | 収容スイッチ | 変更点 |
|---|---|---|---|---|---|---|---|
| 10 | MGMT | 192.168.10.0/24 | 48T SVI .10.1 (または GWなし) | 不可 | 不可 | 48Tのみ | ★ 12XSから完全切離し。Po1から除外。閉域化。 |
| 20 | DATA/WG | 192.168.20.0/24 | 12XS .20.1 | WGのみ | 許可 | 12XS | 変更なし。WGクライアントのみ外部到達。 |
| 30 | STORAGE | 192.168.30.0/24 | 12XS .30.1 | 不可 | 不可 | 12XS | 変更なし。完全閉域。 |
| 40 | WAN_PC | 192.168.40.0/24 | 12XS .40.1 | 制限なし | 許可 | 12XS | 変更なし。唯一のフルアクセスVLAN。 |
| 50 | UPDATE | 192.168.50.0/24 | 12XS .50.1 | ACL制限 | 不可 | 48T → Po1 → 12XS | ★ Squid廃止→48T ACLでフィルタ。Po1がVLAN50専用に。 |
| 60 | WAN-LINK | 192.168.60.0/24 | RTX .60.1 | ★ RTX専用 | RA受信 | 12XS Te2/0/1のみ | ★ 新設。RTX↔12XS間P2P。NATはここだけ。 |
| 999 | NATIVE | — | — | — | — | トランク用 | 変更なし。 |
| 機器 | 変更前 | 変更後 | 備考 |
|---|---|---|---|
| RTX1300 LAN3 | 192.168.10.254 (VLAN10) | 192.168.60.1 (VLAN60) | NAT内側IFをVLAN60に変更 |
| 12XS SVI VLAN60 | (なし) | 192.168.60.2 | 新設。VLAN60側ルーティングエンドポイント |
| 12XS SVI VLAN10 | 192.168.10.1 | 削除 | 48Tに移管 or 廃止 |
| 12XS default route | 192.168.10.254 | 192.168.60.1 | next-hopをVLAN60 RTXに変更 |
| 12XS Te2/0/1 | trunk (VLAN10) | access VLAN60 | RTX接続ポートのモード変更 |
| Po1 (12XS↔48T) | trunk (VLAN10,50) | access VLAN50 | ★ 10G×2 LACPをVLAN50専用に変更 |
| VLAN | IPv6 | 制御方法 |
|---|---|---|
| VLAN60 | RA受信(RTXから) | RTX LAN3からRAが流入。ここでのみIPv6アドレスを受信。 |
| VLAN40 | 許可 | 12XSがVLAN60のIPv6をVLAN40にルーティング |
| VLAN20 (WG) | 許可 | 12XSがVLAN60のIPv6をVLAN20にルーティング(WGクライアント向け) |
| VLAN10 | 不可 | 48T内完結。12XSに到達しないためIPv6ルーティング対象外。 |
| VLAN30 | 不可 | 12XSでIPv6ルーティングしない。RA到達不可。 |
| VLAN50 | 不可 | 12XSでIPv6ルーティングしない。RA到達不可。 |
| # | ルール名 | 内容 | 違反した場合 |
|---|---|---|---|
| L1 | 三層分離の遵守 | CORE(12XS)= L3ルーティング/VLAN間分離のみ。ACCESS(48T)= ポート収容/フィルタ/VLAN10完結。EDGE(RTX)= WAN境界/NAT/フィルタ。各層の役割を超えた設定をしない。 | 複雑性増大→事故の温床 |
| L2 | 外部フィルタの所在 | 外部アクセスのフィルタリングは RTX1300(WAN境界)と 48T(アクセス層ACL)のみ。12XSに外部向けACLは置かない。 | 12XSのACL肥大→管理不能 |
| L3 | R640に特殊設定を集中させない | R640はサーバー専任(WG/Nextcloud/Portal/Docker)。Squidのようなネットワーク制御機能をR640に持たせない。 | R640障害→全通信停止 |
| L4 | スイッチの信頼性 | スイッチは自発的な行動がないため設定が崩れない。フィルタリングはスイッチ/ルーターの本来の役割。可能な限りネットワーク機器側で制御する。 | — |
✅ 唯一の出口: R640のDefault GW = VLAN20(192.168.20.1)のみ。DarkHeroのDefault GW = VLAN40(192.168.40.1)のみ。
| 機器 | Default GW | DNS | 理由 |
|---|---|---|---|
| R640 | 192.168.20.1(VLAN20のみ) | 1.1.1.1(VLAN20のみ) | 二重出口防止。VPN安定性。非対称ルーティング防止。 |
| DarkHero | 192.168.40.1(VLAN40のみ) | 1.1.1.1(VLAN40のみ) | 同上。 |
| Supermicro | なし | なし | ストレージノードは外部到達不要。UPDATEはVLAN50経由。 |
| VLAN10機器 | なし(48T内完結) | なし | 管理ネットワークは閉域。DNSがあるIFをOSが出口と誤認するため禁止。 |
| Fabric全IF | なし | なし | 純同期ネットワーク。Routing禁止/Internet禁止/DNS不要。 |
| From \ To | VLAN10 | VLAN20 | VLAN30 | VLAN40 | VLAN50 | VLAN60 | Internet |
|---|---|---|---|---|---|---|---|
| VLAN10 (MGMT) | ✅ L2 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| VLAN20 (DATA) | ❌ | ✅ | ✅ R640→SM | ❌ | ❌ | ✅ via 12XS | ✅ WGのみ |
| VLAN30 (STG) | ❌ | ✅ NFS | ✅ | ❌ | ❌ | ❌ | ❌ |
| VLAN40 (DH) | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ via 12XS | ✅ 制限なし |
| VLAN50 (UPD) | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ via 12XS | ✅ ACL許可先のみ |
| VLAN60 (WAN) | ❌ | ✅ ルーティング | ❌ | ✅ ルーティング | ✅ ルーティング | ✅ | ✅ |
| VLAN | 外部到達 | 制御場所 | 制御方法 |
|---|---|---|---|
| VLAN10 | ❌ 到達不可 | 物理的に遮断(48T内完結) | 12XSにVLAN10 SVIなし。Po1にVLAN10なし。RTXに届かない。 |
| VLAN20 | WGクライアントのみ | RTX1300フィルタ | RTXがVLAN20からのWG戻りパケットのみ許可。R640自身はVLAN20 GW経由で外部到達可能。 |
| VLAN30 | ❌ 到達不可 | 12XS ACL(VLAN間分離) | VLAN30 GWなし設計は維持。12XSでVLAN30→VLAN60ルーティングしない。 |
| VLAN40 | ✅ 制限なし | RTX1300(pass all) | DarkHero唯一のフルアクセスVLAN。RTXで全通過。 |
| VLAN50 | ACL許可先のみ | 48T ACL + RTX1300 | 48TのACLでIP/ポートベース制御。RTXでも二重防御。 |
| 機器/IF | DNS | 理由 |
|---|---|---|
| DarkHero VLAN40 | 1.1.1.1 | 唯一の外部通信IF |
| R640 VLAN20 (bond0) | 1.1.1.1 | 唯一の外部通信IF |
| WGクライアント | dnsmasq (10.200.0.1) | R640上のdnsmasqで cloud.k2-o.net 等を内部解決 |
| それ以外のすべてのIF | ❌ なし | DNSがあるIF = OSが出口と誤認する。事故防止の核心。 |
| アクセス元 | DNS解決方法 | 設定場所 |
|---|---|---|
| WGクライアント(iPhone等) | dnsmasq(10.200.0.1) | R640: /etc/dnsmasq.conf |
| ローカルPC(LAN直接) | hostsファイル | 各PC: /etc/hosts or C:\Windows\…\hosts |
| R640自身 | /etc/hosts | R640: /etc/hosts |
| Nextcloudコンテナ | extra_hosts(compose.yml) | R640: /root/nextcloud-stack/compose.yml |
| Collaboraコンテナ | --add-host(docker run) | ひらめPC: docker runコマンド |
| ひらめPC自身 | /etc/hosts | ひらめPC: /etc/hosts |
| Fabric | 経路 | 帯域 | ルール |
|---|---|---|---|
| FABRIC-A | DarkHero ↔ Supermicro 直結 | 10G RJ45 | GWなし / DNSなし / Routing禁止 / ファイル転送専用 |
| FABRIC-B | R640 ↔ Supermicro QSFP直結 | 40G×2 | GWなし / DNSなし / balance-xor LACP / Ceph対応 / 将来クラスタ同期 |
| FABRIC-B (DH) | R640 ↔ DarkHero QSFP直結 | 40G×2 | 同上 |
| 装置 | 役割 | やること | やらないこと |
|---|---|---|---|
| RTX1300 | WAN境界 NAT WAN側フィルタ | NATをVLAN60経由で実施。VLAN40/50のWAN通過許可。VLAN10/30遮断。IPv6 RAをVLAN60にのみ配信。WireGuard UDP 54024 のポートフォワード。 | VLAN間ルーティング。内部フィルタリング。 |
| 12XS | L3ルーティング VLAN間分離 | VLAN間ルーティング(default route → .60.1)。VLAN30(STORAGE)への到達制御ACL。IPv6: VLAN40/20のみルーティング。STP Root全VLAN。 | 外部向けACL。VLAN10の管理。フィルタリング。 |
| 48T | アクセス層 VLAN50 ACL VLAN10完結 | VLAN10ポート収容(閉域)。VLAN50ポート収容+ACLフィルタ。Po1でVLAN50を12XSに搬送。 | L3ルーティング。外部通信。 |
| R640 | サーバー専任 | WireGuard終端(wg0/wg-admin/wg2)。Nextcloud/Portal/Docker。dnsmasq。nginx。 | Squid(廃止)。ネットワークフィルタリング。プロキシ。 |
| IF | サブネット | 用途 | EndPoint |
|---|---|---|---|
| wg0 | 10.200.0.0/16 | 顧客VPN | vpn.k2-o.net:54024 |
| wg-admin | — | 内部管理VPN | — |
| wg2 | 10.250.0.0/24 | VPS↔R640 backhaul | — |
| 項目 | Before(現状) | After(新設計) |
|---|---|---|
| RTX↔12XS接続 | Te2/0/1 trunk VLAN10 RTX LAN3: 192.168.10.254 | Te2/0/1 access VLAN60 RTX LAN3: 192.168.60.1 |
| 12XS default route | 192.168.10.254 | 192.168.60.1 |
| NAT | VLAN10経由 | VLAN60経由 |
| VLAN10 | 12XS SVI .10.1 あり RTXに到達可能 | 12XS SVI 削除 48T内L2完結・完全閉域 |
| IPv6 RA | VLAN10に流入(全機器にIPv6付与) | VLAN60のみ。40/20にルーティング。 |
| Po1 (48T↔12XS) | trunk (VLAN10, 50, 999 native) VLAN10も搬送 | ★ access VLAN50 VLAN50専用 10G×2 LACP |
| VLAN50フィルタ | R640上Squid (port 3128) | 48T ACL (IP/ポートベース) |
| 12XS ACL | VLAN20_INGRESS, VLAN40_EGRESS, VLAN50_EGRESS 等 多数 | VLAN間分離のみ(外部向け全削除) |
| R640 Squid | 有効 (port 3128) allowed-domains.txt 管理 | ★ 廃止・disable |
| R640 Chrome .desktop | --proxy-server追記済み | ★ バックアップから復元(プロキシ不要) |
| R640 APT proxy | /etc/apt/apt.conf.d/01proxy 設定済み | ★ 削除(48T ACLで制御) |
| スイッチ | ポート | 現状 | 変更後 | 物理作業 |
|---|---|---|---|---|
| 12XS | Te2/0/1 | trunk (RTX LAN3) VLAN10 | access VLAN60 | ケーブルそのまま。設定変更のみ。 |
| 12XS | Te2/1/3 | Po1メンバー trunk (VLAN10,50) | Po1メンバー access VLAN50 | ケーブルそのまま。設定変更のみ。 |
| 12XS | Te2/1/4 | Po1メンバー trunk (VLAN10,50) | Po1メンバー access VLAN50 | ケーブルそのまま。設定変更のみ。 |
| 48T | Te1/1/3 | Po1メンバー trunk | Po1メンバー access VLAN50 | ケーブルそのまま。設定変更のみ。 |
| 48T | Te1/1/4 | Po1メンバー trunk | Po1メンバー access VLAN50 | ケーブルそのまま。設定変更のみ。 |
⚠️ 最初のステップ: RTX1300 / 12XS / 48T の show config 全文を取得し、具体的コマンドを確定する。
| # | 作業 | コマンド |
|---|---|---|
| A1 | 全装置config保存 | RTX: save /flash/backup-pre-vlan60.config12XS: copy running-config flash:backup-pre-vlan60.cfg48T: copy running-config flash:backup-pre-vlan60.cfgR640: sudo cp -r /etc/netplan/ /root/backup-netplan-pre-vlan60/sudo cp -r /etc/squid/ /root/backup-squid-pre-vlan60/ |
| A2 | show config全文取得 | RTX: show config → Claudeに貼付(NATフィルタ確認)12XS: show running-config → 同上48T: show running-config → 同上 |
| A3 | VLAN50 ACL許可先IP調査 | Squidのallowed-domains.txtの各ドメインをdig/nslookupでIP化。CDN系はCIDRで確認。 |
| A4 | ロールバック手順書確認 | Section 8 のロールバック手順を印刷 or 別端末に表示。 |
| # | 作業 | コマンド | リスク |
|---|---|---|---|
| B1 | 12XSにVLAN60作成+SVI | conf t vlan 60 name WAN-LINK exit interface vlan 60 ip address 192.168.60.2 255.255.255.0 no shutdown exit | 低 |
| B2 | Te2/0/1をVLAN60 accessに変更 | interface Te2/0/1 switchport mode access switchport access vlan 60 no shutdown exit※ この瞬間RTXとの通信が一時断 ※ RTX側も同時にVLAN60設定する | 高 |
| B3 | RTX LAN3をVLAN60に変更 | ip lan3 address 192.168.60.1/24※ RTX config確認後に確定 | 高 |
| B4 | 疎通確認 | 12XS: ping 192.168.60.1RTX: ping 192.168.60.2 | なし |
| # | 作業 | 詳細 | リスク |
|---|---|---|---|
| C1 | NATをVLAN60経由に変更 | nat descriptorの内側アドレスレンジ変更。12XS経由の全サブネット(20/40/50)をNAT対象に。※ show configの結果から具体化 | 高 |
| C2 | static routeをVLAN60に変更 | # 旧ルート削除 no ip route 192.168.20.0/24 gateway 192.168.10.1 no ip route 192.168.30.0/24 gateway 192.168.10.1 ... # 新ルート追加 ip route 192.168.20.0/24 gateway 192.168.60.2 ip route 192.168.40.0/24 gateway 192.168.60.2 ip route 192.168.50.0/24 gateway 192.168.60.2※ VLAN10/30のルートは追加しない(到達不可が正しい) | 高 |
| C3 | WireGuard NATポートフォワード確認 | UDP:54024 / TCP:443 / TCP:80 のstatic NATが正しく192.168.20.21宛になっていることを確認 | 中 |
| C4 | IPv6 RA制御 | LAN3(VLAN60)以外でRA無効化。VLAN10へのRA流入を遮断。 | 中 |
| C5 | 疎通確認 | DarkHero: ping 8.8.8.8 + ブラウザR640: traceroute 8.8.8.8 → VLAN60経由確認 | なし |
| # | 作業 | コマンド | リスク |
|---|---|---|---|
| D1 | default route変更 | no ip route 0.0.0.0 0.0.0.0 192.168.10.254 ip route 0.0.0.0 0.0.0.0 192.168.60.1 | 高 |
| D2 | 外部向けACL削除 | VLAN20_INGRESS, VLAN40_EGRESS, VLAN50_EGRESS等の外部向けACLを削除。VLAN間分離用ACL(STORAGE保護等)のみ残す。※ show config確認後に確定 | 中 |
| D3 | VLAN40 STP priority修正 | spanning-tree vlan 40 priority 4096(検査レポートで未設定と判明) | 低 |
| D4 | IPv6ルーティング | VLAN40/20にのみIPv6ルーティング許可。10/30/50はルーティングしない。 | 中 |
| # | 作業 | コマンド | リスク |
|---|---|---|---|
| E1 | 12XS VLAN10 SVI削除 | no interface vlan 10 | 中 |
| E2 | 48T内にVLAN10 SVI設定(任意) | interface vlan 10 ip address 192.168.10.1 255.255.255.0 no ip route-cache exit※ VLAN10内L2通信のみならSVI不要。管理上必要な場合のみ。 | 低 |
| E3 | 確認 | VLAN10機器間ping: ✅ VLAN10→8.8.8.8: ❌ timeout(正常) | なし |
| # | 作業 | コマンド | リスク |
|---|---|---|---|
| F1 | 12XS側 Po1変更 | interface Port-channel1 switchport mode access switchport access vlan 50 exit interface range Te2/1/3 - 4 switchport mode access switchport access vlan 50 exit | 中 |
| F2 | 48T側 Po1変更 | interface Port-channel1 switchport mode access switchport access vlan 50 exit interface range Te1/1/3 - 4 switchport mode access switchport access vlan 50 exit | 中 |
| F3 | 確認 | R640(VLAN50 .50.10) → ping 192.168.50.1 (12XS SVI)SM(VLAN50 .50.30) → ping 192.168.50.1 | なし |
| # | 作業 | 詳細 | リスク |
|---|---|---|---|
| G1 | VLAN50 ACL作成 | Squid allowed-domains.txtをIP/CIDRに変換。主要許可先: Ubuntu APT, Docker Hub, PyPI, GitHub, wanchance.com, Google, Cloudflare。※ Phase A3の調査結果を使用 | 中 |
| G2 | ACL適用 | 48TのVLAN50ポート(Gi1/0/25, Gi1/0/27)にACLを適用。またはVLAN50 SVIにACL適用。 | 中 |
| G3 | 確認 | R640: sudo apt update → ✅R640: curl https://twitter.com → ❌ 拒否 | なし |
| # | 作業 | コマンド |
|---|---|---|
| H1 | Squid停止・無効化 | sudo systemctl stop squid && sudo systemctl disable squid |
| H2 | Chrome .desktop復元 | sudo cp /usr/share/applications/google-chrome.desktop.bak /usr/share/applications/google-chrome.desktop |
| H3 | APT proxy削除 | sudo rm /etc/apt/apt.conf.d/01proxy |
| H4 | 全体テスト(Section 9参照) | 全VLANからの到達性テスト。WireGuard/Nextcloud/NFS確認。 |
| H5 | wanchance.comの更新 | インフラ構成ページ/IP台帳/Next Missionを新設計に更新。 |
| Phase | ロールバック |
|---|---|
| B | 12XS Te2/0/1をtrunk VLAN10に戻す。RTX LAN3を192.168.10.254に戻す。VLAN60 SVI削除。 |
| C | RTX configをバックアップから復元: load /flash/backup-pre-vlan60.config |
| D | 12XS default routeを戻す: ip route 0.0.0.0 0.0.0.0 192.168.10.254。ACLバックアップ復元。 |
| E | 12XSにVLAN10 SVI再作成 interface vlan 10 / ip address 192.168.10.1 255.255.255.0 |
| F | Po1をtrunkに戻す: switchport mode trunk / switchport trunk allowed vlan 10,50 |
| G/H | Squid再有効化: sudo systemctl enable --now squid。APT proxy復元。.desktop復元。 |
| テスト項目 | 期待結果 | コマンド |
|---|---|---|
| VLAN40(DarkHero)→ Internet | 到達 | ping 8.8.8.8 / ブラウザ |
| VLAN40 IPv6 | 到達 | ping6 google.com |
| VLAN50 → apt update | 成功 | sudo apt update(R640/SM両方) |
| VLAN50 → 許可外 | 拒否 | curl https://twitter.com |
| VLAN20(WG Client)→ Internet | 到達 | WG端末からブラウザ |
| VLAN20 IPv6 | 到達 | WG端末からping6 |
| VLAN10 → Internet | 不可 | ping 8.8.8.8 → timeout |
| VLAN10内通信 | 正常 | VLAN10機器間ping |
| VLAN30 → Internet | 不可 | ping 8.8.8.8 → timeout |
| VLAN30 NFS | 正常 | showmount -e / mount確認 |
| WireGuard外部→R640 | 正常 | 外部端末からWG接続 |
| Nextcloud(WG経由) | 正常 | https://cloud.k2-o.net |
| Collabora | 正常 | Nextcloudからドキュメント開く |
| R640 IPv6グローバル | なし | ip -6 addr → グローバルアドレスなし |
| Po1 VLAN50疎通 | 正常 | R640(.50.10) → ping 192.168.50.1 |
| traceroute経路 | VLAN60経由 | traceroute 8.8.8.8 → 192.168.60.1が見える |
状況: Mikyun Cloud ネットワーク大規模再設計。計画書完成・実施未着手。
変更の核心(6点):
① VLAN60(192.168.60.0/24)新設 — RTX↔12XS間のP2Pリンク
② RTX1300のNAT/ルーティングをVLAN10→VLAN60に移行
③ VLAN10を48T内L2完結で完全閉域化(12XSからSVI削除)
④ Po1(48T↔12XS 10G×2 LACP)をtrunk→VLAN50 accessに変更
⑤ Squid廃止 → 48T ACLでVLAN50フィルタリング
⑥ 12XSの外部向けACL全削除
次にやること:
① RTX1300 / 12XS / 48T の show config 全文を取得
② Phase B〜H の具体的コマンドを確定
③ メンテウィンドウを決めて実施
設計原則:
・R640に特殊設定を集中させない(Squid廃止の理由)
・スイッチは自発的行動がない→設定が崩れない
・フィルタはスイッチ/ルーターの本来の役割
・Default GWはVLAN20のみ(R640)/ VLAN40のみ(DH)
・DNSがあるIF = OSが出口と誤認する → VLAN20/40以外にDNS禁止
・VLAN10は完全閉域(IPv6含む)
・IPv6はVLAN40とWGのみ許可
🔧 みーきゅんクラウド VLAN60ネットワーク大規模再設計 — Claude Code 自動実行指示書
この指示書をそのままClaude Codeに貼り付けてください。 事前に https://wanchance.com/next-mission/ と https://wanchance.com/ip-daichou/ と https://wanchance.com/infra/ を読み込ませてから実行してください。
📋 作業概要
みーきゅんクラウドのネットワーク大規模再設計を自動実行してください。 作業対象は以下の4台です:
| 機器 | 管理IP | 接続方法 | ユーザー |
|---|---|---|---|
| RTX1300 | 192.168.10.254 | SSH (telnet) | admin |
| WS-C3850-12XS | 192.168.10.1 | SSH | admin |
| WS-C3850-48T | 192.168.10.2 | SSH | admin |
| R640 (Ubuntu) | 192.168.10.21 | SSH | root/katuo |
🔐 権限と自動承認ルール
以下のルールを厳守してください:
自動承認(確認不要で実行してよい):
- R640/SM/12XS/48T/RTX1300 へのSSH接続・コマンド実行
- スイッチ/ルーターの設定変更(VLAN作成、ACL変更、ポート変更、ルーティング変更)
- R640上のサービス停止/起動/無効化(Squid含む)
- R640上のファイル編集・削除・バックアップ
- netplan変更・適用
- write memory / save(設定保存)
- すべてのping/traceroute/show系コマンド
- ファイルの作成・出力
禁止事項(絶対にやらないこと):
- wanchance.com 以外の外部サーバーへのSSH接続
- 機器の再起動(reboot/reload)— 明示的に指示があった場合のみ可
- 既存のWireGuard設定の変更(wg0.conf, wg-admin等)
- Nextcloudのデータ/設定の変更
- Docker コンテナの停止・削除
物理作業が必要な場合:
- ケーブル差し替え等の物理作業が必要な箇所は スキップ してください
- スキップした作業は最終報告書の「物理作業待ちリスト」にまとめてください
- 論理設定変更で対応可能な部分はすべて自動実行してください
途中確認は不要:
- 「実行してよいですか?」等の確認は一切不要です
- 各Phaseを順番に自動実行し、各Phase完了後に結果をログに記録してください
- エラーが発生した場合のみ停止し、エラー内容を報告してください
🎯 実行する変更内容(6項目)
変更1: VLAN60新設(RTX↔12XS間 P2Pリンク)
- 12XSにVLAN60(WAN-LINK)を作成、SVI: 192.168.60.2/24
- Te2/0/1(RTX接続ポート)を現在のtrunk → access VLAN60 に変更
- RTX1300 LAN3のIPを 192.168.10.254 → 192.168.60.1/24 に変更
変更2: RTX1300 NAT/ルーティング移行
- NATの内側インターフェースをVLAN10→VLAN60に変更
- static routeのnext-hopを 192.168.10.1 → 192.168.60.2 に変更
- VLAN10/30向けルートは削除(到達不可が正しい設計)
- WireGuard NATポートフォワード(UDP:54024, TCP:443, TCP:80)は維持
変更3: VLAN10完全閉域化
- 12XSから interface vlan 10 を削除(SVI削除)
- VLAN10は48T内でL2完結させる
- 48Tに必要ならVLAN10 SVI (192.168.10.1/24) を設定
変更4: Po1をVLAN50専用に変更
- 12XS側: Po1 (Te2/1/3 + Te2/1/4) を trunk → access VLAN50 に変更
- 48T側: Po1 (Te1/1/3 + Te1/1/4) を trunk → access VLAN50 に変更
- VLAN10はPo1から除外される(48T内完結のため不要)
変更5: Squid廃止 → 48T ACLでVLAN50フィルタ
- R640上のSquidを停止・無効化
- Chrome .desktopのproxy設定を復元
- APT proxy設定(/etc/apt/apt.conf.d/01proxy)を削除
- 48TにVLAN50用ACLを作成(許可先IPリストは後述)
変更6: 12XS外部向けACL削除
- VLAN20_INGRESS, VLAN40_EGRESS, VLAN50_EGRESS 等の外部向けACLを削除
- VLAN間分離用ACL(STORAGE保護等)は残す
- default routeを 192.168.10.254 → 192.168.60.1 に変更
- VLAN40 STP priority を 4096 に設定(検査レポートで未設定と判明)
📝 実行手順(この順番で実行すること)
Phase 0: 情報収集と事前準備
# 0-1. 全機器の現行config取得・保存
# RTX1300
ssh admin@192.168.10.254 "show config" > /tmp/rtx1300-config-backup.txt
# 12XS
ssh admin@192.168.10.1 "show running-config" > /tmp/12xs-config-backup.txt
# 48T
ssh admin@192.168.10.2 "show running-config" > /tmp/48t-config-backup.txt
# R640
cp /etc/netplan/*.yaml /root/backup-netplan-pre-vlan60/
cp -r /etc/squid/ /root/backup-squid-pre-vlan60/
# 0-2. 現在の状態を記録
# 各機器の show vlan brief / show ip route / show interface status / show etherchannel summary を取得
# RTXの show nat descriptor address / show status tunnel 1 を取得
重要: Phase 0で取得したconfigを分析し、以降のPhaseのコマンドを具体化してから進むこと。 特に以下を確認:
- RTX1300の nat descriptor 番号と設定内容
- RTX1300の ip filter 番号体系
- RTX1300の ip route 設定一覧
- 12XSの現行ACL名と内容(外部向けACLの特定)
- 12XSの Te2/0/1 の現行設定
- Po1 の現行trunk設定(allowed vlan)
- 48Tの現行ACL
Phase B: VLAN60新設
# B-1. 12XSにVLAN60作成
ssh admin@192.168.10.1
conf t
vlan 60
name WAN-LINK
exit
interface vlan 60
ip address 192.168.60.2 255.255.255.0
no shutdown
exit
end
write memory
# B-2. Te2/0/1をVLAN60 accessに変更
# ⚠️ この瞬間RTXとの通信が一時的に切れる
# B-3のRTX設定と素早く連続で実施すること
conf t
interface Te2/0/1
switchport mode access
switchport access vlan 60
no shutdown
exit
end
write memory
# B-3. RTX1300 LAN3をVLAN60に変更
# ※ RTXのconfigを確認して正確なコマンドを確定すること
# 基本形:
ssh admin@192.168.10.254 # ← この時点でVLAN10経由で到達できない可能性あり
# コンソール接続 or 48T経由OOBで対応が必要な場合あり
ip lan3 address 192.168.60.1/24
# B-4. 疎通確認
# 12XSから: ping 192.168.60.1
# RTXから: ping 192.168.60.2
⚠️ Phase Bの重要な注意点: Te2/0/1をVLAN60に変えた瞬間、RTXのLAN3(192.168.10.254)と12XSのVLAN10 SVI(192.168.10.1)が別VLANになるため通信断が発生する。
対処法(以下のいずれかで対応):
- RTX1300にOOB経由(48T Gi1/0/1 → VLAN10)でアクセスできる場合はそちらから設定変更
- RTX1300のコンソール接続が必要な場合は「物理作業待ち」としてスキップ
- 12XS側でVLAN10 SVIを残したまま先にRTXを変更し、確認後にVLAN10 SVIを削除する順序に変更
推奨: 手順3の安全な順序で実施:
- まず12XSにVLAN60 SVIを追加(既存VLAN10はそのまま)
- Te2/0/1をtrunkのままVLAN60を追加(switchport trunk allowed vlan add 60)
- RTX LAN3にVLAN60 tag付きで接続するか、別ポートでVLAN60接続
- VLAN60経由の疎通確認後に、Te2/0/1からVLAN10を除外
Phase C: RTX1300 NAT/フィルター移行
Phase 0で取得したRTX configを分析し、以下を実行:
# C-1. static route変更
# 旧ルート削除(existing routeを正確に確認してから)
# 例:
no ip route 192.168.20.0/24 gateway 192.168.10.1
no ip route 192.168.30.0/24 gateway 192.168.10.1
no ip route 192.168.40.0/24 gateway 192.168.10.1
no ip route 192.168.50.0/24 gateway 192.168.10.1
# 新ルート追加(VLAN60経由)
ip route 192.168.20.0/24 gateway 192.168.60.2
ip route 192.168.40.0/24 gateway 192.168.60.2
ip route 192.168.50.0/24 gateway 192.168.60.2
# ※ VLAN10/30のルートは追加しない(到達不可が正しい)
# C-2. NAT descriptor変更
# ※ Phase 0で確認したnat descriptor番号に合わせて変更
# 内側アドレスレンジを確認し、VLAN60経由のサブネットをNAT対象に
# C-3. WireGuard NATポートフォワード確認
# UDP:54024 → 192.168.20.21 が維持されていることを確認
# TCP:443 → 192.168.20.21
# TCP:80 → 192.168.20.21
# C-4. フィルター設定
# RTXのWAN inbound/outbound フィルターを確認
# VLAN60サブネット(192.168.60.0/24)からの通信を許可するフィルタを追加
# 不要になったVLAN10向けフィルタを整理
# C-5. IPv6 RA制御
# LAN3以外のインターフェースでRA無効化を確認
# C-6. 設定保存
save
Phase D: 12XS ルーティング変更・ACL整理
# D-1. default route変更
conf t
no ip route 0.0.0.0 0.0.0.0 192.168.10.254
ip route 0.0.0.0 0.0.0.0 192.168.60.1
# D-2. 外部向けACL削除
# Phase 0で特定した外部向けACLを削除
# 例: VLAN50_EGRESS, VLAN20_INGRESS, VLAN40_EGRESS 等
# ※ VLAN間分離ACL(STORAGE保護等)は残すこと
# D-3. VLAN40 STP priority修正
spanning-tree vlan 40 priority 4096
# D-4. NTP設定(検査レポートで未設定と判明)
ntp server 192.168.10.254
# D-5. logging level修正
no logging buffered debugging
logging buffered 65536 informational
end
write memory
# D-6. 疎通確認
# DarkHero(VLAN40) → ping 8.8.8.8
# R640(VLAN20) → ping 8.8.8.8
# traceroute 8.8.8.8 で 192.168.60.1 が経路に見えることを確認
Phase E: VLAN10のXSからの切り離し
# E-1. 12XS VLAN10 SVI削除
conf t
no interface vlan 10
end
write memory
# E-2. 48TにVLAN10 SVI設定(管理用)
ssh admin@192.168.10.2
conf t
interface vlan 10
ip address 192.168.10.1 255.255.255.0
no ip route-cache
exit
end
write memory
# E-3. 確認
# VLAN10機器間ping → 成功
# VLAN10 → ping 8.8.8.8 → timeout(正しい)
Phase F: Po1をVLAN50専用に変更
# F-1. 12XS側
ssh admin@192.168.10.1
conf t
interface Port-channel1
switchport mode access
switchport access vlan 50
exit
interface range TenGigabitEthernet2/1/3 - 4
switchport mode access
switchport access vlan 50
exit
end
write memory
# F-2. 48T側(⚠️ この時点で48TへのSSH経路を確認)
# Po1がVLAN50になると、48TへのSSHはVLAN10経由のみ
# 48TのVLAN10 SVIにIPがあることを確認してからPo1を変更
ssh admin@192.168.10.2
conf t
interface Port-channel1
switchport mode access
switchport access vlan 50
exit
interface range TenGigabitEthernet1/1/3 - 4
switchport mode access
switchport access vlan 50
exit
end
write memory
# F-3. 確認
# show etherchannel summary → Po1がVLAN50 accessであること
# R640(192.168.50.10) → ping 192.168.50.1 (12XS VLAN50 SVI)
Phase G: 48T VLAN50 ACL設定
# G-1. VLAN50 ACL作成
# 以下のドメインのIPレンジを許可するACLを作成
# まずdigでIP確認:
dig +short archive.ubuntu.com
dig +short security.ubuntu.com
dig +short registry-1.docker.io
dig +short pypi.org
dig +short github.com
dig +short dl.google.com
# 48TにACL設定(IPベース)
ssh admin@192.168.10.2
conf t
ip access-list extended VLAN50_UPDATE_FILTER
! DNS (必須)
permit udp 192.168.50.0 0.0.0.255 any eq 53
permit tcp 192.168.50.0 0.0.0.255 any eq 53
! HTTP/HTTPS (許可先のみ — CDN利用のため広めに許可)
permit tcp 192.168.50.0 0.0.0.255 any eq 443
permit tcp 192.168.50.0 0.0.0.255 any eq 80
! NTP
permit udp 192.168.50.0 0.0.0.255 any eq 123
! ICMP (ping許可)
permit icmp 192.168.50.0 0.0.0.255 any
! 上記以外は拒否
deny ip any any log
! ACL適用(VLAN50 SVI に適用)
interface vlan 50
ip access-group VLAN50_UPDATE_FILTER in
exit
end
write memory
# ※ 注意: 上記ACLはHTTP/HTTPS全許可の暫定版です
# ドメインベースのフィルタはL3 ACLでは困難なため、
# ポートベース(443/80許可、それ以外拒否)で暫定運用し、
# 将来的にはRTX1300側でより細かいフィルタを追加する方針
Phase H: Squid廃止・R640整理
# H-1. Squid停止・無効化
sudo systemctl stop squid
sudo systemctl disable squid
# H-2. Chrome .desktop復元
sudo cp /usr/share/applications/google-chrome.desktop.bak \
/usr/share/applications/google-chrome.desktop
# H-3. APT proxy削除
sudo rm -f /etc/apt/apt.conf.d/01proxy
# H-4. R640 netplan確認
# デフォルトルートがVLAN20 GW(192.168.20.1)経由であることを確認
cat /etc/netplan/*.yaml | grep -A5 routes
ip route show default
🔍 Phase Z: 最終検査(全項目実施すること)
全Phaseの作業完了後、以下のテストをすべて実施し結果を記録してください。
# === 外部接続テスト ===
# Z-1. VLAN40(DarkHero) → Internet
# DarkHeroにSSHできない場合はスキップし報告
# Z-2. VLAN20(R640) → Internet
ping -c 3 8.8.8.8
traceroute -m 5 8.8.8.8 # 192.168.60.1が経路に見えること
# Z-3. VLAN50(R640 UPDATE) → apt update
sudo apt update # 成功すること
# Z-4. VLAN50 → 許可外アクセス
curl -s --connect-timeout 5 https://twitter.com # 拒否されること
# Z-5. VLAN20 IPv6(WGクライアント確認が必要な場合はスキップ)
ping6 -c 3 google.com
# === 閉域テスト ===
# Z-6. VLAN10 → Internet(48T経由で確認)
# VLAN10機器から ping 8.8.8.8 → timeout であること
# Z-7. VLAN10 内部通信
# VLAN10機器間 ping → 成功すること
# Z-8. VLAN30 → Internet
# VLAN30にIPがあるR640(192.168.30.20)から
# ping -I 192.168.30.20 8.8.8.8 → timeout
# === サービス確認 ===
# Z-9. NFS
showmount -e 192.168.30.30
mount | grep nfs
# Z-10. WireGuard
sudo wg show wg0
# handshake時刻が最近であること
# Z-11. dnsmasq
sudo systemctl status dnsmasq
# Z-12. nginx
sudo nginx -t
sudo systemctl status nginx
# Z-13. Nextcloud
curl -sk https://cloud.k2-o.net/status.php | grep installed
# "installed":true であること
# Z-14. Collabora
sudo docker exec -u www-data nextcloud-stack-app-1 php occ richdocuments:activate-config
# Z-15. R640 IPv6 グローバルアドレス確認
ip -6 addr show | grep "scope global"
# グローバルIPv6が付いていないこと(VLAN10閉域化の効果確認)
# === スイッチ状態確認 ===
# Z-16. 12XS
ssh admin@192.168.10.1
show vlan brief
show ip route
show etherchannel summary
show spanning-tree summary
show access-lists
# Z-17. 48T
ssh admin@192.168.10.2
show vlan brief
show etherchannel summary
show access-lists
# Z-18. RTX1300
ssh admin@192.168.10.254 # VLAN60経由で到達確認
show config
show ip route
show nat descriptor address
show status tunnel 1
# Z-19. Po1確認
# 12XS: show interface Port-channel1 → VLAN50 access であること
# 48T: show interface Port-channel1 → VLAN50 access であること
# Z-20. Squid無効化確認
systemctl is-enabled squid # disabled であること
systemctl is-active squid # inactive であること
📄 最終出力物(すべて作成すること)
出力1: 作業報告書
作業の全ログ、各Phaseの実行結果、テスト結果をまとめた報告書を作成してください。
出力2: 物理作業待ちリスト
スキップした作業がある場合、その一覧と必要な物理作業の内容をまとめてください。
出力3: 完成後の全体構成ドキュメント(HTML)
これが最も重要な出力物です。
以下の内容を含む、WordPressカスタムHTMLブロックにそのまま貼れる完成HTML形式で出力してください:
<section class="mikyun-doc">から開始<style>を内包(背景透明、14px基準、ダーク/ライト対応)- h1/h2不使用、
.title.section.subを使用
含める内容:
- 新ネットワーク全体構成図(ASCII) — VLAN60を含む完成後のトポロジー
- 完成後の全VLAN設計一覧 — VLAN10〜60、999
- 完成後のIPアドレス台帳(全機器・全IF) — R640/SM/DH/RTX/12XS/48Tの全NIC
- 12XSポートマップ(完成版) — 全ポートの接続先・VLAN・モード
- 48Tポートマップ(完成版) — 全ポートの接続先・VLAN・モード
- RTX1300構成(完成版) — LAN/NAT/フィルター/ルーティング
- VLAN間通信マトリクス — どこからどこに通信できるか
- IPv6ポリシー表
- DNS設計表
- 装置別役割分担表
- 全体ルール集(設計の憲法) — DGWルール、DNS禁止ルール、Fabric原則等
- ACL一覧(12XS/48T/RTX) — 残存ACLの内容と適用箇所
- Squid廃止の記録 — 廃止日時、旧allowed-domains.txt、旧設定内容
出力ファイル名: mikyun-cloud-network-final-config.html
⚠️ エラー時の対応ルール
- SSH接続失敗: 3回リトライ。それでも失敗なら「物理作業待ち」としてスキップ
- コマンドエラー: エラー内容を記録し、代替コマンドを試行。解決不能なら報告して次のPhaseへ
- 通信断: Phase B/Cで通信断が発生した場合、2分待ってリトライ。復旧しなければロールバック実行:
- 12XS:
ip route 0.0.0.0 0.0.0.0 192.168.10.254+ Te2/0/1をtrunk VLAN10に戻す - RTX:
load /flash/backup-pre-vlan60.config
- 12XS:
- テスト失敗: 失敗したテスト項目を報告書に記録。致命的な場合(DarkHeroがInternet到達不可等)はロールバック
🏁 完了条件
以下がすべて満たされたら作業完了:
- [ ] VLAN60新設・疎通確認済み
- [ ] RTX NATがVLAN60経由で動作
- [ ] VLAN10が48T内で完全閉域化(Internet到達不可確認済み)
- [ ] Po1がVLAN50 accessに変更済み
- [ ] Squid停止・無効化済み
- [ ] 48T VLAN50 ACL適用済み
- [ ] 12XS外部向けACL削除済み
- [ ] 全テスト項目(Z-1〜Z-20)実施・結果記録済み
- [ ] 最終構成ドキュメント(HTML)出力済み
- [ ] 作業報告書出力済み
すべて完了したら「作業完了」と報告してください。お疲れ様です!
