Re: [uanog] Windowx XP VPN client + some static routing?
Paul Arakelyan wrote:
On Wed, Jun 13, 2007 at 05:42:47PM +0300, Oleg Cherevko wrote:
Имеется следующая задачка. Есть Win XP Pro, на которой создан клиентский VPN connection (PPTP) к некому серверу. Сервер выдает клиенту IP адреса динамически, каждый раз разные. По условию задачи, на это поведение сервера повлиять нельзя. "на _это_ нельзя" - а на какое можно? ("ни на какое!"? Угадал?)
Угадал. :) Я эту ситуацию сознательно сформулировал как задачу, которая должна быть решена client-only средствами. В таком виде она нередко встречается (судя по множеству аналогичных вопросов, нагугленных мною в процессе), и потому хорошее решение может иметь практическую пользу не только для меня одного.
Их идея состоит в том, чтобы тупо "в лоб" распарсить вывод команды "ipconfig /all" после того, как VPN поднялся, и добыть оттуда IP адрес, используя априорное знание того, какой префикс будет у полученного VPN'ом динамического IP. Это работает. Но... как-то оно коряво.
Концептуально никаких других быть не должно - тебе или всё нужное дадут по dhcp, или неправильно дадут, или сам руками (пусть и .bat-файлом) ковыряй.
Ну да, как раз про "сам руками" и вопрос. Собственно, сводится-то он, по сути, к тому, как максимально дешево и максимально надежно выяснить 2 вещи: 1) установилось ли определенное VPN-соединение и 2) какой IP при этом получил наш конец VPN-туннеля. У меня было подозрение, что может можно каким-нибудь там, скажем, относительно несложным VBScript'ом подергать, например, за RAS API, чтобы все это узнать, или еще чем-нибудь за что-нибудь эдакое, но примеров подобного я пока не нашел, а лезть в мрачные виндовые глубины, чтобы измыслить такое самостоятельно, пока лениво. Так что по состоянию "на сейчас" я написал немного более навороченную версию этого же bat-файлового решения и успокоился. Но если у кого появятся альтернитивные идеи -- you are welcome. Если же кому мое bat-решение нужно -- скажите, выдам. (Кстати, как оказалось, некоторые даже специально сделанные для этой цели программы пишут и даже продают: http://www.muconsulting.com/rasdialpro/ )
Теперь собственно вопрос -- может кто знает способ поуниверсальнее?
Ага. Сей способ зовётся VMWare server и any *nix inside, с которым совладаешь.
Это понятно. Но это явный overkill. Для себя, "для души" можно и не так еще извратиться, но как технологическое решение для одной этой задачи -- слишком громоздко. Хочется вариант попроще. -- Olwi =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Thu, Jun 14, 2007 at 11:35:59PM +0300, Oleg Cherevko wrote: Доброй ночи, Может, что и не уловил в постановке задачи, но уже давно существует такая прелесть как netsh позволяющая единым скриптом узнать и текущий адрес на конкретном интерфейсе и добавить необходимый набор статиков. netsh interface ip>show ipaddress MIB-II IP Address Entry IP Address Mask BC Fmt Reasm Sz Interface --------------- --------------- ------ -------- --------- 127.0.0.1 255.0.0.0 1 65535 Loopback 192.168.0.135 255.255.255.0 1 65535 wi0 Опять же, всегда можно запустить минимального SNMP демона и снимать состояние интерфейса и адрес по snmp.
Paul Arakelyan wrote:
On Wed, Jun 13, 2007 at 05:42:47PM +0300, Oleg Cherevko wrote:
Имеется следующая задачка. Есть Win XP Pro, на которой создан клиентский VPN connection (PPTP) к некому серверу. Сервер выдает клиенту IP адреса динамически, каждый раз разные. По условию задачи, на это поведение сервера повлиять нельзя. "на _это_ нельзя" - а на какое можно? ("ни на какое!"? Угадал?) [dd] -- ZA-RIPE||ZA1-UANIC =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Andrey Zarechansky wrote:
On Thu, Jun 14, 2007 at 11:35:59PM +0300, Oleg Cherevko wrote: Может, что и не уловил в постановке задачи, но уже давно существует такая прелесть как netsh позволяющая единым скриптом узнать и текущий адрес на конкретном интерфейсе и добавить необходимый набор статиков.
Про существование netsh я знаю. Правда, реально пользоваться им как-то пока, увы, не приходилось.
netsh interface ip>show ipaddress
MIB-II IP Address Entry IP Address Mask BC Fmt Reasm Sz Interface --------------- --------------- ------ -------- --------- 127.0.0.1 255.0.0.0 1 65535 Loopback 192.168.0.135 255.255.255.0 1 65535 wi0
На той машине, где я экспериментировал эта команда дает следующее: | netsh interface ip>show ipaddress | | The Routing and Remote Access Service is not currently running on the local machine. | Please use 'net start remoteaccess' on the machine to start the service. Как выяснилось, во всех XP с SP2 RRAS по умолчанию disabled (что, в общем, и разумно). Ладно, после поднятия RRAS'а оно действительно выдает такую табличку, причем в поле Interface пишет название VPN connection'а, что приятно. А вот как при помощи netsh "единым скриптом узнать и текущий адрес на конкретном интерфейсе и добавить необходимый набор статиков" что-то пока себе не представляю. У netsh что, есть какой-то механизм передачи значений между различными его командами? Можешь пример того, как это делается, показать (или показать, где это в какой-нибудь доке по netsh описано)?
Опять же, всегда можно запустить минимального SNMP демона и снимать состояние интерфейса и адрес по snmp.
Да, это тоже вариант. -- Olwi =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
participants (2)
-
Andrey Zarechansky
-
Oleg Cherevko