много думал. так и не понял, почему windows не жрёт маску /32. И как всё-таки поднять адрес с такой маской? Можно не на Local Area Connection, а на Loopback, но на нём мне вообще ничего поменять не удалось.
Это понятно. Да только винда тебе не даст такого сделать (и совершенно правильно не даст, кстати). Потому что она уверена, что у обычного, не point-to-point, интерфейса - должен быть, как минимум, дефолтный шлюз. Маска /32 этого не позволяет. Вот винда тебя и материт.
вот про "не даст" я уже понял. а про "совершенно правильно" - обоснуй, пожалуйста. я привёл пример, когда это именно то, что мне нужно. ну или расскажи, к какому интерфейсу можно приделать такой адрес. К Loopback у меня не получилось.
а про "совершенно правильно" - обоснуй, пожалуйста.
А чего тут обосновывать?! Винда не предназначена для извратов. И невозможность вписать /32 - просто страховка от конфигураций интерфейса, при которых виндовая сеть гарантированно не будет работать. Вот и всё...
ну или расскажи, к какому интерфейсу можно приделать такой адрес.
К point-to-point, вестимо. Или к туннельному, что то же самое. Кстати, а указание маски /30 для интерфейса тебя никак не спасёт?
как показывает вышеприведённый пример, /31 винда уже вполне даже понимает. что несколько странно, полтому что для широковещательной сети по-хорошему нужно минимум 4 адреса. но в общем случае даже этот вариант не годится, второй адрес из /31 может находиться с внешней стороны нат-сервера, и в него надо ходить через default gw, а не напрямую через ethernet.
Давай я завтра на работе подумаю и поэкспериментирую, лады? А то щас башка уже совсем не варит :(. Да и линуха экспериментального под руками нету.
Но что-то мне подсказывает, что твоя задача должна решаться значительно проще, без извратов. Сервак из DMZ пингует собственный реальный адрес. С приватного интерфейса. Пакет идёт куда? Правильно, в NAT. Там ему переписывают заголовок, подставляя реальный ip. Имеем: реальный интерфейс пингует сам себя - почему нет? А дальше файрволл, по идее, должен этот пакет перехватить и услать обратно в DMZ. Там с правилами файрволла нужно крутить, а не реальные адреса в DMZ вешать, как мне кажется...
А что будет (плохого), если на сервере просто добавить адрес а.б.ц.д на лупбеке или на сетевухе? Сервер начнёт себя видеть (факт) и будет продолжать принимать пакеты из инета через НАТ (вай нот?).
что значит "просто добавить"? Его надо добавлять с маской. И маска нужна /32, потому что любой соседний адрес может оказаться уже с другой стороны ната.
можно попробовать добавить Loopback adapter. дать ему ip с маской /30. и через реестр выставить маску /32. проверил - таблица маршрутов выглядет нормальной
через "установку оборудования" добавть не Plug'n'Play Microsoft Loopback Adapter (http://support.microsoft.com/kb/839013/en-us). дать ему IP (netsh или через гуи), в реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID адаптера} изменить SubnetMask на желаемый
Это ж M$ ;). Но, на первый вгляд, можно попробовать приблизительно в таком порядке. 1. командой net config rdr посмотреть, какие GUID у установленных в системе адаптеров. (при условии, что включен NetBT) (будут в NetBT_TCPip_{GUID}) 2. командой devcon.exe install %windir%\inf\netloop.inf *msloop (http://technet2.microsoft.com/windowsserver/en/library/0b077318-2bac-4399-8230-461d5d2a055f1033.mspx?mfr=true) поставить драйвера loopback-а 3. После того, как система подумает и даст APIPA-адреса лупбэку, снять командой net config rdr изменения GUID - там должен будет появиться GUID лупбэка 6. Настройить с помощью netsh на IP с любой маской 5. Изменить в файле с текстом: Windows Registry Editor Version 5.00
GUID на GUID, полученный в п. 3 6. импортировать файл в реестр (regedit /s loopback.reg) 7. рестартануть интерфейс с помощью netsh типа того ;) как снять GUID-ы интерфейсов без NetBT не знаю..надо гуглить
успехов. мне даже интересно ;) да, при отключенном NetBT (как догадываюсь, он у Вас вполне может быть и отключен) можно попробовать пункты 1 и 3 заменить на экспорт "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" (regedit /e) из реестра. GUID лупбэка в п.3 должен будет добавиться
no subject
no subject
no subject
no subject
no subject
no subject
no subject
А чего тут обосновывать?!
Винда не предназначена для извратов. И невозможность вписать /32 - просто страховка от конфигураций интерфейса, при которых виндовая сеть гарантированно не будет работать. Вот и всё...
ну или расскажи, к какому интерфейсу можно приделать такой адрес.
К point-to-point, вестимо. Или к туннельному, что то же самое.
Кстати, а указание маски /30 для интерфейса тебя никак не спасёт?
no subject
как показывает вышеприведённый пример, /31 винда уже вполне даже понимает. что несколько странно, полтому что для широковещательной сети по-хорошему нужно минимум 4 адреса.
но в общем случае даже этот вариант не годится, второй адрес из /31 может находиться с внешней стороны нат-сервера, и в него надо ходить через default gw, а не напрямую через ethernet.
no subject
Но что-то мне подсказывает, что твоя задача должна решаться значительно проще, без извратов. Сервак из DMZ пингует собственный реальный адрес. С приватного интерфейса. Пакет идёт куда? Правильно, в NAT. Там ему переписывают заголовок, подставляя реальный ip. Имеем: реальный интерфейс пингует сам себя - почему нет? А дальше файрволл, по идее, должен этот пакет перехватить и услать обратно в DMZ. Там с правилами файрволла нужно крутить, а не реальные адреса в DMZ вешать, как мне кажется...
no subject
no subject
Может не нужно извратов?
no subject
no subject
no subject
no subject
no subject
no subject
no subject
1. командой net config rdr посмотреть, какие GUID у установленных в системе адаптеров. (при условии, что включен NetBT) (будут в NetBT_TCPip_{GUID})
2. командой devcon.exe install %windir%\inf\netloop.inf *msloop (http://technet2.microsoft.com/windowsserver/en/library/0b077318-2bac-4399-8230-461d5d2a055f1033.mspx?mfr=true) поставить драйвера loopback-а
3. После того, как система подумает и даст APIPA-адреса лупбэку, снять командой net config rdr изменения GUID - там должен будет появиться GUID лупбэка
6. Настройить с помощью netsh на IP с любой маской
5. Изменить в файле с текстом:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID}]
"SubnetMask"=hex(7):32,00,35,00,35,00,2e,00,32,00,35,00,35,00,2e,00,32,00,35,\
00,35,00,2e,00,32,00,35,00,35,00,00,00,00,00
GUID на GUID, полученный в п. 3
6. импортировать файл в реестр (regedit /s loopback.reg)
7. рестартануть интерфейс с помощью netsh
типа того ;)
как снять GUID-ы интерфейсов без NetBT не знаю..надо гуглить
no subject
спасибо, на досуге попробую разобраться
no subject
да, при отключенном NetBT (как догадываюсь, он у Вас вполне может быть и отключен) можно попробовать пункты 1 и 3 заменить на экспорт "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\" (regedit /e) из реестра. GUID лупбэка в п.3 должен будет добавиться
no subject
Ряд очевидных (но с ее точки зрения вредных) действий с сетью винда просто не даст сделать.