第7章: ネットワーク設定の構成と管理
1. この章で解説する主要な技術・概念(箇条書き)
- Windows Server 2022のネットワーク設定の基本
- NICの確認、IPアドレスの設定、DNSサーバーの指定、ネットワークプロファイル管理
- PowerShellを用いたIPアドレスの自動化・変更
Get-NetAdapter
, Get-NetIPAddress
, New-NetIPAddress
, Set-DnsClientServerAddress
などのコマンド
- DNSサーバーの構成とゾーン管理
Install-WindowsFeature DNS
, Add-DnsServerPrimaryZone
, Add-DnsServerResourceRecordA
など
- ファイアウォールの作成・管理(Windows Firewall with Advanced Security)
New-NetFirewallRule
, Set-NetFirewallProfile
などでルールやプロファイルを制御
- ネットワークプロファイルの切り替え(Public/Private/Domain)
Set-NetConnectionProfile
でプロファイルを変更し、セキュリティレベルを調整
- スクリプトによるネットワーク設定の一括適用
- 大規模環境でのIP割り当てやファイアウォール設定の自動化
- トラブルシューティングとネットワーク監視の自動化
- 接続テスト(
Test-Connection
, Resolve-DnsName
)、イベントログ解析のポイント
2. Windows Server 2022のネットワーク設定の基本
2-1. NIC(ネットワークインターフェース)の種類
- 物理NIC: 実サーバーに搭載されたLANポート
- 仮想NIC: Hyper-Vなどの仮想環境で定義される仮想ネットワークアダプター
- チーミング(NIC Teaming): 複数の物理NICを束ねて冗長化・帯域拡張する手法。PowerShellの
New-NetLbfoTeam
などで構成
2-2. Get-NetAdapter でインターフェース状況を確認
Get-NetAdapter
- NIC名(InterfaceAlias)、LinkSpeed、Status、MACAddress などが表示。
Set-NetAdapter
コマンドでNIC名の変更やNICチーミング設定なども可能。
2-3. IPアドレス/ゲートウェイ/DNSの概念復習
- IPv4アドレス: 例: 192.168.10.50(/24)
- デフォルトゲートウェイ: ローカルサブネット外に通信するためのルータIP
- DNSサーバー: 名前解決を担当。Windows環境ではActive Directory DNSを使うケースが多い
3. PowerShellを用いたIPアドレスの自動化・変更
3-1. 基本コマンド:Get-NetIPAddress と New-NetIPAddress
Get-NetIPAddress
: 現在のIPアドレス設定や既定ゲートウェイ情報を一覧表示
Remove-NetIPAddress
: 不要なIP設定を削除(DHCP有効だったものを静的に切り替える際に使用)
New-NetIPAddress
: 静的IPアドレスを新規追加する
# 既存のIP設定を削除(DHCP等)して静的IPを設定する例
Remove-NetIPAddress -InterfaceAlias "Ethernet" -Confirm:$false -ErrorAction SilentlyContinue
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress "192.168.10.50" -PrefixLength 24 -DefaultGateway "192.168.10.1"
3-2. DNSサーバーの指定:Set-DnsClientServerAddress
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses "192.168.10.10","8.8.8.8"
- プライマリDNSに「192.168.10.10」、セカンダリDNSに「8.8.8.8」を登録する例。
- マルチNIC環境では、InterfaceAliasごとに異なる設定が必要な場合も。
3-3. スクリプト化例:ネットワーク初期設定
param(
[string]$InterfaceAlias = "Ethernet",
[string]$IPAddress = "192.168.10.50",
[int]$PrefixLength = 24,
[string]$Gateway = "192.168.10.1",
[string[]]$DnsServers = @("192.168.10.10","8.8.8.8")
)
Remove-NetIPAddress -InterfaceAlias $InterfaceAlias -Confirm:$false -ErrorAction SilentlyContinue
New-NetIPAddress -InterfaceAlias $InterfaceAlias -IPAddress $IPAddress -PrefixLength $PrefixLength -DefaultGateway $Gateway
Set-DnsClientServerAddress -InterfaceAlias $InterfaceAlias -ServerAddresses $DnsServers
- これにより、複数サーバーへ同様の設定を展開する際も簡単に使い回せる。
4. DNSサーバーの構成とゾーン管理
4-1. DNSサーバーロールのインストール
Install-WindowsFeature -Name DNS -IncludeManagementTools
- サーバーコアでもGUIツール(DNS Manager)を使いたい場合はクライアント側からRSATなどを利用する。
4-2. プライマリゾーンの作成とレコード追加
# プライマリゾーン (example.local) を作成
Add-DnsServerPrimaryZone -Name "example.local" -ReplicationScope "Domain"
# Aレコード (webserver.example.local -> 192.168.10.100)
Add-DnsServerResourceRecordA -Name "webserver" -ZoneName "example.local" -IPv4Address "192.168.10.100"
- DNSサーバーをドメインコントローラーと同一マシンに配置する場合、
-ReplicationScope "Domain"
としてAD統合DNSを利用することが多い。
4-3. 一括レコード登録:PowerShellスクリプト例
$records = Import-Csv "C:\DnsRecords.csv" # HostName, IP
foreach ($r in $records) {
Add-DnsServerResourceRecordA -Name $r.HostName -ZoneName "example.local" -IPv4Address $r.IP
}
- CSVにホスト名とIPを列挙しておけば、大量のDNSレコードも瞬時に登録可能。
5. ファイアウォールの作成と管理
5-1. Windows Firewall with Advanced Securityの概要
- Windows Firewallは、ドメイン/パブリック/プライベート 3種のネットワークプロファイルごとにルールセットを持つ。
- 既定設定は比較的厳しめ(Inboundがほぼブロック)であるため、SQL ServerやIISなどを導入する際は必要なポートを明示的に許可する必要がある。
5-2. 代表的なコマンド:New-NetFirewallRule
New-NetFirewallRule -Name "AllowHTTP" -DisplayName "Allow HTTP (TCP 80)" `
-Protocol TCP -LocalPort 80 -Action Allow -Profile "Domain,Private"
- ドメイン/プライベートネットワークでTCP80を許可する例。
- もしパブリックネットワークでも必要なら
-Profile Any
や-Profile Domain,Private,Public
を指定。
5-3. ファイアウォールプロファイルの有効化・無効化
# ドメインプロファイルを無効化する例(推奨はされないが)
Set-NetFirewallProfile -Profile Domain -Enabled False
- 実際にはセキュリティリスクが高いため、有効化状態を保ち、必要最小限のルールを追加するのがベストプラクティス。
6. ネットワークプロファイルの管理(Public/Private/Domain)
6-1. Get-NetConnectionProfile と Set-NetConnectionProfile
Get-NetConnectionProfile
# 出力例:
# Name : Network 1
# InterfaceAlias : Ethernet
# NetworkCategory : Public
# PublicからPrivateに切り替えたい場合
Set-NetConnectionProfile -InterfaceAlias "Ethernet" -NetworkCategory Private
- ドメインに参加している場合は自動でDomainAuthenticatedプロファイルとなることが多い。
6-2. プロファイルの切り替えによるセキュリティ強化
- Publicネットワーク: より厳格なファイアウォールルールが適用される(あらゆる受信トラフィックをブロックする設定が多い)。
- Privateネットワーク: ある程度信頼できるLAN内で使用する想定。
- Domainネットワーク: ドメインコントローラーと通信可能な社内ネットワーク環境。
7. スクリプトによるネットワーク設定の一括適用
7-1. 大規模環境での活用例
- CSVやJSONファイルに各サーバーのホスト名、IP、ゲートウェイ、DNSなどをまとめ、PowerShellスクリプトでループを回して
Invoke-Command
を実行すれば、複数サーバーへの設定が一度に展開可能。
- 例:
$servers = Import-Csv "C:\Servers.csv" # Fields: Name, IP, Gateway, ...
foreach ($s in $servers) {
Invoke-Command -ComputerName $s.Name -ScriptBlock {
param($ip, $gw)
# 省略: Remove-NetIPAddress, New-NetIPAddress など実行
} -ArgumentList $s.IP, $s.Gateway
}
7-2. テンプレートファイルを使った柔軟な運用
- 複数ネットワークセグメントやVLANが混在する大規模サイトでは、JSON/YAMLなどで階層的に定義し、スクリプト側でパースして設定を切り替える工夫が役立つ。
- グループポリシー と組み合わせ、DNSサフィックスやプロキシ設定を自動適用するシナリオも多い。
8. トラブルシューティングとネットワーク監視の自動化
8-1. 接続テストと名前解決
Test-Connection -ComputerName "Server01" -Count 4
Resolve-DnsName -Name "server01.example.com"
- ICMP疎通が成功するか、DNSエントリが正しく登録されているかを検証。
- ファイアウォールがICMPをブロックしている場合、
Test-Connection
結果が失敗でも通信できるケースもあるため要注意。
8-2. イベントログ・ネットワークログの確認
- Systemログにネットワーク周りのエラーが記録される(例: イベントID 4199, 4200 など、NICリンクダウン時)。
- ネットワーク特化したログとして“Microsoft-Windows-NetworkProfile/Operational”や“Microsoft-Windows-WinRM/Operational”などがある。
- Netsh trace コマンドを使って詳細なネットワークトレースを取る手法もあるが、上級者向け。
8-3. 継続的監視の自動化
- タスクスケジューラで
Test-Connection
やResolve-DnsName
を実行し、障害検知時にメール通知を送るスクリプトを組む例などがある。
- 大規模環境ならZabbix, Nagios, SCOMなどの監視ツールとの連携が一般的だが、PowerShellでJSON出力→Webhook送信などカスタム連携も可能。
9. 章末まとめと次章へのつながり
9-1. 学習のまとめ
- NIC(ネットワークインターフェース) の確認やIPアドレス設定、DNSサーバー指定など、基本のTCP/IP構成をPowerShellコマンド(
Get-NetIPAddress
, New-NetIPAddress
, Set-DnsClientServerAddress
)で自動化する手順を学びました。
- DNSサーバーの導入(
Install-WindowsFeature DNS
)やゾーン管理(Add-DnsServerPrimaryZone
, Add-DnsServerResourceRecordA
)を通じて、オンプレミス環境でDNSを自前運用するシナリオを把握。
- ファイアウォールルールを
New-NetFirewallRule
で簡単に追加・管理できることを確認し、ネットワークプロファイル(Domain/Private/Public)の違いと切り替えも実例で紹介。
- スクリプトによる一括適用とトラブルシューティングのポイント(
Test-Connection
, Resolve-DnsName
, イベントログ)を示し、大規模運用や自動監視への応用イメージを具体化。
9-2. 次章へのつながり
- 次章(第8章)では、ストレージ管理とバックアップの自動化にフォーカスします。
- 本章で整えたネットワーク基盤を活かし、リモートからストレージ構成を一元管理したり、バックアップデータを遠隔地に送信するシナリオも出てきます。
- Windows Server 2022におけるディスクの初期化、パーティション、ボリューム管理やWindows Server Backupの自動化といった内容を学び、ネットワーク越しにも安全で効率的なデータ保護を実現できるようにしていきましょう。