Windows Server 2008: визначення IP-адреси за замовчуванням, коли NIC має декілька адрес


23

У мене є сервер Windows, який має ~ 10 IP-адрес статично пов'язаних. Проблема в тому, що я не знаю, як вказати IP-адресу за замовчуванням.

Іноді, коли я присвоюю нову адресу NIC, IP-адреса за замовчуванням змінюється з останнім IP-адресою, введеною в розширену конфігурацію IP в NIC. Це призводить до того, що (оскільки я використовую NAT), зміни IP-адреси, що виходить, також змінюються.

Незважаючи на те, що ця проблема наразі є на Windows Server 2008.

Як можна встановити IP-адресу за замовчуванням на NIC, коли у неї пов'язано кілька IP-адрес?

Є більше пояснень щодо моєї проблеми.

alt текст http://www.nmediasolutions.com/_images/probleme/ip.png

Ось результат 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

Якщо у мене pathpingє відповідь, перше - це 99.49, також якщо моя IP-адреса за замовчуванням 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]

На машині є таблиця маршрутизації:

 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

Я думаю, що мій маршрут повинен виглядати так:

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

Як я можу бути впевненим, що IP-адреса, яка використовується у зображенні (повинна бути стандартною IP-адресою), буде використовуватися моїм сервером як адреса за замовчуванням?

Відповіді:


11

З сервісним пакетом оновлень 2 (не R2) або Vista SP2 та виправленнями MS KB975808 є рішення, хоча і трохи незграбне. Ви видалили б усі адреси, які НЕ хочете як джерело, а потім повторно додасте їх у командному рядку, використовуючи

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

Виправлення дозволяє прапор "Пропустити як джерело".

Детальніше про те, як різні версії Windows вибирають вихідні IP-адреси, перегляньте цю публікацію в блозі TechNet .


6

Не існує такого поняття, як "IP за замовчуванням" для мережевого інтерфейсу; швидше ваша система маршрутизації в таблиці визначає, який логічний інтерфейс слід використовувати під час спілкування з іншими пристроями.

Здається, що ви хочете зробити, це налаштувати маршрут за замовчуванням. Це призведе до того, що всі розмови, ініційовані цією машиною, здійснюються з певної IP-адреси.

Використовуйте маршрут add, щоб додати шлюз за замовчуванням


Як я можу змінити свою таблицю маршрутизації, насправді це 99,49, мені потрібен маршрут за замовчуванням
Седрик

Шлюз за замовчуванням - це маршрут за замовчуванням і навпаки. Це лише питання термінології.
Кевін М

Я це знаю, але не можу змінити маршрут за замовчуванням. Як я можу це змінити? Які правильні командні формули
Седрик Бойвін

1
Ви можете спробувати це: "маршрут додайте 0,0.0,0 маску 0,0,0,0 192,168,99,100 метрику 2"
Джефф Майлз

Якщо я це роблю, ні, я більше не можу переходити в Інтернет, оскільки це неправильний шлюз.
Седрік Боївін

2

Ваша ситуація не зовсім зрозуміла, але якщо я зрозумію, як правильно:
1) Чому ви просто не встановите останню IP-адресу "Потрібно бути за замовчуванням"?

2) Або, можливо, ви можете спробувати це (якщо припустити, що адреса шлюзу 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

Щоб отримати додаткову інформацію про синтаксис команди "route", дивіться тут: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/route.mspx?mfr=true


Не працює, команда непогана. Помилка, не вдається знайти вказаний файл
Седрик Бойвін

спробуйте без "якщо": маршрут -p додайте 192.168.99.1 маску 255.255.255.255 192.168.99.100, але це має спрацювати, чи можете ви процитувати помилку?
Олексій Шатигін

Цього разу жодного повідомлення про помилку, але це нічого не змінить
Седрик Бойвін

Він повинен змінити вашу таблицю маршрутизації. Чи можете ви зробити "друк маршруту", цю команду та "друк маршруту" ще раз і поставити тут вихід?
Олексій Шатигін

І, перш ніж виконувати команду, яку я опублікував, зробіть "маршрут видалити 0.0.0.0"
Олексій Шатигін

1

Ви не можете використовувати показники для IP-адрес? У властивостях TCP / IP зніміть прапорець Автоматичний показник та призначте статичну величину, меншу за 261 (як показано на екрані екрана) адресі, яку ви хочете за замовчуванням.


Я спробую це, це гарна ідея.
Седрік Боївін

Не працює, дивіться мої зміни в моєму дописі.
Седрік Боївін

чи є спосіб змінити адресу інтерфейсу?
Седрік Боївін

1

Команда у формі:
> route add 0,0.0.0 mask 0.0.0.0 192.168.99.1 metric xxx, якщо yyy
змінить адресу, яку бачив, коли машина переходить на будь-яку адресу не 192.168.99.0 / 24 та non-10.10.10.0 / 24 . Тобто, коли використовується шлюз за замовчуванням. Коефіцієнт (xxx) повинен бути вищим за будь-що інше, щоб забезпечити використання правила. Інтерфейс (yyy) повинен бути інтерфейсом для використання. Але я не думаю, що існує спосіб контролюти IP-адресу в цьому інтерфейсі, якщо є кілька IP-адрес.
> маршрут додайте 192.168.99.0 маску 255.255.255.0 метрику xxx, якщо yyy
схожий, але це для будь-якої адреси 192.168.99.0/24, до якої надходить система. Справа в тому, що присвоєння декількох IP-адрес одному інтерфейсу може мати такі проблеми.


1

Мені вдалося дублювати вашу проблему: схоже, що Windows використовує найнижчу присвоєну IP-адресу в даному мережевому інтерфейсі як "вихідну", незалежно від фактичного порядку, в якому вони були призначені.

Мені не вдалося знайти жодної документації щодо такої поведінки, але я впевнений, що це задумано.


Редагувати

Я думаю, що це дійсно неможливо зробити на рівні ОС, але це можна зробити за допомогою коду у вашій програмі: сокет може бути явно прив’язаний до обраної пари IP-адреси / порту перед тим, як підключити його до віддаленої кінцевої точки. Але вам доведеться використовувати бібліотеки нижчого рівня, ніж стандартні веб-сервіси. IE вам доведеться вручну відкрити сокет, підключити його і використовувати його для читання / запису даних.

Приклад .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

Це дозволить відкрити з'єднання до 1.2.3.4:80, що походить від 192.168.99.100:2242, тож віддалений хост побачить, що він надходить саме з цієї IP-адреси.

Перевірений і перевірений підключенням до IIS, він записує запит як такий, що надходить із вказаної IP-адреси.


Я читав одяг, який міг би бути двійковим порівнянням із IP-адресою?
Седрік Боївін

1
Так, бінарне порівняння дуже ймовірно, як обраний "найнижчий"; Я не намагався використовувати IP-адреси, що належать до різних підмереж.
Массімо

Моя найбільша проблема в цей час, це те, що я отримав понад 300 веб-сайтів на декількох адресах ip, і коли мій сервер переходить в Інтернет, щоб зателефонувати на інший сервер (веб-сервіс), я не можу бути впевненим, у якого публічного ip у мого сервера буде.
Седрік Боївін

Дякую за цю відповідь, але в моєму сценарії застосувати це рішення неможливо. Рішення повинні надходити з ОС або, можливо, з брандмауера. Це хороший спосіб вирішити проблему за допомогою програми, але ми переходимо до багатьох додатків, щоб вирішити проблему на кожному веб-сайті.
Седрік Бойвін

Але навіть якби ви могли зробити так, як хочете, ви не могли змусити різні веб-сайти використовувати різні IP-адреси; таким чином, ви могли б :-)
Массімо

1

Вибір адреси джерела для вихідного дзвінка обробляється по-різному стеком TCP / IP після ремонту Vista. У XP / 2003 та новіших версіях адреса джерела визначалася таблицею маршруту, коли програма не явно декларувала програму, яка здійснює вихідний виклик. Починаючи з Vista / 2008, адресу джерела можна визначити за спорідненістю префікса до пункту призначення або наступної шлюзової адреси шлюзу, якщо призначення не є локальним. Наступна публікація в блозі Technet дуже добре пояснює зміну поведінки.

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


1

У мене Windows 2008 R2 SP1 x64 Enterprise Edition використовується як веб-сервери з одним NIC.

Я зіткнувся з тим же питанням, яке описано вище. Я хочу, щоб вихідні з'єднання оброблялися IP-адресою за замовчуванням (тією, що підписана на сервері), але він тримає випадковим чином вибір IP адреси з моїх 10 IP-адрес для моїх 10 веб-сайтів на цьому сервері.

Усі вони відображаються як бажані IP-адреси, якщо ви виконаєте наступну команду.

Netsh int ipv4 show ipaddresses level=verbose

Я спробував завантажити Hot Fix, але чомусь (і я подвійно, потрійно перевірив) він сказав "він не може працювати на цій версії ОС". Якщо ви, хлопці, хочете спробувати це так .

Якщо у вас працює MS DNS-сервер, ви помітите, що ім’я сервера SAME буде зареєстровано 11 разів (у моєму випадку) 1 IP для сервера та 10 IP для кожного з веб-сайтів.

Я вважаю, що це може бути РОБОТА (зараз, якщо хтось не має кращого рішення)

Якщо зайти на сервер Windows під властивостями TCP, де ви ввели IP-адреси сервера та веб-сайтів, ви побачите там вкладку DNS. Тепер ПЕРЕКАЗУЙТЕ РЕЄСТРУВАННЯ АДРЕСІВ ПІДТРИМКИ та перезавантажте сервер (і залиште без позначення).

Якщо ви зареєструєтесь на сервері DNS, всі записи DNS із IP-адресами зникнуть.

Тепер введіть Вручну в DNS ім'я сервера та бажану IP-адресу . І це має виправити це питання.

Якщо у когось із вас є краще рішення, будь ласка, поділіться з нами.

Гріпе: Не впевнений, чому МС не вирішив це питання. Вони повинні створити опцію (наприклад, прапорець) для серверів, які несуть кілька IP-адрес у одній підмережі, щоб вибрати, яка IP-адреса повинна бути кращою.


0

"За замовчуванням" - це адреса, розміщена в першому полі введення властивостей карти інтерфейсу, оскільки вона за замовчуванням відповість на цю, всі інші вважаються вторинними.

(Сервер ISA - хороший приклад такої поведінки, оскільки ви не можете сказати йому, щоб він відповідав IP, з яким він зв’язався ...)


Це, мабуть, бути таким, але не працюйте. У моєму випадку ip 99.49 знаходиться в розширеній конфігурації, а 99.100 - це той, хто вказав у властивості ipv4 ....
Седрик Боїн

Це дійсно дивно, оскільки наша інфраструктура тут багато використовує для фільтрів веб-сервера та ін. Ви намагалися видалити всі IP-адреси з властивостей картки, крім того, який ви хочете бути за замовчуванням, застосувати та повернути їх згодом?
Олександр Нізо

Так, я спробую, і така ж проблема виникає, коли я ввожу 99.49
Седрик

це 99,49 найнижча кількість ваших IP-адрес?
Олександр Нізу

Так, ви можете подивитися мій ipconfig на вершині
Седрик Бойвін

0

Я знайшов рішення:

  • на первинному nic, видаліть IP, який ви хочете за замовчуванням, видаліть за замовчуванням gw aswell, дайте йому високу метрику (приклад: 50)
  • додайте вторинний nic, дайте йому IP, який ви хочете як "за замовчуванням", встановіть GW за замовчуванням тут, а на розширеній вкладці встановіть найнижчий показник (приклад: 1)

Це працювало в моєму 2008R2 / IIS7 з 20 IP-адресами.

BR, Matija


0

Я вирішив це, змінивши маску мережі на 255.255.255.255всі додаткові адреси і залишивши без змін лише адресу за замовчуванням.

Я сподіваюся, що це вирішить для вас!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.