Aggiungi un alias IP statico a un'interfaccia DHCP su Windows 8 (e versioni successive)


16

Ho una macchina Windows 8 che ha una sola porta Ethernet. Deve usare DHCP e ha anche bisogno di un IP statico. Ogni IP si trova in una sottorete diversa e ognuno ha uno scopo diverso e incompatibile.

Questa macchina deve utilizzare DHCP perché l'amministratore della rete del sito afferma che questo è l'unico modo supportato per ottenere un 192.168.x.yindirizzo. O il suo schema di rete non ha un blocco IP statico all'interno di quella sottorete o non ne assegnerà uno a questa macchina.

Non posso rischiare di usare staticamente un IP assegnato da DHCP, scommettendo che non verrà riassegnato dopo la scadenza del contratto di locazione. Ciò mi consentirebbe di sfruttare la capacità di Windows di assegnare più IP statici all'interfaccia, ma questo è un server di produzione, non qualcosa che posso rischiare di essere rimbalzato dalla rete ore o giorni dopo.

Mi rendo conto che alcuni server DHCP ti consentono di impostare assegnazioni statiche da MAC a IP, in modo che l'IP DHCP della mia macchina non venga mai riassegnato, ma poiché non conosco nessun server DHCP che emetterà due indirizzi IP diversi, ognuno in una sottorete diversa, non è aiuto qui. (E se esiste un server DHCP di questo tipo, probabilmente il mio client non lo utilizza e non cambierebbe su di esso se glielo chiedessi.)

Dal momento che non posso farlo interamente con DHCP, ho bisogno di un IP statico perché questa macchina funge anche da server per una 10.x.y.zsottorete. Gli amministratori della rete locale mi hanno fornito un IP statico in quello schema, ma è insufficiente perché devo anche parlare con il 192.168.x.ylato della rete.

Sono a conoscenza di una domanda simile qui . Lo chiedo di nuovo perché:

  1. L'altra domanda era posta quando Windows 7 era attuale. Forse Microsoft ha usato quegli oltre 2 anni per correggere questa debolezza nell'implementazione dello stack di rete di Windows 8?

    (Sì, debolezza : Linux consente un'interfaccia di rete con un DHCP e un IP statico. Non c'è nulla nel TCP / IP che impedisce a Microsoft di consentirlo. Devono solo scrivere il codice per consentirlo.)

  2. Sembra che la GUI di configurazione della rete in Windows 8 abbia le stesse limitazioni di Windows 7, ma forse c'è qualche hack di basso livello che ci permetterà di assegnare un alias IP statico all'interfaccia DHCP?

Risposte:


13

Infine, è possibile configurare DHCP e IP statici per coesistere su una scheda NIC. Questa funzione è disponibile in Windows 10 Creators Update (1703).

C'è una nuova proprietà chiamata dhcpstaticipcoexistencenel netsh interface ipv4 set interfacecomando, che può essere impostata su enablede questa interfaccia può essere configurata con più IP statici insieme a un IP configurato DHCP. Tuttavia, questo deve essere fatto con il netsh add addresscomando, non ancora possibile tramite la GUI.

Poca documentazione è stata pubblicata sull'aggiornamento netshe si discute poco sull'intera Internet (la ricerca di Google dhcpstaticipcoexistencefornisce solo 5 risultati al momento della risposta). Ma questa funzionalità è reale.


5
Questa risposta mi è stata molto utile in quanto ha funzionato durante i riavvii e sembrava una buona soluzione di prima parte. Includere esempi dei comandi da usare sarebbe stato bello. Questa risposta era così vicina a dare comandi di esempio, ma dovevo andare su Google per capire l'esatta sintassi. I miei comandi finali erano netsh interface ipv4 set interface interface="Ethernet" dhcpstaticipcoexistence=enablede netsh interface ipv4 add address "Ethernet" 192.168.1.200 255.255.255.0.
jljtgr,

13

Ecco i comandi esatti richiesti per il suggerimento di Cecil basato sulla nuova funzionalità dhcpstaticipcoexence di Windows 10 :

  1. Scopri il nome dell'interfaccia:

    netsh interface ipv4 show interface
    
  2. Abilita dhcpstaticipcoexence:

    netsh interface ipv4 set interface interface="interface name" dhcpstaticipcoexistence=enabled
    
  3. Aggiungi un indirizzo IP statico alla tua interfaccia

    netsh interface ipv4 add address "interface name" 192.168.x.xxx 255.255.255.0
    
  4. Utilizzare il comando 'ipconfig / all' per verificare che sia stato aggiunto l'indirizzo IP statico. Non puoi farlo dalla GUI.


6

Ho scritto un piccolo file batch. Puoi provare per vedere se funziona nella tua situazione. (qui funziona benissimo)

  • Riporta l'interfaccia su DHCP.
  • Successivamente estrarrà IP, Subnet Mask, Default Gateway e il primo server DNS. Questa è la parte difficile. Soprattutto se hai più interfacce. Se non funziona dobbiamo armeggiare un po 'qui per farlo funzionare.
  • Se vuoi anche il secondo DNS, dovrebbe essere aggiunto qui (ma non ho guardato così lontano perché un DNS dovrebbe andare bene per ora).
  • Imposta queste impostazioni "statiche" sull'interfaccia.
  • Successivamente puoi aggiungere l' 10.x.y.zindirizzo alla tua interfaccia senza problemi.

Ecco la sceneggiatura:

@echo off
set interface = "Ethernet 2"
impostare extra_ip = 10.0.0.33
set extra_mask = 255.255.248.0

echo Impostazione di% interfaccia% di nuovo su DHCP
netsh int ipv4 set address name =% interface% source = dhcp
netsh int ipv4 set dnsservers name =% interface% source = dhcp

echo In attesa che l'IP si stabilizzi ...
timeout / t 5

echo Ottenere l'IP corrente di% interface%
ipconfig>% temp% \ ipconfig.txt
per / f "token = 2 delims =:" %% a in ('digitare% temp% \ ipconfig.txt ^ | find "IPv4" ^ | find / v "127.0"') imposta _IP = %% a
imposta IP =% _ IP: ~ 1%
per / f "token = 2 delims =:" %% a in ('digitare% temp% \ ipconfig.txt ^ | find "Sottorete" ^ | find / v "127.0"') imposta _IP = %% a
imposta MASCHERA =% _ IP: ~ 1%
per / f "token = 2 delims =:" %% a in ('digitare% temp% \ ipconfig.txt ^ | find "Default" ^ | find / v "127.0" ^ | find / v "::"') imposta _IP = %% a
imposta GATE =% _ IP: ~ 1%
per / f "token = 2 delims =:" %% a in ('type% temp% \ ipconfig.txt ^ | find "Server DNS" ^ | find / v "127.0"') imposta _IP = %% a
imposta DNS1 =% _ IP: ~ 1%

echo Impostazione indirizzo IP, subnet mask e gateway predefinito ...
echo (IP% IP%, maschera% MASK%, gw% GATE%)
netsh int ipv4 set nome indirizzo =% interfaccia% statico% IP%% MASK%% GATE% gwmetric = 1

timeout / t 5
echo Impostazione DNS primario (% DNS1%) ...
netsh int ipv4 set dnsserver name =% interface% static% DNS1% primary

echo Aggiunta di IP secondario ...
netsh int ipv4 aggiungi indirizzo% interfaccia%% extra_ip%% extra_mask%

timeout / t 5
eco.
echo Nuova configurazione IP:
ipconfig / all

del% temp \ ipconfig.txt

È necessario eseguirlo solo una volta per un periodo del contratto di locazione (o dopo un riavvio). Quindi, se il contratto di locazione è di 10 giorni, è possibile impostarlo nella pianificazione delle attività per le 3:00 di domenica e dopo ogni riavvio. Se il computer è sempre spento di notte, sarebbe necessario solo dopo il riavvio.


3

Una soluzione alternativa potrebbe essere quella di eseguire una macchina virtuale sullo stesso computer e aggiungere un IP statico a quella macchina virtuale. Ciò fornirà essenzialmente un adattatore virtuale sull'host ma per la rete 10.xvz.

La configurazione della rete personalizzata simile a quella richiesta è ben documentata qui .


L'idea di VM è la caccia alle farfalle con una mazza. L'aggiunta di un sistema VM e la concessione di licenze per l'uso di Windows per VM sarebbe complicata e probabilmente più costosa della semplice aggiunta di una seconda scheda NIC alla macchina. Ho solo bisogno 10.x.y.zdell'indirizzo per servire un singolo programma.
Warren Young,

Ecco perché prefaccio la risposta con "una soluzione potrebbe essere ..."; l'aggiunta di una macchina virtuale funzionerebbe sicuramente. Il multihoming è ovvio; ma poi di nuovo, la tua idea cambierebbe radicalmente la domanda originale. buona fortuna
Fergus,

1

Che ne dici di programmare uno script per aggiungere l'indirizzo IP dopo l'avvio:

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

Ottima idea, ma sono fiducioso che forzare l'adattatore dal DHCP.
Fergus,

L'ho provato e @Fergus ha ragione: dire netsh interface ipv4 show addressdopo che fornisce solo l'IP statico. L'IP DHCP è sparito.
Warren Young,

Ooops, sì, ora ricordo. L'opzione sarebbe quella di ottenere l'IP corrente, quindi aggiungere entrambi indietro. È molto improbabile che un lease DHCP non venga rinnovato durante l'uso attivo (è necessario un periodo di tolleranza per evitarlo), quindi è importante solo al momento dell'avvio.
Paul,

@Paul: se aggiungo nuovamente l'indirizzo DHCP con netsh, questo non lo rende un IP statico, quindi lo stack del box di Windows non continuerà a inviare rinnovi di lease DHCP al server DHCP? Quando il tempo di leasing iniziale è scaduto, il server DHCP sarebbe quindi libero di riassegnare tale indirizzo.
Warren Young,

@WarrenYoung Quanto dura il contratto di locazione? ( ipconfig /all. per me sono 10 giorni dal mio router). Quindi, se il computer viene riavviato prima della scadenza del contratto di locazione, non dovrebbe essere un problema. Altrimenti potresti aggiungere una ipconfig /releasee ipconfig /renewsopra queste righe e programmarne l'esecuzione alle 3 del mattino (quando nessuno è dietro il computer).
Rik,

0

Ho usato Win IP Config versione 2.7.2 dal 2007 in esecuzione su Windows 10. Imposta la tua scheda di rete su DHCP, Esegui Win IP Config come amministrazione (icona clic destro invece di doppio clic per l'opzione). Quindi fare clic su IP + e digitare l'indirizzo IP statico desiderato. Ora ho un DHCP e due indirizzi statici. Ora posso fare lo sviluppo del mio sistema integrato e accedere a Internet contemporaneamente con una scheda di rete!


Sembra ... così ... ombroso ....
paquetp,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.