Назад | Перейти на главную страницу

Windows Server 2008: указание IP-адреса по умолчанию, когда сетевой адаптер имеет несколько адресов

У меня есть Windows Server со статически привязанными ~ 10 IP-адресами. Проблема в том, что я не знаю, как указать IP-адрес по умолчанию.

Иногда, когда я назначаю новый адрес сетевой карте, IP-адрес по умолчанию меняется на последний IP-адрес, введенный в расширенной конфигурации IP на сетевой карте. В результате (поскольку я использую NAT) изменяется и исходящий общедоступный IP-адрес.

Несмотря на то, что эта проблема в настоящее время существует в Windows Server 2008.

Как вы можете установить IP-адрес по умолчанию на сетевой карте, если у нее есть несколько привязанных IP-адресов?

По моей проблеме есть больше объяснений.

альтернативный текст 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-адрес по умолчанию), будет использоваться моим сервером в качестве адреса по умолчанию?

С Server 2008 Пакет обновления 2 (не R2), или Vista SP2 и исправление MS KB975808 решение есть, хотя и немного корявое. Вы должны удалить все адреса, которые НЕ нужны в качестве источника, а затем повторно добавить каждый из них в командной строке, используя

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

Исправление включает флаг «Пропустить как источник».

Более подробные сведения о том, как разные версии Windows выбирают исходные IP-адреса, см. Сообщение в блоге TechNet.

Для сетевого интерфейса не существует такой вещи, как «IP по умолчанию»; скорее таблица маршрутизации вашей системы определяет, какой логический интерфейс следует использовать при взаимодействии с другими устройствами.

Похоже, что вы хотите настроить маршрут по умолчанию. Это приведет к тому, что все разговоры, инициированные этой машиной, будут осуществляться с определенного IP-адреса.

Используйте route add, чтобы добавить шлюз по умолчанию

Ваша ситуация не совсем ясна, но если я вас правильно понял:
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

Команда в виде:
> маршрут добавить 0.0.0.0 маска 0.0.0.0 192.168.99.1 метрика xxx, если yyy
изменит адрес, видимый, когда машина переходит на любой адрес, отличный от 192.168.99.0 / 24 и не 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-адресов одному интерфейсу могут возникнуть проблемы такого рода.

Не могли бы вы использовать метрики по IP-адресам? В свойствах TCP / IP снимите флажок «Автоматическая метрика» и назначьте статическую метрику со значением ниже 261 (как показано на скриншоте) адресу, который вы хотите использовать по умолчанию.

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

Мне не удалось найти никакой документации об этом поведении, но я совершенно уверен, что это задумано.


редактировать

Я думаю, что в O.S. уровень, но это можно сделать с помощью кода в вашем приложении: сокет может быть явно привязан к выбранной паре IP-адрес / порт перед подключив его к удаленной конечной точке. Но вам придется использовать библиотеки более низкого уровня, чем стандартные веб-сервисы. I.E. вам придется вручную открыть сокет, подключить его и использовать для чтения / записи данных.

Пример .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:4242, поэтому удаленный хост увидит, что оно исходит именно с этого IP-адреса.

Опробовано и протестировано путем подключения к IIS, он регистрирует запрос как исходящий с указанного IP-адреса.

Выбор адреса источника для исходящего вызова обрабатывается стеком 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

У меня Windows 2008 R2 SP1 x64 Enterprise edition используется в качестве веб-серверов с одной сетевой картой.

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

Все они отображаются как предпочтительные IP-адреса, если вы выполните следующую команду.

Netsh int ipv4 show ipaddresses level=verbose

Я попытался загрузить Hot Fix, но по какой-то причине (и я дважды, трижды проверил) он сказал: «Он не может работать в этой версии ОС). Если вы, ребята, хотите попробовать вот.

Если у вас запущен DNS-сервер MS, вы заметите, что ЖЕ имя сервера будет зарегистрировано 11 раз (в моем случае) 1 IP для сервера и 10 IP для каждого из веб-сайтов.

Я считаю, что это может быть РЕШЕНИЕ (в настоящее время, если у кого-то еще нет лучшего решения)

Чтобы перейти на сервер Windows в свойствах TCP, где вы ввели IP-адреса для сервера и веб-сайтов, вы увидите там вкладку DNS. Теперь СНИМИТЕ РЕГИСТРАЦИЮ АДРЕСОВ СОЕДИНЕНИЙ и ПЕРЕЗАГРУЗИТЕ сервер (и не устанавливайте флажок).

Если вы проверите DNS-сервер, все записи DNS с IP-адресами исчезнут.

Сейчас Введите ВРУЧНУЮ в DNS имя сервера и предпочтительный IP-адрес.. И это должно решить проблему.

Если у кого-то из вас есть лучшее решение, поделитесь с нами.

Жалоба: Не уверен, почему MS не исправила эту проблему. Они должны были создать параметр (например, флажок) для серверов, которые переносят несколько IP-адресов в одной подсети, чтобы вы могли выбрать, какой IP-адрес должен быть предпочтительным.

«Адрес по умолчанию» - это адрес, указанный в первом поле ввода в свойствах интерфейсной карты, поскольку по умолчанию он будет отвечать этим адресом, все остальные считаются вторичными.

(ISA-сервер является хорошим примером такого поведения, поскольку вы не можете сказать ему, что он должен ответить с IP-адресом, с которым он связался ...)

Я нашел решение:

  • на своем основном нике удалите IP-адрес, который вы хотите использовать по умолчанию, также удалите gw по умолчанию, дайте ему высокую метрику (пример: 50)
  • добавьте вторичный ник, дайте ему IP-адрес, который вы хотите, по умолчанию, установите GW по умолчанию здесь и на расширенной вкладке установите минимальную метрику (пример: 1)

Это работало в моем 2008R2 / IIS7 с 20 IP-адресами.

BR, Matija

Я решил это, изменив маску сети на 255.255.255.255 для всех дополнительных адресов и оставив без изменений только адрес по умолчанию.

Надеюсь, это поможет вам!