Windows 8以降のDHCPインターフェースに静的IPエイリアスを追加する


16

イーサネットポートが1つしかないWindows 8マシンを使用しています。これは、DHCPを使用する必要があるも静的IPを必要とします。各IPは異なるサブネット内にあり、それぞれが異なる互換性のない目的で機能します。

サイトネットワーク管理者はこれが192.168.x.yアドレスを取得するためにサポートされている唯一の方法であるため、このマシンはDHCPを使用する必要があります。彼のネットワークスキームでは、そのサブネット内に静的IPブロックがないか、またはそのいずれかをこのマシンに割り当てません。

DHCPが割り当てられたIPを静的に使用するリスクはありません。リースの有効期限が切れた後は再割り当てされないので。これにより、Windowsの機能を使用して複数の静的IPをインターフェイスに割り当てることができますが、これは運用サーバーであり、数時間または数日後にネットワークから跳ね返るリスクはありません。

一部のDHCPサーバーでは静的MACからIPへの割り当てを設定できるため、マシンのDHCP IPが再割り当てされることはありませんが、それぞれ異なるサブネットにある2つの異なるIPアドレスを発行するDHCPサーバーがないことを知っているので、ここで助けます。(そして、そのようなDHCPサーバーが存在する場合、私のクライアントはおそらくそれを使用せず、私が尋ねたとしても、それに切り替わらないでしょう。)

DHCPでこれを完全に行うことはできないため、このマシンは10.x.y.zサブネットのサーバーとしても機能するため、静的IPが必要です。ローカルネットワークの管理者、そのスキームで静的IPを提供してくれました192.168.x.yが、ネットワークの側とも対話する必要があるため、これでは不十分です。

私はここで同様の質問を知っています。私はもう一度尋ねています:

  1. その別の質問は、Windows 7が最新のときに提起されました。おそらく、Microsoftはこの2年以上を使って、Windows 8ネットワークスタック実装のこの弱点を修正しましたか?

    (はい、弱点:LinuxはDHCPと静的IPの両方を備えたネットワークインターフェイスを許可します。TCP/ IPについては、Microsoftがこれを許可するのを妨げるものは何もありません。許可するためのコードを記述する必要があります。)

  2. Windows 8のネットワーク構成GUIにはWindows 7と同じ制限があるようですが、おそらくDHCPインターフェースに静的IPエイリアスを割り当てることができる低レベルのハッキングがあるのでしょうか?

回答:


13

最後に、DHCPと静的IPを1つのNICで共存するように構成できます。この機能は、Windows 10 Creators Update(1703)に搭載されています。

呼ばれる新しいプロパティがあるdhcpstaticipcoexistencenetsh interface ipv4 set interfaceに設定することができ、コマンド、enabledおよびこのインターフェイスはDHCP構成のIPと一緒に複数の静的IPアドレスを用いて構成することができますが。ただし、これはnetsh add addressコマンドを使用して行う必要がありますが、GUIを介してはまだできません。

への更新に関するドキュメントはほとんど公開されてnetshおらず、インターネット全体でほとんど議論されていません(この回答の時点でGoogle検索でdhcpstaticipcoexistence得られる結果は5つだけです)。しかし、この機能は本物です。


5
この回答は、再起動しても機能し、優れたファーストパーティソリューションのように思えたので、私にとって非常に役に立ちました。使用するコマンドの例を含めると便利です。この答えはコマンド例を与えるのに非常に近かったが、正確な構文を理解するためにGoogleに行かなければならなかった。私の最後のコマンドであったnetsh interface ipv4 set interface interface="Ethernet" dhcpstaticipcoexistence=enablednetsh interface ipv4 add address "Ethernet" 192.168.1.200 255.255.255.0
jljtgr

13

Windows 10の新しいdhcpstaticipcoexistence機能に基づくセシルの提案に必要な正確なコマンドは次のとおりです。

  1. インターフェイス名を確認します。

    netsh interface ipv4 show interface
    
  2. dhcpstaticipcoexistenceを有効にします。

    netsh interface ipv4 set interface interface="interface name" dhcpstaticipcoexistence=enabled
    
  3. 静的IPアドレスをインターフェースに追加する

    netsh interface ipv4 add address "interface name" 192.168.x.xxx 255.255.255.0
    
  4. コマンド「ipconfig / all」を使用して、静的IPアドレスが追加されていることを確認します。GUIからは実行できません。


6

小さなバッチファイルを書きました。あなたはそれがあなたの状況で機能するかどうかを確認するためにテストすることができます。(ここではうまくいきます)

  • インターフェースがDHCPに戻ります。
  • その後、IP、サブネットマスク、デフォルトゲートウェイ、および最初のDNSサーバーを抽出します。これは難しいビットです。特に複数のインターフェースがある場合。それが機能しない場合は、機能させるために、ここを少しいじる必要があります。
  • 2番目のDNSも必要な場合は、ここに追加する必要があります(ただし、今のところ1つのDNSで問題ないため、ここまでは見ていません)。
  • これらの設定は、インターフェースで「静的」に設定されます。
  • その後10.x.y.z、問題なくインターフェイスにアドレスを追加できます。

スクリプトは次のとおりです。

@エコーオフ
set interface = "Ethernet 2"
extra_ip = 10.0.0.33を設定
extra_mask = 255.255.248.0に設定します

エコー%interface%をDHCPに戻す設定
netsh int ipv4 set address name =%interface%source = dhcp
netsh int ipv4 set dnsservers name =%interface%source = dhcp

echo IPが安定するのを待っています...
タイムアウト/ t 5

echo%interface%の現在のIPを取得
ipconfig>%temp%\ ipconfig.txt
/ f "tokens = 2 delims =:" %% a in( 'type%temp%\ ipconfig.txt ^ | find "IPv4" ^ | find / v "127.0"')do set _IP = %% a
IP =%_ IP:〜1%に設定
/ f "tokens = 2 delims =:" %% a for( 'type%temp%\ ipconfig.txt ^ | find "Subnet" ^ | find / v "127.0"')do set _IP = %% a
MASK =%_ IP:〜1%に設定
/ f "tokens = 2 delims =:" %% a in( 'type%temp%\ ipconfig.txt ^ | find "Default" ^ | find / v "127.0" ^ | find / v "::"') _IP = %% aを設定します
GATE =%_ IP:〜1%に設定
/ f "tokens = 2 delims =:" %% a for( 'type%temp%\ ipconfig.txt ^ | find "DNS Servers" ^ | find / v "127.0"')do set _IP = %% a
DNS1 =%_ IP:〜1%に設定

echo IPアドレス、サブネットマスク、デフォルトゲートウェイの設定...
エコー(IP%IP%、マスク%MASK%、gw%GATE%)
netsh int ipv4 set address name =%interface%static%IP%%MASK%%GATE%gwmetric = 1

タイムアウト/ t 5
echoプライマリDNS(%DNS1%)を設定しています...
netsh int ipv4 set dnsserver name =%interface%static%DNS1%primary

echoセカンダリIPを追加しています...
netsh int ipv4 add address%interface%%extra_ip%%extra_mask%

タイムアウト/ t 5
エコー。
エコー新しいIP構成:
ipconfig / all

del%temp \ ipconfig.txt

これは、リース期間中に1回だけ(または再起動後に)実行する必要があります。したがって、リースが10日間の場合、これをタスクスケジューラで日曜日の午前3時および再起動ごとに設定できます。コンピュータが夜間常にオフの場合、再起動後にのみ必要になります。


3

1つの回避策は、同じマシンでVMを実行し、そのVMに静的IPを追加することです。これは基本的に、ホスト上で10.xvzネットワーク用の仮想アダプターを提供します。

あなたが要求しているものに似たカスタムネットワーキングの設定はここで十分に文書化されています


VMのアイデアは、大ハンマーで蝶を狩るというものです。VMシステムを追加し、VMを使用するためにWindowsにライセンスを付与することは、マシンに2番目のNICを追加するよりも複雑でおそらく費用がかかります。1 10.x.y.zつのプログラムを提供するために必要なアドレスのみです。
ウォーレンヤング

そのため、私は答えの前に「1つの回避策はあるかもしれない」と述べています。VMの追加は確実に機能します。マルチホーミングは明らかです。しかし、あなたのアイデアは元の質問を根本的に変えるでしょう。幸運
ファーガス

1

起動後にIPアドレスを追加するスクリプトをスケジュールするのはどうですか。

netsh interface ipv4 add address “Local Area Connection” 10.x.y.z 255.255.255.0

素晴らしいアイデアですが、アダプターをDHCPから強制的に外すと確信しています。
ファーガス

私はそれをテストしましたが、@ Fergusは正しいですnetsh interface ipv4 show address。DHCP IPはなくなっています。
ウォーレンヤング

おっと、ええ、今は覚えています。オプションは、現在のIPを取得してから、両方を追加し直すことです。DHCPリースがアクティブに使用されている間は更新されない可能性は非常に低いため(これを回避するための猶予期間があるため)、ブート時にのみ問題になります。
ポール、

@Paul:DHCPアドレスを単にで追加した場合netsh、それは静的IPにならないので、WindowsボックスのスタックはDHCPサーバーにDHCPリース更新を送信し続けませんか?最初のリース期間が終了すると、DHCPサーバーはそのアドレスを自由に再割り当てできます。
ウォーレンヤング

@WarrenYoungリース期間はどれくらいですか?(ipconfig /all。私の場合、ルーターから10日です)。したがって、リース期間が終了する前にコンピュータが再起動されても、問題にはなりません。それ以外の場合は、これらの行の上にを追加してipconfig /releaseipconfig /renew午前3時に実行するようにスケジュールすることができます(コンピューターの背後に誰もいない場合)。
Rik

0

Windows 10で実行されている2007のWin IP Configバージョン2.7.2を使用しました。NICをDHCPに設定し、管理としてWin IP Configを実行します(オプションをダブルクリックする代わりにアイコンを右クリックします)。次に、[IP +]をクリックして、必要な静的IPアドレスを入力します。これで、1つのDHCPと2つの静的アドレスができました。これで、1つのNICで組み込みシステムの開発とインターネットへのアクセスを同時に行うことができます。


これは...そう...陰影......
paquetp
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.