Windowsで単一NICに複数のIPアドレス(エイリアス)を割り当てる方法
Windowsでは、管理者が1枚のネットワークインターフェースカード(NIC)に複数のIPアドレスを設定する必要があるケースがあります。例えば、IISやApacheサーバー上で、それぞれ固有のIPアドレスとSSL証明書(Let's Encryptなど)を使用する複数のサイトを運用したい場合、サブネットのIPアドレッシング変更に備えたい場合、アプリケーションごとに異なるIPアドレスへバインドしたい場合などが挙げられます。
この記事では、Windows 10のネットワークインターフェースに追加の静的IPアドレスを設定する方法を解説します(同じ手順はWindows Serverでも利用可能です)。まず、イーサネットアダプターに現在1つのIPアドレスのみが割り当てられていることを確認しましょう。以下のコマンドを実行します。
ipconfig
実行結果を見ると、ローカルネットワーク接続(ここでは「Ethernet0」という名前)に対して、192.168.1.90という1つのIPアドレスが割り当てられていることがわかります。
2つ目の静的IPアドレスを追加するには、主に3つの方法があります。GUIから追加する方法、Netshコマンドを使う方法、そしてPowerShellを使う方法です。
GUIから追加のIPアドレスを設定する方法
WindowsのGUI操作だけで、2つ目のIPアドレスを追加できます。
- コントロールパネル → ネットワークとインターネット → ネットワークと共有センター → アダプターの設定の変更 を開きます(
ncpa.cplコマンドを実行しても同じ画面を開けます)。 - 対象のネットワークインターフェースのプロパティを開きます。
- プロトコルの一覧から「TCP/IPv4」を選択し、「プロパティ」をクリックします。
- 「詳細設定」ボタンを押し、「IPアドレス」セクションの「追加」をクリックします。
- 追加するIPアドレスとサブネットマスクを入力して「追加」を押します。
- 「OK」を何度かクリックして変更を保存します。
再度 ipconfig コマンドを実行し、そのインターフェースに2つ目のIPアドレスが表示されていることを確認してください。
さらに、同一ネットワーク上の他のコンピュータから ping コマンドで2つ目のIPアドレスに疎通確認を行い、応答があることもチェックしておきましょう。
SkipAsSourceフラグについて
GUIから追加したIPアドレスの主な欠点は、SkipAsSource フラグが有効化されない(SkipAsSource=False のままになる)点です。SkipAsSourceがTrueに設定されている場合、そのIPアドレスは特定のアプリケーションが明示的に指定しない限り、送信接続には使用されません。また、このフラグが有効な場合、動的DNS登録が有効になっていても、そのIPアドレスはDNSに登録されません。逆に言えば、SkipAsSourceパラメータを使えば、どのIPアドレスを「メイン」として使うかを制御できるということです。
Netshコマンドで2つ目のIPアドレスを割り当てる方法
コマンドプロンプトから Netsh ユーティリティを使って追加のIPアドレスを割り当てることもできます。このコマンドでは、IPアドレスに対してSkipAsSourceを同時に設定できるのが利点です。
コマンドプロンプトを管理者として開き、以下のコマンドを実行します。
Netsh int ipv4 add address name="Local Area Connection" 192.168.1.92 255.255.255.0 SkipAsSource=True
PowerShellでセカンダリIPアドレスを追加する方法
PowerShellの NetIPAddress 系コマンドレットを使用しても、ネットワークインターフェースに2つ目のIPエイリアスを追加できます(これらのコマンドレットはWindows Server 2012 / Windows 8以降で利用可能です)。
まず、利用可能なインターフェースの一覧を表示します。
Get-NetIPAddress | ft IPAddress, InterfaceAlias, SkipAsSource
IPAddress InterfaceAlias SkipAsSource
--------- -------------- ------------
172.23.53.241 vEthernet False
192.168.1.90 Ethernet0 False
127.0.0.1 Loopback Pseudo-Interface 1 False
Ethernet0のNICに追加のIPアドレスを設定するには、次のコマンドを実行します。
New-NetIPAddress –IPAddress 192.168.1.92 –PrefixLength 24 –InterfaceAlias "Ethernet0" –SkipAsSource $True
IPAddress : 192.168.1.92
InterfaceIndex : 11
InterfaceAlias : Ethernet0
AddressFamily : IPv4
Type : Unicast
PrefixLength : 24
PrefixOrigin : Manual
SuffixOrigin : Manual
AddressState : Tentative
ValidLifetime : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource : True
PolicyStore : ActiveStore
後からSkipAsSourceパラメータを変更して、このIPアドレスからの送信トラフィックを許可したい場合は、以下のコマンドを使用します。
Get-NetIPAddress 192.168.1.92 | Set-NetIPAddress -SkipAsSource $False
-
Djangoで単一のビューを使って複数のフォームを同時に処理する方法
Web開発をしていると、1つの関数やビューの中で複数のフォームを処理したい場面に出くわすことがあります。この記事では、2つのフォームを同じビュー内で同時に扱うための実装方法を解説します。この手法は多くの場面で役立ちますし、考え方を応用すれば3つ以上のフォームにも対応できます。 事前準備 まずDjangoプロジェクトとアプリを作成します。ここではプロジェクト名を「multipleFormHandle」、アプリ名を「formhandlingapp」としました。 続いて、settings.pyのINSTALLED_APPSにアプリを追加し、プロジェクトのurls.pyにアプリのURLを含めるなど、
-
ネットワークアダプタに複数のIPアドレスを割り当てる3つの方法【Windows】
IT管理者は、同じネットワークアダプタに対して複数のIPアドレスを設定しなければならない場面にしばしば遭遇します。例えば、1台のサーバーで複数のSSLサイトをホストする場合、複数のIPアドレスを持つことでゲートウェイを経由せずトラフィック交換を高速化したい場合、ファイアウォール対策やスパムフィルターのブラックリスト登録を避けるためにパブリックIPアドレスを使い分けたい場合などが挙げられます。 本記事では、Windowsのネットワークアダプタに複数のIPアドレスを割り当てる3つの方法をわかりやすく解説します。 複数のIPアドレスを割り当てる3つの方法 目的に応じて、以下のいずれかの方法を選択でき