Dodaj statyczny alias IP do interfejsu DHCP w systemie Windows 8 (i nowszych)

16

Mam komputer z systemem Windows 8, który ma tylko jeden port Ethernet. Musi korzystać z DHCP, a także potrzebuje statycznego adresu IP. Każdy adres IP znajduje się w innej podsieci i każdy służy do innego, niezgodnego celu.

To urządzenie musi korzystać z DHCP, ponieważ administrator sieci lokacji twierdzi, że jest to jedyny obsługiwany sposób uzyskania 192.168.x.yadresu. Albo jego schemat sieci nie ma statycznego bloku IP w tej podsieci, albo nie przypisze żadnego z nich do tego komputera.

Nie mogę ryzykować statycznym użyciem adresu IP przypisanego do DHCP, zakładając się, że nie zostanie on ponownie przypisany po wygaśnięciu dzierżawy. To pozwoliłoby mi użyć zdolności systemu Windows do przypisania wielu statycznych adresów IP do interfejsu, ale jest to serwer produkcyjny, a nie jest to coś, co mogłoby zaryzykować odesłanie z sieci kilka godzin lub dni później.

Zdaję sobie sprawę, że niektóre serwery DHCP pozwalają skonfigurować statyczne przypisania adresów MAC do IP, dzięki czemu adres IP DHCP mojego komputera nigdy nie jest ponownie przypisywany, ale ponieważ nie znam żadnego serwera DHCP, który wydałby dwa różne adresy IP, każdy w innej podsieci, to nie jest pomóż tutaj. (A jeśli istnieje taki serwer DHCP, mój klient prawdopodobnie go nie używa i nie przestawiłby się na niego, gdybym zapytał.)

Ponieważ nie mogę tego zrobić całkowicie za pomocą DHCP, potrzebuję statycznego adresu IP, ponieważ ta maszyna działa również jako serwer 10.x.y.zpodsieci. Lokalni administratorzy sieci nie dał mi statycznego IP tego systemu, ale jest to niewystarczające, ponieważ ja też trzeba rozmawiać z 192.168.x.yboku sieci.

Mam tutaj podobne pytanie . Pytam ponownie, ponieważ:

  1. To inne pytanie zostało postawione, gdy Windows 7 był aktualny. Być może Microsoft wykorzystał ponad 2 lata, aby naprawić tę słabość we wdrażaniu stosu sieciowego systemu Windows 8?

    (Tak, słabość : Linux zezwala na interfejs sieciowy z DHCP i statycznym adresem IP. W TCP / IP nic nie stoi na przeszkodzie, aby Microsoft na to pozwolił. Wystarczy napisać kod, aby na to pozwolić.)

  2. Wygląda na to, że GUI konfiguracji sieci w Windows 8 ma takie same ograniczenia jak Windows 7, ale może jest jakiś hack niskiego poziomu, który pozwoli nam przypisać statyczny alias IP do interfejsu DHCP?

Warren Young
źródło

Odpowiedzi:

14

Wreszcie DHCP i statyczne adresy IP można skonfigurować tak, aby współistniały na jednej karcie sieciowej. Ta funkcja pojawiła się w Windows 10 Creators Update (1703).

Jest to nowy obiekt o nazwie dhcpstaticipcoexistencew netsh interface ipv4 set interfacepoleceniu, które można ustawić enabledi ten interfejs może być skonfigurowany z wieloma adresami IP statyczne wraz z DHCP skonfigurowanym IP. Jednak należy to zrobić za pomocą netsh add addresspolecenia, które nie jest jeszcze możliwe za pośrednictwem GUI.

Opublikowano niewiele dokumentacji na temat aktualizacji netshi jest niewiele dyskusji na ten temat w całym Internecie (wyszukiwarka Google dhcpstaticipcoexistencedaje tylko 5 wyników w chwili tej odpowiedzi). Ale ta funkcja jest prawdziwa.

Cecil
źródło
5
Ta odpowiedź była dla mnie bardzo przydatna, ponieważ działała przy ponownym uruchomieniu komputera i wydawała się być dobrym rozwiązaniem własnej firmy. Dołączenie przykładów poleceń do użycia byłoby fajne. Ta odpowiedź była tak bliska podania przykładowych poleceń, ale musiałem udać się do Google, aby ustalić dokładną składnię. Moje ostatnie polecenia to netsh interface ipv4 set interface interface="Ethernet" dhcpstaticipcoexistence=enabledi netsh interface ipv4 add address "Ethernet" 192.168.1.200 255.255.255.0.
jljtgr
13

Oto dokładne polecenia wymagane dla sugestii Cecila opartej na nowej funkcji dhcpstaticipcoexistence systemu Windows 10 :

  1. Znajdź nazwę interfejsu:

    netsh interface ipv4 show interface
    
  2. Włącz dhcpstaticipcoistist:

    netsh interface ipv4 set interface interface="interface name" dhcpstaticipcoexistence=enabled
    
  3. Dodaj statyczny adres IP do interfejsu

    netsh interface ipv4 add address "interface name" 192.168.x.xxx 255.255.255.0
    
  4. Użyj polecenia „ipconfig / all”, aby sprawdzić, czy dodano statyczny adres IP. Nie możesz tego zrobić z GUI.

Michael Zhang
źródło
6

Napisałem mały plik wsadowy. Możesz przetestować, czy działa w twojej sytuacji. (tutaj działa dobrze)

  • Spowoduje to przywrócenie interfejsu do DHCP.
  • Następnie wyodrębni adres IP, maskę podsieci, domyślną bramę i pierwszy serwer DNS. To trudny kawałek. Zwłaszcza jeśli masz wiele interfejsów. Jeśli to nie zadziała, musimy trochę tutaj pogrzebać, żeby to zadziałało.
  • Jeśli chcesz też drugiego DNS, należy go tutaj dodać (ale nie spojrzałem tak daleko, ponieważ jeden DNS powinien być na razie w porządku).
  • Ustawi te ustawienia na „statyczne” w interfejsie.
  • Następnie możesz 10.x.y.zbez problemu dodać adres do interfejsu.

Oto skrypt:

@echo wyłączone
ustaw interfejs = „Ethernet 2”
ustaw extra_ip = 10.0.0.33
ustaw extra_mask = 255.255.248.0

echo Ustawienie% interface% z powrotem do DHCP
netsh int ipv4 ustaw nazwę adresu =% interface% source = dhcp
netsh int ipv4 ustaw nazwę dnsservers =% interface% source = dhcp

echo Oczekiwanie na ustabilizowanie się adresu IP ...
limit czasu / t 5

echo Uzyskiwanie bieżącego adresu IP% interfejsu%
ipconfig>% temp% \ ipconfig.txt
dla / f "tokenów = 2 delims =:" %% a in ('wpisz% temp% \ ipconfig.txt ^ | find "IPv4" ^ | find / v "127.0"') ustaw wartość _IP = %% a
ustaw IP =% _ IP: ~ 1%
dla / f "tokenów = 2 delims =:" %% a in ('wpisz% temp% \ ipconfig.txt ^ | find "Subnet" ^ | find / v "127.0"') ustaw wartość _IP = %% a
ustaw MASK =% _ IP: ~ 1%
dla / f "tokenów = 2 delims =:" %% a in ('wpisz% temp% \ ipconfig.txt ^ | find "Default" ^ | find / v "127.0" ^ | find / v "::"') ustaw _IP = %% a
ustaw GATE =% _ IP: ~ 1%
dla / f "tokenów = 2 delims =:" %% a in ('wpisz% temp% \ ipconfig.txt ^ | find "DNS Servers" ^ | find / v "127.0"') ustaw wartość _IP = %% a
ustaw DNS1 =% _ IP: ~ 1%

echo Ustawianie adresu IP, maski podsieci i domyślnej bramy ...
echo (IP% IP%, maska% MASK%, gw% GATE%)
netsh int ipv4 ustaw nazwę adresu =% interfejs% statyczny% IP%% MASK%% GATE% gwmetric = 1

limit czasu / t 5
echo Ustawienie podstawowego DNS (% DNS1%) ...
netsh int ipv4 ustaw nazwę dnsserver =% interface% static% DNS1% podstawowy

echo Dodawanie dodatkowego adresu IP ...
netsh int ipv4 dodaj adres% interfejs%% extra_ip%% extra_mask%

limit czasu / t 5
Echo.
echo Nowa konfiguracja IP:
ipconfig / all

del% temp \ ipconfig.txt

Musisz uruchomić to tylko raz na okres leasingu (lub po ponownym uruchomieniu). Jeśli więc Twoja dzierżawa obejmuje 10 dni, możesz ustawić to w harmonogramie zadań na 3 rano w niedzielę i po każdym ponownym uruchomieniu. Jeśli komputer jest zawsze wyłączony w nocy, będzie potrzebny tylko po ponownym uruchomieniu.

Rik
źródło
3

Jednym z obejść może być uruchomienie maszyny wirtualnej na tym samym komputerze i dodanie statycznego adresu IP do tej maszyny wirtualnej. Zapewni to zasadniczo wirtualny adapter na hoście, ale dla sieci 10.xvz.

Niestandardowa konfiguracja sieciowa podobna do tej, o którą prosisz, jest dobrze udokumentowana tutaj .

Fergus
źródło
Ideą VM jest polowanie na motyle młotem. Dodanie systemu VM i licencjonowanie systemu Windows do korzystania z VM byłoby skomplikowane i prawdopodobnie droższe niż zwykłe dodanie drugiej karty sieciowej do komputera. Potrzebuję tylko 10.x.y.zadresu do obsługi jednego programu.
Warren Young,
Dlatego poprzedzam odpowiedź „jednym obejściem może być…”; dodanie maszyny wirtualnej na pewno zadziała. Multihoming jest oczywisty; ale z drugiej strony twój pomysł zasadniczo zmieni pierwotne pytanie. powodzenia
Fergus,
1

Co powiesz na zaplanowanie skryptu, aby dodać adres IP po uruchomieniu:

netsh interface ipv4 add address “Local Area Connection” 10.x.y.z 255.255.255.0
Paweł
źródło
Świetny pomysł, ale jestem pewien, że zmusi adapter do wyjścia z DHCP.
Fergus,
Przetestowałem to i @Fergus ma rację: powiedzenie netsh interface ipv4 show addresspo tym daje tylko statyczny adres IP. Adres IP DHCP zniknął.
Warren Young,
Ups, tak, teraz pamiętam. Opcją byłoby uzyskanie bieżącego adresu IP, a następnie dodanie obu z powrotem. Jest bardzo mało prawdopodobne, aby dzierżawa DHCP nie była odnawiana podczas aktywnego użytkowania (istnieje okres karencji, aby tego uniknąć), więc ma to znaczenie tylko podczas rozruchu.
Paul,
@Paul: Jeśli dodam z powrotem adres DHCP netsh, czy nie oznacza to, że jest to statyczny adres IP, więc stos skrzynki systemu Windows nie będzie wysyłał przedłużeń dzierżawy DHCP na serwer DHCP? Gdy upłynie początkowy czas dzierżawy, serwer DHCP będzie mógł ponownie przypisać ten adres.
Warren Young,
@WarrenYoung Jak długo trwa umowa najmu? ( ipconfig /all. dla mnie to 10 dni z mojego routera). Więc jeśli komputer zostanie zrestartowany przed zakończeniem dzierżawy, nie powinno to stanowić problemu. W przeciwnym razie możesz dodać a ipconfig /releasei ipconfig /renewpowyżej tych linii i zaplanować, aby działał o 3 nad ranem (kiedy nikt nie stoi za komputerem).
Rik
0

Korzystałem z Win IP Config w wersji 2.7.2 z 2007 roku, działającego w systemie Windows 10. Ustaw NIC na DHCP, uruchom Win IP Config jako administrację (ikona Kliknij prawym przyciskiem myszy zamiast opcji podwójnego kliknięcia). Następnie kliknij IP + i wpisz żądany statyczny adres ipad. Mam teraz jeden DHCP i dwa adresy statyczne. Teraz mogę opracować system wbudowany i jednocześnie uzyskać dostęp do Internetu za pomocą jednej karty sieciowej!

Brandon
źródło
To wygląda ... więc ... shaddy ....
paquetp