Маршрутизация в виндовс - не для слабонервных..
mvf23
Профессионал
12/27/2006, 5:13:48 PM
Итак описываю ситуацию. Имеется Windows-машина, подключенная к локалке (напрямую) и к интернету (через VPN). Нужно с этой машины организовать вещание звукового потока в локалку в режиме мультикаста.
В качестве софта выбран VideoLan (VLC). Проблема: вещание работает нормально, только когда отключен интернет. А по условию задачи он должен быть подключен постоянно.
После некоторых изысканий был поставлен такой диагноз. Для каждого сетевого подключения Windows автоматически прописывает в свою таблицу маршрутизации ещё одну строчку для мультикаст-адресов.
Т.е. когда комп не подключен к интернету, в таблице маршрутизации (смотрю с помощью route print) есть только одна строчка для мультикастовых адресов
CODE 224.0.0.0 224.0.0.0 <ip компа в локалке> <ip компа в локалке> 1
После подключения к интернету в таблице маршрутизации появляется ещё одна строка.
CODE 224.0.0.0 224.0.0.0 <ip компа в локалке> <ip компа в локалке> 1
224.0.0.0 224.0.0.0 <ip компа в инете> <ip компа в инете> 1
Как видите, метрика у обоих маршрутов одинакова и равна единичке. По всей видимости виндовс почему-то предпочитает использовать тот маршрут, который "ведет" в интернет, а не в локалку. Короче говоря в локалку после поключения к VPN ничего не вещается.
Проблема решается элементарно - удаляем ненужную строчку с помощью команды
CODE route delete 224.0.0.0 <ip компа в инете>
Таким образом остается только один маршрут к мультикастовым адресам и все работает замечательно. Но тут уже возникает проблема другого рода.
VPN соединение время от времени может отваливаться по причине не очень стабильной работы провайдера. Повторное подключение при разрыве связи происходит автоматически. И все бы хорошо, но при повторном подключении виндовс обновляет таблицу маршрутизации и снова добавляет туда ту самую злополучную строчку, которую удалили вручную.
Поскольку этот комп - сервер, то вариант - каждый раз вручную удалять эту строчку - не подходит. Создание статического маршрута не помогает.
Итак а теперь вопрос. Как при каждом разрыве связи/повторном подключении автоматически удалять эту строку в таблице маршрутизации? Или как сделать так чтобы она туда не прописывалась при инициализации соединения?
В качестве софта выбран VideoLan (VLC). Проблема: вещание работает нормально, только когда отключен интернет. А по условию задачи он должен быть подключен постоянно.
После некоторых изысканий был поставлен такой диагноз. Для каждого сетевого подключения Windows автоматически прописывает в свою таблицу маршрутизации ещё одну строчку для мультикаст-адресов.
Т.е. когда комп не подключен к интернету, в таблице маршрутизации (смотрю с помощью route print) есть только одна строчка для мультикастовых адресов
CODE 224.0.0.0 224.0.0.0 <ip компа в локалке> <ip компа в локалке> 1
После подключения к интернету в таблице маршрутизации появляется ещё одна строка.
CODE 224.0.0.0 224.0.0.0 <ip компа в локалке> <ip компа в локалке> 1
224.0.0.0 224.0.0.0 <ip компа в инете> <ip компа в инете> 1
Как видите, метрика у обоих маршрутов одинакова и равна единичке. По всей видимости виндовс почему-то предпочитает использовать тот маршрут, который "ведет" в интернет, а не в локалку. Короче говоря в локалку после поключения к VPN ничего не вещается.
Проблема решается элементарно - удаляем ненужную строчку с помощью команды
CODE route delete 224.0.0.0 <ip компа в инете>
Таким образом остается только один маршрут к мультикастовым адресам и все работает замечательно. Но тут уже возникает проблема другого рода.
VPN соединение время от времени может отваливаться по причине не очень стабильной работы провайдера. Повторное подключение при разрыве связи происходит автоматически. И все бы хорошо, но при повторном подключении виндовс обновляет таблицу маршрутизации и снова добавляет туда ту самую злополучную строчку, которую удалили вручную.
Поскольку этот комп - сервер, то вариант - каждый раз вручную удалять эту строчку - не подходит. Создание статического маршрута не помогает.
Итак а теперь вопрос. Как при каждом разрыве связи/повторном подключении автоматически удалять эту строку в таблице маршрутизации? Или как сделать так чтобы она туда не прописывалась при инициализации соединения?
DELETED
Акула пера
12/28/2006, 7:51:43 PM
CODE HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
Далее ключ UID интерфейса, который смотрит в сеть и в нем пропиши CODE TypeOfInterface=2 \DWORD\ (...)
Далее ключ UID интерфейса, который смотрит в сеть и в нем пропиши CODE TypeOfInterface=2 \DWORD\ (...)
mvf23
Профессионал
12/28/2006, 7:57:23 PM
Хм... Спасибо. В который раз убеждаюсь что ты - маг и волшебник :)
Попробую - потом напишу.
Попробую - потом напишу.