У меня проблема с несколькими процессами, которым необходимо привязать сокет TCP к одному и тому же порту в Windows Server 2008.
На данный момент я считаю, что это вызывает неожиданное нестабильное поведение, поскольку существует состояние гонки между процессами, когда вы не можете знать, какой пакет будет доставлен в какой процесс.
Очевидно, что о разделении процессов на разные машины не может быть и речи, поэтому я хотел бы попробовать одно решение - привязка к этому порту через разные IP-адреса.
Теперь я знаю, что могу использовать netsh interface ipv4 add address
для добавления статических IP-адресов в Windows. Однако можно ли добавить адреса и разрешить DHCP назначать IP-адреса каждому из этих виртуальных интерфейсов?
Если это виртуальная машина, одним из способов сделать это было бы просто добавить виртуальные сетевые интерфейсы, каждый из которых работает с DHCP.
Но на самом деле, я думаю, что запрашивать здесь IP-адреса с помощью DHCP не имеет особого смысла, потому что вам придется настроить сами серверные процессы для привязки к конкретным IP-адресам, которые могут быть изменены, если вы: переназначить по DHCP. Возможно, если вы сможете привязаться к интерфейсу, а не к IP-адресу, это все равно будет иметь смысл. Это будет зависеть от рассматриваемого приложения.
Однако назначение нескольких статических IP-адресов, вероятно, имеет гораздо больший смысл.
К вашему сведению, вам не нужно использовать netsh для этого, это можно сделать в свойствах IPv4 интерфейса под кнопкой Advanced. Вы сможете добавить туда несколько адресов.