web-dev-qa-db-ja.com

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

イーサネットポートが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エイリアスを割り当てることができる低レベルのハックがあると思いますか?

16
Warren Young

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

netsh interface ipv4set interfaceコマンドにdhcpstaticipcoexistenceという新しいプロパティがあり、enabledに設定できます。このインターフェイスは、複数の静的IPとDHCP構成のIP。ただし、これはnetshadd addressコマンドを使用して行う必要があり、まだGUIからは実行できません。

netshの更新に関するドキュメントはほとんど公開されておらず、インターネット全体での議論もほとんどありません(Google検索dhcpstaticipcoexistence5の結果のみを提供します)この答え)。しかし、この機能は本物です。

12
Cecil

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

  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からは実行できません。

12
Michael Zhang

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

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

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

 @ echo off 
 set interface = "Ethernet 2" 
 set extra_ip = 10.0.0.33 
 set extra_mask = 255.255.248.0 
 
 echo設定%interface%をDHCPに戻す
 netsh int ipv4 set address name =%interface%source = dhcp 
 netsh int ipv4 set dnsservers name =%interface%source = dhcp 
 
 echo IPが安定するのを待っています... 
 timeout/t 5 
 
 echo Getting%IP of%interface%
 ipconfig>% temp%\ ipconfig.txt 
 for/f "tokens = 2 delims =:" %% a in( 'type%temp%\ ipconfig.txt ^ | find "IPv4" ^ | find/v "127.0" ')set _IP = %% a 
 set IP =%_ IP:〜1%
 for/f "tokens = 2 delims =:" %% a in(' type%temp%\ ipconfig.txt ^ | find "Subnet" ^ | find/v "127.0" ')do set _IP = %% a 
 set MASK =%_ IP:〜1%
 for/f "tokens = 2 delims =: "%% a in( 'type%temp%\ ipconfig.txt ^ | find" Default "^ | find/v" 127.0 "^ | find/v" :: "')do set _IP =% %a 
 set GATE =%_ IP:〜1%
 for/f "tokens = 2 delims =:" %% a in( 'type%temp%\ ipconfig.txt ^ | find " DNSサービスers "^ | find/v "127.0" ')do set _IP = %% a 
 set DNS1 =%_ IP:〜1%
 
 echo設定IPアドレス、サブネットマスク、デフォルトゲートウェイ。 .. 
 echo(IP%IP%、mask%MASK%、gw%GATE%)
 netsh int ipv4 set address name =%interface%static%IP%%MASK%%GATE%gwmetric = 1 
 
 timeout/t 5 
 echo Setting Primary DNS(%DNS1%)... 
 netsh int ipv4 set dnsserver name =%interface%static% DNS1%primary 
 
 echoセカンダリIPを追加しています... 
 netsh int ipv4 add address%interface%%extra_ip%%extra_mask%
 
 timeout/t 5 
 echo。
 echo新しいIP構成:
 ipconfig /all

del%temp\ipconfig.txt 

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

6
Rik

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

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

3
Fergus

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

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

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

0
Brandon