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.