Windows Server 2019で二つのNICを同一サブネットに配置した際、片方のNICからしか通信が行えずアプリケーションがうまく動作しないことがあります。今回は、CCTV(監視カメラ)アプリケーションを例に、なぜ問題が起こるのか、そして具体的にどのように対策すればよいのかを解説します。
Windows Server 2019でNICを2枚使う際に起こりやすいトラブルの概要
Windows Server 2019において、二つのネットワークアダプター(NIC)を同一サブネット内で動かそうとすると、IPルーティングやメトリック設定などの影響により、一方のNICのみ正常に通信し、もう一方のNICが機能しなくなるケースがよく見受けられます。特に、片方のNICをカメラ映像受信用、もう片方のNICをクライアント端末やストレージ向けの送信用といった運用を想定すると、サーバー移行やOSアップデート後に片方しか使われなくなる現象が発生しやすいです。
この問題は、単純に「IPを割り当てれば使える」というわけではなく、Windowsのルーティングテーブルやネットワーク優先順位、CCTVアプリケーション側の設定などが複雑に絡み合っているために起こります。
なぜ同一サブネットで二つのNICが問題を起こすのか
Windows環境では、同一サブネットに属する複数のNICが存在すると、どちらのNICから送信するかがOS内部のルーティングであいまいになりやすくなります。例えば、カメラから来るデータを受け取るためのNICと、クライアントやストレージにデータを送るためのNICが同一ネットワークセグメント(同じIPレンジ)にある場合、Windowsは「宛先が同じサブネット」という条件だけで判断しがちです。その結果、OSのデフォルトルートやメトリックの設定により、意図しないNICに流れてしまうことがあります。
アダプターのバインド順序とメトリックの重要性
Windowsのネットワークアダプターには「バインド順序」という設定が存在し、優先度の高いアダプターからトラフィックを送信しようとする仕組みがあります。また、個々のアダプターには「自動メトリック」または手動メトリックを設定できます。メトリックの数値が低いほど優先される仕組みのため、同じサブネットに複数のNICが存在すると、自動設定でどちらか一方が極端に優先されるリスクがあります。
バインド順序の確認方法
以下の手順で、Windows Server 2019のネットワークアダプター優先順位(バインド順序)を確認・変更できます。
- 「コントロール パネル」→「ネットワークと共有センター」→「アダプターの設定の変更」を開く
- キーを押しながら「Alt」キーを押すとメニューが表示されるので「詳細設定」→「詳細設定」を選択
- 「アダプターとバインド」タブでネットワーク接続の順序を確認・変更
ただし、Windows ServerではGUI操作だけでなく、PowerShellやnetshコマンドでの設定も可能です。運用管理上、スクリプト化しておくと、環境移行やトラブルシューティング時に役立ちます。
メトリックの手動設定例
自動メトリックでは想定外の優先順位になることがあるため、NICごとに手動でメトリックを設定する方法があります。例えば、以下のPowerShellコマンドを利用することで、特定のNIC(例:イーサネット1)のインターフェースメトリックを100に設定できます。
Get-NetIPInterface -InterfaceAlias "イーサネット1" | Set-NetIPInterface -InterfaceMetric 100
一方、「イーサネット2」のインターフェースメトリックを200に設定すれば、「イーサネット1」が優先されます。明確に送受信の役割を分けたい場合は、適切なメトリック値を割り当てて、どちらのNICが優先されるか制御することが重要です。
netshコマンドでの設定例
PowerShellに慣れていない場合、従来からあるnetshコマンドでも同様の操作が可能です。
netsh interface ipv4 show interfaces
netsh interface ipv4 set interface "イーサネット1" metric=100
netsh interface ipv4 set interface "イーサネット2" metric=200
「netsh interface ipv4 show interfaces」でインターフェースインデックス(Idx)やメトリック値を確認し、必要に応じて設定を行います。
ルーティングテーブルの確認と調整
同一サブネットで二つのNICを運用する場合、ルーティングテーブルを明示的にチェックすることも欠かせません。既定のゲートウェイが重複している、あるいは不要なルートが登録されている場合、通信が意図せず片方に集中してしまう可能性があります。
route printでのルーティングテーブル確認
以下のようにコマンドプロンプトやPowerShellから「route print」を実行すると、現在のルーティングテーブルが表示されます。
route print
表示される情報の中で、0.0.0.0 0.0.0.0 (デフォルトルート)がどのNICに紐づいているか、メトリック値はどう設定されているかを確認してください。もし複数NICで同じゲートウェイが設定されている場合は、どちらを優先するか確認しておく必要があります。
ルートの追加・編集例
特定の宛先IPに対して、どちらのNICを使うか明示的に設定したい場合は、「route add」コマンドを活用することができます。例として、192.168.10.0/24セグメントへは「イーサネット1」を使用したい場合は、以下のように設定します。
route add 192.168.10.0 mask 255.255.255.0 192.168.10.1 metric 100 if <イーサネット1のIdx>
状況によっては、既存のルートが邪魔をしているケースもあるため、「route delete」で不要なルートを削除してから設定を追加するとスムーズです。
NIC Teaming(アダプターのチーミング)の活用
Windows Server 2012 R2以降では、OS標準機能としてNIC Teamingを利用できます。複数のNICを一つの仮想NICとしてまとめることで、冗長化や負荷分散が容易になります。監視カメラなど、常時大量の帯域を使うアプリケーションでは、NIC Teamingを構成すると以下のメリットがあります。
- 冗長化:片方のNICやスイッチが障害を起こしても、もう一方で通信を継続できる
- 負荷分散:複数のNICを束ねることで、帯域幅が向上する(モードによっては送信負荷分散などが可能)
- 管理面の簡略化:仮想NICとしてまとめるため、OS側でのルーティングやメトリック設定が単純化する
ただし、CCTVアプリケーションの仕様によっては、NIC Teamingを適用するとカメラとの直接通信がうまくいかなくなるケースもあり得るため、動作検証は十分に行う必要があります。
NIC Teamingの設定例
Windows Server Managerから「ローカルサーバー」→「NIC チーミング」を有効にして設定を行えます。PowerShellでは以下のようなコマンドを使用します。
New-NetLbfoTeam -Name "Team1" -TeamMembers "イーサネット1","イーサネット2" -TeamingMode SwitchIndependent -LoadBalancingAlgorithm Dynamic
TeamingModeやLoadBalancingAlgorithmなどのパラメータはネットワーク機器の構成や要件に合わせて検討してください。
NICドライバーやファームウェアの最新化
特に、サーバーハードウェアベンダーが提供するドライバーやファームウェアを最新化していないと、二つのNICで同一サブネットを扱う際に不具合が発生する例も散見されます。移行後に問題が生じた場合は、以下を確認しましょう。
- ハードウェアベンダー(Dell、HPE、Lenovoなど)のサイトで、ネットワークアダプターの最新ドライバーやファームウェアがリリースされていないか
- Windows UpdateやWSUSなどでNIC関連の更新が保留になっていないか
- ベンダー提供の管理ツール(たとえばDellならiDRAC、HPEならiLOなど)でハードウェア診断を実施し、エラーや警告が出ていないか
NICドライバーが古いままだと、OSレベルで正しいルーティング制御が行われない、あるいは高負荷時にパケットドロップが発生するといった不具合が表面化する可能性があります。
CCTVアプリケーション側のネットワーク設定を見直す
監視カメラなどのソフトウェアによっては、受信用NICや送信用NICを指定する設定項目が存在することがあります。あるいは、あえて特定のIPやNICだけを監視カメラの接続先として固定しているケースもあります。そういったアプリケーション設定を把握しないまま、サーバーOSレベルでNICを増やすと、アプリケーションが正しく認識できずに通信不良を起こすことがあります。
アプリケーションベンダーへの問い合わせも検討
CCTVシステムを導入している場合、ハードウェアメーカーやソフトウェアベンダーに問い合わせると、同一サブネットで複数のNICを使う際のベストプラクティスや注意点を案内してもらえることがあります。公式ドキュメントやフォーラムで対応事例を確認できれば、最短経路で問題解決につながるでしょう。
運用・設計面での考慮点
二つのNICを同一サブネットで運用するのは、実運用上メリットもありますが、Windows特有のルーティングやアプリケーション設定との競合を引き起こすリスクがあります。そのため、目的や要件を明確化したうえで、下記の設計判断を行うことが望ましいです。
帯域幅の拡大と冗長化が目的の場合
- NIC Teamingを前向きに検討
大半のケースでチーミングによる冗長化・負荷分散が有効です。 - 異なるサブネットを活用
仮にカメラセグメントとクライアント・ストレージセグメントが物理的に分かれているなら、ネットワークを別セグメントに分けることも検討します。
物理的に分離されたネットワークに接続する場合
- VLANやサブネットの再設計
監視カメラ用のLANと社内LANをVLANで分離したり、IPアドレス体系を見直すことで、NICごとの役割を明確にできます。 - セキュリティ面のメリット
CCTVネットワークを一般ユーザーが触れないようにするなど、セキュリティリスク低減も期待できます。
アプリケーションごとにNICを使い分けたい場合
- アプリケーション側でNIC指定が可能か調べる
送信元IPを明示的に選択できる設定がある場合は活用すると安定性が高まります。 - OSレベルで詳細なルーティングを組む
ルーティングテーブルで送受信先IPを指定し、意図的にNICを振り分ける方法もありますが、運用管理コストが増えるため要注意です。
具体的な設定例:CCTVアプリケーションの構成案
ここでは、カメラからの映像を受信するセグメントと、録画データを保存するストレージやクライアントへの配信用セグメントを分けて構築するイメージ例を示します。
| ネットワーク | IPレンジ | 役割 | 使用NIC |
|---|---|---|---|
| カメラ用LAN | 192.168.10.0/24 | 監視カメラからの映像転送 | イーサネット1 |
| クライアント&ストレージ | 192.168.20.0/24 | 録画データ保存・閲覧 | イーサネット2 |
この例では、異なるサブネットを用意し、それぞれのNICに別々のゲートウェイを設定します。そうすることで、ルーティングが明確になり、意図しないNICへのトラフィック集中を防げます。ただし、機器の配置など物理構成が制約を受ける場合は、VLANやスイッチ設定を駆使して同等の分離を実現することも可能です。
トラブルシューティングのステップ
最後に、実際に通信トラブルが発生した場合の対処プロセスをまとめます。
- NICハードウェアの状態を確認
デバイスマネージャーやベンダーツールでNICが正常に動作しているか、エラーを吐いていないかをチェックします。 - IPアドレス設定とゲートウェイ設定の重複を確認
同一サブネットで複数NICを使う場合は、メトリックやゲートウェイが想定外になっていないかを再度見直します。 - ルーティングテーブル(route print)を確認
どの宛先に対してどのインターフェースが優先されているのかを把握します。不要なルートがあれば削除や変更を行います。 - アプリケーション設定を見直す
CCTVソフトなどでNICを指定できるか、IP設定が適切かを確認します。 - NIC Teamingなどの冗長化・負荷分散の検討
複数NICを使い分けるよりチーミングが適している場合も多いです。 - ベンダーやサポートへ問い合わせ
メーカー固有の問題やドライバーアップデートで解決するケースがあるため、早めに情報収集を行いましょう。
まとめ:NIC運用のコツと設計のポイント
Windows Server 2019で二つのNICを同一サブネットで扱う場合、ルーティングの混乱やメトリック優先度の偏りによって、一方のNICだけが動作し他方が機能しなくなるトラブルが起こりやすいです。これを回避するには、以下のポイントを押さえておくことが重要です。
- バインド順序(優先順位)とメトリックを意識する
- 必要に応じてルーティングテーブルを明示的に設定
- NIC Teamingやサブネット分割で構成をシンプルにする
- NICドライバーのアップデートとアプリケーション設定の再確認
CCTVのように高い帯域を常時使うシステムでは、そもそも冗長化のために複数NICを導入しているケースが多いので、NIC Teamingを上手に活用することを強くおすすめします。一方で、アプリケーション側の要件によっては意図的に受信用と送信用を分離する設計が必要となるため、事前にベンダーへの相談やドキュメントの確認を行い、最適な構成を選択するとよいでしょう。

コメント