много думал. так и не понял, почему 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
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 должен будет добавиться