Windows Server 2008: menentukan alamat IP default ketika NIC memiliki beberapa alamat

23

Saya memiliki Windows Server yang memiliki ~ 10 alamat IP yang terikat secara statis. Masalahnya adalah saya tidak tahu cara menentukan alamat IP default.

Kadang-kadang ketika saya menetapkan alamat baru ke NIC, alamat IP default berubah dengan IP terakhir yang dimasukkan dalam konfigurasi IP lanjutan pada NIC. Ini memiliki efek (karena saya menggunakan NAT) bahwa IP publik keluar juga berubah.

Meskipun masalah ini saat ini ada di Windows Server 2008.

Bagaimana Anda dapat mengatur alamat IP default pada NIC ketika memiliki beberapa alamat IP yang terikat?

Ada lebih banyak penjelasan tentang masalah saya.

alt teks http://www.nmediasolutions.com/_images/probleme/ip.png

Ini adalah output dari ipconfig:

DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
IPv4 Address. . . . . . . . . . . : 192.168.99.49(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.51(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.52(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.53(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.54(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.55(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.56(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.57(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.58(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.59(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.60(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.61(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.62(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.64(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.65(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.66(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.67(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.68(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.70(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.71(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.100(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.108(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.109(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.112(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
IPv4 Address. . . . . . . . . . . : 192.168.99.63(Duplicate)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.99.1

Jika saya lakukan pathpingada jawabannya, yang pertama adalah 99,49, juga jika alamat IP default saya adalah 99,100

Tracing route to www.l.google.com [72.14.204.99]
over a maximum of 30 hops:
  0  Machine [192.168.99.49]

Ada tabel routing pada mesin:

 Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0     192.168.99.1    192.168.99.49    261
           10.10.10.0    255.255.255.0         On-link       10.10.10.10    261
          10.10.10.10  255.255.255.255         On-link       10.10.10.10    261
         10.10.10.255  255.255.255.255         On-link       10.10.10.10    261
         192.168.99.0    255.255.255.0         On-link     192.168.99.49    261
        192.168.99.49  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.51  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.52  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.53  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.54  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.55  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.56  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.57  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.58  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.59  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.60  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.61  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.62  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.64  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.65  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.66  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.67  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.68  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.70  255.255.255.255         On-link     192.168.99.49    261
        192.168.99.71  255.255.255.255         On-link     192.168.99.49    261
       192.168.99.100  255.255.255.255         On-link     192.168.99.49    261
       192.168.99.108  255.255.255.255         On-link     192.168.99.49    261
       192.168.99.109  255.255.255.255         On-link     192.168.99.49    261
       192.168.99.112  255.255.255.255         On-link     192.168.99.49    261
       192.168.99.255  255.255.255.255         On-link     192.168.99.49    261
            224.0.0.0        240.0.0.0         On-link     192.168.99.49    261
            224.0.0.0        240.0.0.0         On-link       10.10.10.10    261
      255.255.255.255  255.255.255.255         On-link     192.168.99.49    261
      255.255.255.255  255.255.255.255         On-link       10.10.10.10    261

Saya pikir rute saya akan terlihat seperti:

Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0     192.168.99.1    **192.168.99.100**    261
           10.10.10.0    255.255.255.0         On-link       10.10.10.10    261
          10.10.10.10  255.255.255.255         On-link       10.10.10.10    261
         10.10.10.255  255.255.255.255         On-link       10.10.10.10    261
         192.168.99.0    255.255.255.0         On-link     192.168.99.100    261
        192.168.99.49  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.51  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.52  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.53  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.54  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.55  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.56  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.57  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.58  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.59  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.60  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.61  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.62  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.64  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.65  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.66  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.67  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.68  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.70  255.255.255.255         On-link     192.168.99.100    261
        192.168.99.71  255.255.255.255         On-link     192.168.99.100    261
       192.168.99.100  255.255.255.255         On-link     192.168.99.100    261
       192.168.99.108  255.255.255.255         On-link     192.168.99.100    261
       192.168.99.109  255.255.255.255         On-link     192.168.99.100    261
       192.168.99.112  255.255.255.255         On-link     192.168.99.100    261
       192.168.99.255  255.255.255.255         On-link     192.168.99.100    261
            224.0.0.0        240.0.0.0         On-link     192.168.99.100    261
            224.0.0.0        240.0.0.0         On-link       10.10.10.10    261
      255.255.255.255  255.255.255.255         On-link     192.168.99.100    261
      255.255.255.255  255.255.255.255         On-link       10.10.10.10    261

Bagaimana saya bisa memastikan alamat IP yang digunakan dalam gambar (seharusnya alamat IP default) akan digunakan oleh server saya sebagai alamat default?

Cédric Boivin
sumber

Jawaban:

11

Dengan Server 2008 Paket Layanan 2 (bukan R2), atau perbaikan terbaru Vista SP2 dan MS KB975808 ada solusi, meskipun agak canggung. Anda akan menghapus semua alamat yang TIDAK Anda inginkan sebagai sumber, kemudian menambahkan kembali masing-masing pada baris perintah menggunakan

Netsh int ipv4 add address <Interface Name> <ip address> skipassource=true

Perbaikan terbaru memungkinkan bendera "Lewati Sebagai Sumber".

Untuk menyelam lebih dalam tentang bagaimana versi Windows yang berbeda memilih IP sumber, lihat posting blog TechNet ini .

Paul
sumber
6

Tidak ada yang namanya "IP Default" untuk antarmuka jaringan; alih-alih tabel perutean sistem Anda menentukan antarmuka logis mana yang harus digunakan saat berkomunikasi dengan perangkat lain.

Kedengarannya seperti apa yang ingin Anda lakukan adalah mengkonfigurasi rute default. Ini akan menyebabkan semua percakapan yang dilakukan oleh mesin ini dilakukan dari IP tertentu.

Gunakan rute tambah untuk menambahkan gateway default

Brian Tillman
sumber
Bagaimana saya bisa mengubah tabel routing saya, sebenarnya adalah 99,49 saya perlu rute default menjadi 99,100
Cédric Boivin
Gateway default adalah rute default dan sebaliknya. Itu hanya masalah terminologi.
Kevin M
Saya tahu itu, tetapi tidak dapat mengubah rute default. Bagaimana saya bisa mengubahnya? Apa rumus perintah yang benar
Cédric Boivin
1
Anda dapat mencoba ini: "route add mask 0.0.0.0 0.0.0.0 192.168.99.100 metric 2"
Jeff Miles
Jika saya melakukan itu, tidak saya tidak bisa lagi di internet karena itu adalah gateway yang salah.
Cédric Boivin
2

Situasi Anda tidak begitu jelas, tetapi jika saya mengerti:
1) Mengapa Anda tidak menetapkan IP "kebutuhan-to-menjadi-standar" Anda yang terakhir?

2) Atau, mungkin Anda dapat mencoba ini (dengan asumsi bahwa alamat gateway adalah 192.168.99.1):

route delete 0.0.0.0
route -p add 192.168.99.1 mask 255.255.255.255 192.168.99.100
route -p add 0.0.0.0 mask 0.0.0.0 192.168.99.1 192.168.99.100

Untuk mendapatkan informasi lebih lanjut tentang sintaks perintah "rute", lihat di sini: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/route.mspx?mfr=true

Alexey Shatygin
sumber
Tidak berfungsi, perintahnya tidak baik. Kesalahan, tidak dapat menemukan file yang ditentukan
Cédric Boivin
coba tanpa "jika": route -p add 192.168.99.1 mask 255.255.255.255 192.168.99.100 tetapi itu akan berhasil, bisakah Anda mengutip erroe?
Alexey Shatygin
Kali ini, tidak ada pesan kesalahan, tetapi itu tidak mengubah apa
Cédric Boivin
Seharusnya mengubah tabel routing Anda. Bisakah Anda melakukan "cetak rute", perintah ini, dan "cetak rute" lagi dan letakkan hasilnya di sini?
Alexey Shatygin
Dan, sebelum melakukan perintah yang saya posting, buat "route delete 0.0.0.0"
Alexey Shatygin
1

Bisakah Anda tidak menggunakan metrik pada alamat IP? Dalam properti TCP / IP, hapus centang pada Metrik Otomatis dan tetapkan yang statis dengan nilai lebih rendah dari 261 (seperti yang ditunjukkan pada tangkapan layar Anda) ke alamat yang Anda inginkan untuk default Anda.

Jeff Miles
sumber
Saya akan coba itu, itu ide yang bagus.
Cédric Boivin
Jangan bekerja, lihat modifikasi saya di posting saya.
Cédric Boivin
apakah ada cara untuk mengubah alamat antarmuka?
Cédric Boivin
1

Perintah dalam bentuk:
> route add 0.0.0.0 mask 0.0.0.0 192.168.99.1 metric xxx jika yyy
akan mengubah alamat yang terlihat ketika mesin menuju ke alamat non-192.168.99.0 / 24 dan non-10.10.10.0 / 24 . Yaitu, ketika gateway default digunakan. Metrik (xxx) harus lebih tinggi dari apa pun untuk memastikan aturan digunakan. Antarmuka (yyy) harus merupakan antarmuka untuk digunakan. Tapi, saya rasa tidak ada cara untuk mengontrol alamat IP mana pada antarmuka itu untuk digunakan jika ada beberapa alamat IP.
> route add 192.168.99.0 mask 255.255.255.0 metrik xxx jika yyy
serupa tetapi untuk alamat 192.168.99.0/24 apa pun yang digunakan sistem. Faktanya adalah bahwa menetapkan beberapa alamat IP ke satu antarmuka dapat memiliki masalah seperti ini.

Beau Geste
sumber
1

Saya sudah bisa menduplikasi masalah Anda: sepertinya Windows menggunakan alamat IP yang ditetapkan terendah pada antarmuka jaringan yang diberikan sebagai yang "keluar", terlepas dari urutan sebenarnya di mana mereka ditugaskan.

Saya tidak dapat menemukan dokumentasi apa pun tentang perilaku ini, tetapi saya cukup yakin itu sesuai desain.


Edit

Saya pikir ini benar-benar tidak dapat dilakukan pada tingkat OS, tetapi dapat dilakukan dengan kode dalam aplikasi Anda: soket dapat secara eksplisit terikat ke pasangan alamat IP / port yang dipilih sebelum menghubungkannya ke titik akhir jarak jauh. Tetapi Anda harus menggunakan pustaka tingkat rendah daripada yang layanan web standar. IE Anda harus secara manual membuka soket, sambungkan dan gunakan untuk membaca / menulis data.

Contoh .NET / C #:

using System.Net;
using System.Net.Sockets;

IPAddress local_addr = IPAddress.Parse("192.168.99.100");
IPAddress remote_addr = IPAddress.Parse("1.2.3.4");

int local_port = 4242;
int remote_port = 80;

IPEndPoint local_ep = new IPEndPoint(local_addr,local_port);
IPEndPoint remote_ep = new IPEndPoint(remote_addr,remote_port);

Socket s = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

s.Bind(local_ep);

s.Connect(remote_ep);

// Now use the socket to talk to the remote host

Ini akan membuka koneksi ke 1.2.3.4:80 yang berasal dari 192.168.99.100:4242, sehingga host jarak jauh akan melihatnya datang dari alamat IP tersebut.

Dicoba dan diuji dengan menghubungkan ke IIS, itu mencatat permintaan yang datang dari alamat IP yang ditentukan.

Massimo
sumber
Saya membaca suatu tempat yang bisa menjadi pembanding biner dengan alamat ip?
Cédric Boivin
1
Ya, perbandingan biner sangat mungkin dengan cara "yang terendah" dipilih; Saya belum mencoba dengan IP milik subnet yang berbeda.
Massimo
Masalah terbesar saya saat ini, adalah saya mendapatkan lebih dari 300 situs web di beberapa alamat ip, dan ketika server saya pergi ke internet untuk memanggil server lain (layanan web), saya tidak dapat memastikan ip publik mana yang akan dimiliki server saya.
Cédric Boivin
Terima kasih atas jawaban ini tetapi dalam skenario saya tidak mungkin menerapkan solusi ini. Solusi harus berasal dari OS, atau mungkin firewall. Ini adalah cara yang baik untuk menyelesaikan masalah dengan aplikasi, tetapi kami pergi ke banyak aplikasi, untuk menyelesaikan masalah di setiap situs web.
Cédric Boivin
Tetapi bahkan jika Anda dapat melakukan apa yang Anda inginkan, Anda tidak dapat membuat situs web yang berbeda menggunakan IP yang berbeda; dengan cara ini, Anda bisa :-)
Massimo
1

Pilihan alamat sumber untuk panggilan keluar ditangani secara berbeda oleh tumpukan TCP / IP sejak perbaikan Vista. Di XP / 2003 dan sebelumnya, alamat sumber ditentukan oleh tabel rute ketika tidak secara eksplisit dinyatakan oleh aplikasi yang membuat panggilan keluar. Sejak Vista / 2008, alamat sumber dapat ditentukan oleh afinitas awalan ke tujuan atau alamat gateway hop berikutnya jika tujuan tidak lokal. Posting Blog Technet berikut menjelaskan perubahan perilaku dengan sangat baik.

http://blogs.technet.com/b/networking/archive/2009/04/24/source-ip-address-selection-on-a-multi-homed-windows-computer.aspx

Brian Mellinger
sumber
1

Saya memiliki Windows 2008 R2 SP1 x64 edisi Enterprise yang digunakan sebagai server Web dengan One NIC.

Saya mengalami masalah yang sama seperti dijelaskan di atas. Saya ingin koneksi Outbound ditangani oleh alamat IP default (yang masuk ke server) tetapi tetap memilih secara acak alamat IP mana dari 10 alamat IP saya untuk 10 situs web saya di server itu.

Mereka semua ditampilkan sebagai alamat IP yang lebih disukai jika Anda menjalankan perintah berikut.

Netsh int ipv4 show ipaddresses level=verbose

Saya mencoba mengunduh Hot Fix tetapi karena suatu alasan (dan saya gandakan, tiga kali dicentang) katanya "itu tidak dapat berjalan pada versi OS ini). Jika Anda ingin mencoba di sini, itu adalah .

Jika Anda menjalankan server MS DNS, Anda akan melihat bahwa nama server SAMA akan didaftarkan 11 kali (dalam kasus saya) 1 IP untuk server dan 10 IP untuk masing-masing situs web.

Apa yang saya yakini bisa menjadi WORKAROUND (saat ini, kecuali orang lain punya solusi yang lebih baik)

Untuk pergi ke server windows di bawah properti TCP di mana Anda memasukkan alamat IP untuk Server dan Situs Web, Anda akan melihat ada tab DNS. Sekarang HAPUSKAN MENDAFTARKAN ALAMAT KONEKSI dan REBOOT server (dan biarkan tidak dicentang).

Jika Anda memeriksa di server DNS, semua entri DNS dengan IP akan hilang.

Sekarang Masukkan MANUAL pada DNS nama Server dan alamat IP yang dipilih . Dan itu harus memperbaiki masalah.

Jika ada di antara Anda yang memiliki solusi yang lebih baik, silakan berbagi dengan kami.

Keluhan: Tidak yakin mengapa MS tidak memperbaiki masalah ini. Mereka seharusnya menciptakan opsi (seperti kotak centang) untuk server yang membawa beberapa alamat IP pada subnet yang sama agar Anda memilih alamat IP mana yang lebih disukai.

Neo
sumber
0

'Alamat default' adalah yang dimasukkan ke dalam kotak input pertama pada properti kartu antarmuka karena akan membalas secara default dengan yang ini, semua yang lain dianggap sekunder.

(Server ISA adalah contoh yang baik dari perilaku itu karena Anda tidak bisa mengatakannya untuk membalas dengan IP yang dihubungi dengan ...)

Alexandre Nizoux
sumber
Seharusnya seperti itu, tapi jangan berhasil. Dalam kasus saya ip 99.49 dalam konfigurasi lanjutan dan 99.100 adalah orang yang menentukan dalam properti ipv4 ....
Cédric Boivin
Ini sangat aneh karena infrastruktur kami di sini banyak menggunakan ini untuk filter server web dan semacamnya. Sudahkah Anda mencoba menghapus semua IP dari properti kartu kecuali yang Anda inginkan sebagai default, menerapkan, dan mengembalikannya setelah itu?
Alexandre Nizoux
Ya, saya mencobanya, dan masalah yang sama terjadi ketika saya memasukkan 99,49
Cédric Boivin
adalah 99,49 terendah IP Anda?
Alexandre Nizoux
Ya itu adalah Anda dapat melihat ipconfig saya di atas
Cédric Boivin
0

Saya menemukan solusinya:

  • pada nic utama Anda, hapus IP yang Anda inginkan sebagai default, hapus juga default gw, berikan metrik tinggi (contoh: 50)
  • tambahkan nic sekunder, berikan IP yang Anda inginkan sebagai 'default', atur GW default di sini dan pada tab lanjutan atur metrik terendah (contoh: 1)

Ini bekerja di 2008R2 / IIS7 saya dengan 20 alamat IP.

BR, Matija

pengguna39080
sumber
0

Saya menyelesaikannya dengan mengubah netmask ke 255.255.255.255untuk semua alamat tambahan dan hanya menyisakan alamat default tidak berubah.

Saya harap ini menyelesaikan untuk Anda!

Aldo
sumber