MacCentre.ru Форум Форум по компьютерам Mac, Mac OS X и продукции Apple
|
Автор |
Сообщение |
EsTaF
Репутация: +12
Зарегистрирован: 03.04.2007 Сообщения: 1568
|
Добавлено: Ср Май 09, 2007 06:21
|
|
|
Софтинки хороши, если у прова не надо менять дефолтный маршрут, при туннелировании трафика.
к примеру, мой дефолтный маршрут - локальный. ака 10.60.0.0/16 10.64.1.1
vpn сервер - 10.60.1.21
локальный дефолт не даст перейти на внешний ip. Почему - "не скажу. не знаю"
нужно убить его и задать дефолт, как ip vpn сервера. по идее, это и в гуевой настройке сделать можно, но тогда я не буду иметь доступа к локальным адресам. ибо дефолт - ip vpn сервера
простое убийство дефолта - ничего не даст. добавлять нужно обязательно. проверено.
пример таблицы, до соединения с провом
default 10.64.1.1 UGSc 0 0 en0
10 10.64.1.1 UGSc 1 0 en0
10.60/16 10.64.1.1 UGSc 1 0 en0
10.61/16 10.64.1.1 UGSc 0 0 en0
10.62/16 10.64.1.1 UGSc 0 0 en0
10.63/16 10.64.1.1 UGSc 0 0 en0
10.64/16 link#4 UCS 2 0 en0
10.64.1.1 xxxxxxxxxxxxx UHLW 1 0 en0 834
10.64.39.250 127.0.0.1 UHS 0 0 lo0
10.64.255.255 ff:ff:ff:ff:ff:ff UHLWb 0 9 en0
10.65/16 10.64.1.1 UGSc 0 0 en0
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 12 62313 lo0
169.254 link#4 UCS 0 0 en0
192.168.0/16 10.64.1.1 UGSc 0 0 en0
а вот таблица, когда я не руками удаляю дефолтный 10.64.1.1, а через настройки vpn
default 10.60.1.21 UGSc 30 5 ppp0
10 10.64.1.1 UGSc 1 0 en0
10.60/16 10.64.1.1 UGSc 2 0 en0
10.60.1.21 10.64.1.1 UGHS 87 57 en0
10.61/16 10.64.1.1 UGSc 0 0 en0
10.62/16 10.64.1.1 UGSc 0 0 en0
...тут ничего не пишу. лишнее
так вот. дефолт поменялся на ip vpn сервера
Локалка не пингуется! Это справедливо и нормально.
терь, вырубаю опцию движения трафика через него, в гуе:
default 10.64.1.1 UGSc 53 9 en0
10 10.64.1.1 UGSc 1 0 en0
10.60/16 10.64.1.1 UGSc 2 0 en0
10.60.1.21 10.64.1.1 UGHS 10 10 en0
10.61/16 10.64.1.1 UGSc 0 0 en0
10.62/16 10.64.1.1 UGSc 0 0 en0
...
и пингую какойнибудь адрес
ping www.google.com
PING www.l.google.com (64.233.183.103): 56 data bytes
^C
--- www.l.google.com ping statistics ---
6 packets transmitted, 0 packets received, 100% packet loss
глухо
а теперь делаю все то же самое с маршрутом по дефолту, но уже не через гуй а руками
# route delete net default
# route add net default 10.60.1.21
и наблюдаю идентичную таблицу, как, еслиб я сделал это через гуевый фейс настроек vpn
default 10.60.1.21 UGSc 979 1 ppp0
10 10.64.1.1 UGSc 1 0 en0
10.60/16 10.64.1.1 UGSc 1 0 en0
10.60.1.21 10.64.1.1 UGHS 2365 1397 en0
10.61/16 10.64.1.1 UGSc 0 0 en0
10.62/16 10.64.1.1 UGSc 0 0 en0
итц...
Но! теперь, локалка пингуется.
смотрим полную разницу между гуевым вариантом и обычным:
GUI:
default 10.60.1.21 UGSc 30 5 ppp0
10 10.64.1.1 UGSc 1 0 en0
10.60/16 10.64.1.1 UGSc 2 0 en0
10.60.1.21 10.64.1.1 UGHS 87 57 en0
10.61/16 10.64.1.1 UGSc 0 0 en0
10.62/16 10.64.1.1 UGSc 0 0 en0
10.63/16 10.64.1.1 UGSc 0 0 en0
10.64/16 link#4 UCS 1 0 en0
10.64.1.1 xxxxxxxxxxxx UHLW 1 0 en0 741
10.64.39.250 127.0.0.1 UHS 1 7 lo0
10.65/16 10.64.1.1 UGSc 0 0 en0
91 ppp0 USc 0 0 ppp0
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 15 62504 lo0
169.254 link#4 UCS 0 0 en0
192.168.0/16 10.64.1.1 UGSc 0 0 en0
руками:
default 10.60.1.21 UGSc 979 1 ppp0
10 10.64.1.1 UGSc 1 0 en0
10.60/16 10.64.1.1 UGSc 1 0 en0
10.60.1.21 10.64.1.1 UGHS 2365 1397 en0
10.61/16 10.64.1.1 UGSc 0 0 en0
10.62/16 10.64.1.1 UGSc 0 0 en0
10.63/16 10.64.1.1 UGSc 0 0 en0
10.64/16 link#4 UCS 1 0 en0
10.64.1.1 xxxxxxxxxxx UHLW 1 0 en0 401
10.64.39.250 127.0.0.1 UHS 0 7 lo0
10.65/16 10.64.1.1 UGSc 0 0 en0
91 ppp0 USc 13 0 ppp0
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 12 63061 lo0
169.254 link#4 UCS 0 0 en0
192.168.0/16 10.64.1.1 UGSc 0 0 en0
их не особо удобно сравнивать. но похоже, разницы никакой. дефолт vpn сервера 10.60.1.21 и там и там.
К чем все это пишу.
толку от звонилок или переподключалок, если при слете соединения, дефолт унечтожается в обоих случаях?
конечно, у всех разные провы, и есть с нормальной топологией, люди.
и все же.
а держать vi-fi роутер для UNIX машины - имхо, изврат.
Если это UNIX, да еще и с человеческим, как говорят, лицом, то почему в SuSE/Ubuntu итц все это делается на раз два, а здесь я до сих пор не могу понять, как же мне так сделать, что б эдакий "maxfail 0" получить.
Я понимаю, что pptp есть вражеский протокол Не униховый, но все же. как быть с маршрутами.
итог. нужен крондовский вариант звонилки. либо консольный pptp клиент, с нормальными конфигами. или же нужно знать, где и что копать, что бы не лезть в GUI.
И еще. под *BSD/Linux мне не нужно было переводить дефолт на ip vpn. я просто сношу дефолт, но не добавляю другой. дефолта, ака бы и нет, если смотреть таблицу. все работает.
было бы интересно услышать мнения людей, на все эти "счета"
задача -
1. сервисно автоматизировать процесс переподключения, в случае обрыва, как это сделано в pptp-client (Linux) (аналог, или же свой подход). создать "схему для всех пользователей, кто столкнулся с этим", без привлечения костылей (сторонний софт)
2. понять, что же делать с таблицей |
|
Вернуться к началу |
|
Tartuga
Репутация: +52
Зарегистрирован: 18.12.2003 Сообщения: 20608
|
Добавлено: Ср Май 09, 2007 10:38
|
|
|
veranyon
это Вы к чему? ... _________________ Голова - это не то, куда только едят...) |
|
Вернуться к началу |
|
EsTaF
Репутация: +12
Зарегистрирован: 03.04.2007 Сообщения: 1568
|
Добавлено: Ср Май 09, 2007 15:46
|
|
|
Tartuga
к теме _________________ Учеба - это когда ты столько ешь знаний, что ничего не понимаешь, о чем идет речь. Если же тебе ясна тема предмета, то это не учеба. Это стагнация головного мозга. |
|
Вернуться к началу |
|
Tartuga
Репутация: +52
Зарегистрирован: 18.12.2003 Сообщения: 20608
|
Добавлено: Ср Май 09, 2007 15:49
|
|
|
veranyon
это решение? _________________ Голова - это не то, куда только едят...) |
|
Вернуться к началу |
|
EsTaF
Репутация: +12
Зарегистрирован: 03.04.2007 Сообщения: 1568
|
Добавлено: Ср Май 09, 2007 15:53
|
|
|
Tartuga
Это вопрос _________________ Учеба - это когда ты столько ешь знаний, что ничего не понимаешь, о чем идет речь. Если же тебе ясна тема предмета, то это не учеба. Это стагнация головного мозга. |
|
Вернуться к началу |
|
Tartuga
Репутация: +52
Зарегистрирован: 18.12.2003 Сообщения: 20608
|
Добавлено: Ср Май 09, 2007 15:58
|
|
|
тут была тема, как routing настраивать в VPN. Там нечто подобное было..
очень Ваш пост похож на скрипт какой-то виндовый... _________________ Голова - это не то, куда только едят...) |
|
Вернуться к началу |
|
Steps
Репутация: +204/–2
Зарегистрирован: 13.07.2001 Сообщения: 24163 Откуда: Moscow
|
Добавлено: Ср Май 09, 2007 16:32
|
|
|
Tartuga — сетевик-затейник… _________________ Больше в бане — чище форум.
ubi nil vales, ibi nil velis |
|
Вернуться к началу |
|
Tartuga
Репутация: +52
Зарегистрирован: 18.12.2003 Сообщения: 20608
|
Добавлено: Ср Май 09, 2007 16:46
|
|
|
Steps
не )) по поводу routing - ларчик просто открывается))
а вот переконнект... хм... пока вопрос...(
Может стоит айчат покапать - он нормально заново коннектиться. _________________ Голова - это не то, куда только едят...) |
|
Вернуться к началу |
|
EsTaF
Репутация: +12
Зарегистрирован: 03.04.2007 Сообщения: 1568
|
Добавлено: Ср Май 09, 2007 16:47
|
|
|
Tartuga
есть
Но это ручной метод и не очень точно оговоренный.
Есть еще вот такой топик. В нем хорошо сказано про манипуляции маршрутов, при подъеме ppp. Однако, точных решений там нет. лишь, наводка. При чем, слабенькая. так, можно, вообще решить, что лучшая дока по настройке - Google.
То есть, оно, как бы, есть. Но решить проблему так не получится.
Решение не доведено до конца _________________ Учеба - это когда ты столько ешь знаний, что ничего не понимаешь, о чем идет речь. Если же тебе ясна тема предмета, то это не учеба. Это стагнация головного мозга. |
|
Вернуться к началу |
|
Tartuga
Репутация: +52
Зарегистрирован: 18.12.2003 Сообщения: 20608
|
Добавлено: Ср Май 09, 2007 17:19
|
|
|
veranyon
я о том же...
просто об этом уже писАлось вроде, поэтому и спросил - зачем... _________________ Голова - это не то, куда только едят...) |
|
Вернуться к началу |
|
EsTaF
Репутация: +12
Зарегистрирован: 03.04.2007 Сообщения: 1568
|
Добавлено: Ср Май 09, 2007 17:25
|
|
|
Tartuga
забудем. понял _________________ Учеба - это когда ты столько ешь знаний, что ничего не понимаешь, о чем идет речь. Если же тебе ясна тема предмета, то это не учеба. Это стагнация головного мозга. |
|
Вернуться к началу |
|
EsTaF
Репутация: +12
Зарегистрирован: 03.04.2007 Сообщения: 1568
|
Добавлено: Чт Июн 07, 2007 16:16
|
|
|
Некоторый вопрос. Софтина, что поднимает интерфейс ppp, это чисто GUI' вариант, или же фронт-энд, что дергают пользователи для подключения к vpn, к чему-то еще. Уже, нативному и командному
? _________________ Учеба - это когда ты столько ешь знаний, что ничего не понимаешь, о чем идет речь. Если же тебе ясна тема предмета, то это не учеба. Это стагнация головного мозга. |
|
Вернуться к началу |
|
EsTaF
Репутация: +12
Зарегистрирован: 03.04.2007 Сообщения: 1568
|
Добавлено: Сб Июн 16, 2007 22:32
|
|
|
И вот как я решил поступить, заодно написАть Небольшой "хелп" по настройке vpn на этой ОС.
Конфигурация под мою локальную сеть 10.63.0.0. Вы можете исправить на свою. Отличия в файле "/Library/StartupItems/Route/Route", который будет нами создан.
так же, потом, поменяем ip адреса dns серверов и домены поиска, на свои.
и меняем имя нашего vpn сервера. Или же просто вбиваем такой ip.
Всю эту информацию провайдер обязан предоставить.
Нам понадобится шелл. Возьмем bash. Открываем терминал, переходим в режим суперпользователя командой "sudo -s">"pass" и внимательно читаем, что я тут накалякал.
cat - команда, передающая содержимое файла в стандартный вывод.
Вам она не понадобится.
Вы можете воспользоваться обычным текстовым редактором, но нужно сохранять содержимое, которое Вы будете создавать, в обычный текст.
Ибо, по умолчанию, "textedit", будет сохранять все в rtf формате.
Почитайте все, что написано ниже. Сохраните на рабочий стол. Потом скопируете так, как это указывается в моем пояснении.
Для копирования файлов, достаточно ввести команду cp, нажать пробел и перетащить нужный файл с рабочего стола в консоль. Далее, вводите путь, что указан ниже.
Пример:
я написал
"cat /var/cron/tabs/root"
Это значит, что мы должны
a. открыть текстовый редактор
b. внести содержимое, которое идет ниже, после строчки "cat /var/cron/tabs/root"
то есть:
Код: |
*/1 * * * * /etc/ppp/check-and-reconnect.sh |
сохранить на рабочий стол такое содержимое, в виде текстового файла, но без всяких расширений. Так, как это указано в строчке "cat /var/cron/tabs/root". То есть, в данном случае, у нас должен получиться файл с именем "root", на рабочем столе. А не "root.txt"
c. скопировать файл так, как это указано.
"cp ~/Desktop/root /var/cron/tabs/"
Что бы создать какую-либо директорию, пользуемся командой "mkdir"
пример:
"mkdir /Library/StartupItems/Route"
Настоятельно рекомендую научиться пользоваться редактором "vim".
Он на много удобнее, если знать, как им пользоваться.
Небольшой экскурс по работе с этой программой:
"vim /path/to/file" - открыть файл "/path/to/file".
Кстати, таким образом, можно и создать такой файл, если в директории "to/file" каталога "/path" этого файла еще не было. То есть, как только Вы измените содержимое открытого буфера и сохраните его, файл будет создан автоматом, по этому пути.
":i" (уже в самой программе) - перейти в режим редактирования
"esc" - выйти из какого-либо режима. переход в режим "read only"
К примеру, нам нужно набрать комбинацию ":x", что бы сохранить файл. Если Мы наберем эту комбинацию в режиме редактирования, то мы просто напишем сочетание символов ":" и "w". Так, мы сначала выходим из какого-либо режима и уже после работаем с управляющими символами.
"dd" - удалить строчку, на которой находится курсор
"2dd" - удалить строчку, на которой находится курсор, а также строчку ниже. что такое "3dd" итд, думаю догадаетесь.
":r" - войти в режим замены одного символа. набираете это сочетание, подходите курсором к символу, который хотите заменить и нажимаете нужный симол на клавиатуре". После такой замены, программа снова перейдет в режим "read only".
':R" - переход в режим полной замены. После замены какого-либо символа, программа так и останется в этом режиме, пока Вы не нажмете клавишу "esc".
"yy" - копирование строчки, где находится курсор.
"2yy" - копирование строчки, на которой находится курсор и строчки ниже. далее, догадаетесь.
"" - вставка скопированной строчки. Она будет кинута строкой ниже.
":w" - запись содержимого. сохранение.
":q" - выход
":q!" - выход без сохранения содержимого буфера.
":u" - "undo". Откат на действие назад.
"/Enter" - поиск (Под "Enter" подразумевается такая клавиша на клавиатуре, а не сочетание символов "Enter")
пример:
"/Enterif" - курсор переместится к ближайшему слову "if"
повторное нажатие "/Enter", уже без добавления "if" - поиск следущего слова "if"
остальное - "man vim"
Когда поработаете с пятеркой, десяткой файлов, поймете, что это куда удобнее, чем обычные гуевые редкаторы. Хотя, с виду, так и не скажешь
Итак, начнем.
1.
cat /etc/ppp/check-and-reconnect.sh
Код: | #!/bin/sh
RES=`/sbin/ifconfig ppp0 2>/dev/null`
if [ "$RES" = "" ]; then
/usr/bin/killall pppd
/sbin/ping -c 10 192.168.100.1 #wait, зараза, не работает. поэтому, пинг. поправьте, если что. ожидание #нужно, что бы дождаться уничтожение процесса pppd
#+и я же не знаю, почему был обрыв. отсюда и чистка таблицы, на всякий случай, и ее последущее "восстановление"
#хотя, скрипт можно и переделать.
/sbin/route -n flush
/Library/StartupItems/Route/Route start
/usr/sbin/pptp-up
fi |
все, что написано русским - комментарии. их не писатьони вправе остаться, но учитывая форматирование на форуме (не обязательно и на этом), ктоньть да впишет русское "жесть" в начало новой строки )))
2.
cat /usr/sbin/pptp-up
Код: | #!/bin/sh
/usr/sbin/pppd plugin PPTP.ppp remoteaddress vpn.trc.local \
logfile /var/log/ppp.log user USER password PASSWORD usepeerdns
/sbin/route delete net default
/sbin/route add default 10.60.1.21 |
vpn.trc.local - имя vpn сервера. можно заменить и на ip.
USER - логин для входа через vpn
PASSWORD - пароль для входа через vpn
3.
мой каталог /Library/StartupItems/
ls -l /Library/StartupItems/
total 0
drwxr-xr-x 5 root wheel 170 Jun 16 22:52 Route
ls -l /Library/StartupItems/Route/
total 32
-rwxr-xr-x 1 root wheel 6148 Jun 16 22:52 .DS_Store
-rwxr-xr-x 1 root wheel 1248 Jun 16 22:52 Route
-rwxr-xr-x 1 root wheel 101 Jun 16 22:52 StartupParameters.plist
#
cat /Library/StartupItems/Route/Route
Код: |
#!/bin/sh
##
# Routes
##
. /etc/rc.common
StartService ()
{
##
# Set up Routes.
##
echo "Starting Routes network "
route add -net 10.0.0.0 -netmask 255.0.0.0 10.63.1.1
route add -net 10.60.0.0 -netmask 255.255.0.0 10.63.1.1
route add -net 10.61.0.0 -netmask 255.255.0.0 10.63.1.1
route add -net 10.62.0.0 -netmask 255.255.0.0 10.63.1.1
route add -net 10.64.0.0 -netmask 255.255.0.0 10.63.1.1
route add -net 10.65.0.0 -netmask 255.255.0.0 10.63.1.1
route add -net 192.168.0.0 -netmask 255.255.0.0 10.63.1.1
route add -host 10.60.1.20 10.63.1.1
route add -host 10.60.1.21 10.63.1.1
return 0
}
StopService ()
{
route flush
return 0
}
RestartService ()
{
route flush
route add -net 10.0.0.0 -netmask 255.0.0.0 10.63.1.1
route add -net 10.60.0.0 -netmask 255.255.0.0 10.63.1.1
route add -net 10.61.0.0 -netmask 255.255.0.0 10.63.1.1
route add -net 10.62.0.0 -netmask 255.255.0.0 10.63.1.1
route add -net 10.64.0.0 -netmask 255.255.0.0 10.63.1.1
route add -net 10.65.0.0 -netmask 255.255.0.0 10.63.1.1
route add -net 192.168.0.0 -netmask 255.255.0.0 10.63.1.1
route add -host 10.60.1.20 10.63.1.1
route add -host 10.60.1.21 10.63.1.1
return 0
}
RunService "$1" |
#
#
#Поменяйте на свои маршруты
#
cat /Library/StartupItems/Route/StartupParameters.plist
Код: | {
Description = "Routing LAN";
Provides = ("Route");
Uses = ("Disks");
}
|
4. В настройках сетки вбиваем dns адреса провайдера:
System Preferences>network>Buit-in Ethernet>Configure>DNS Servers:
10.60.1.20
212.15.127.1
Search Domains:
trc.local
Подставляем свои значения.
5.
cat /var/cron/tabs/root
Код: |
*/1 * * * * /etc/ppp/check-and-reconnect.sh |
Можно было бы обойтись и опцией "maxfail 0" и ей подобными, но, тогда, мы не сможем выйти в инет. дефолтный маршрут скинется на шлюз vpn и мы не увидим локалку.
6.
sudo chmod 755 /etc/ppp/check-and-reconnect.sh
sudo chown root:wheel /etc/ppp/check-and-reconnect.sh
sudo chown root:wheel /var/cron/tabs/root
sudo chmod 755 /usr/sbin/pptp-up
sudo chown root:wheel /usr/sbin/pptp-up
sudo chmod -R 755 /Library/StartupItems/Route
sudo chown -R root:wheel /Library/StartupItems/Route
sudo chmod 600 /var/cron/tabs/root
Команды копировать просто. выделите нужный текст, нажмите на таком тексте и подержите с пол секунды так кнопку мыши. Затем, не отпуская кнопку мыши, тащите текст в консоль.
Можно, еще, дать команду "diskutil repairpermissions /". Не помешает.
Файл "/etc/ppp/check-and-reconnect.sh" можно переделать.
К примеру:
Код: | #!/bin/sh
if [ ! -f /Volumes/home/Documents/my/oy_eto_ne_nyzhno ]; then
/usr/bin/killall pppd
exit
fi
RES=`/sbin/ifconfig ppp0 2>/dev/null`
if [ "$RES" = "" ]; then
/usr/bin/killall pppd
/sbin/ping -c 10 192.168.100.1
/sbin/route -n flush
/Library/StartupItems/Route/Route start
/usr/sbin/pptp-up
fi |
Ну, это кому интересно. Можно сделать и "обратное"
Строчку "RES=`/sbin/ifconfig ppp0 2>/dev/null`", в файле /etc/ppp/check-and-reconnect.sh, можно поменять на пинг какого-нибудь ip, типа яндекса.
Или сделать так: Код: |
#!/bin/sh
CHECK_INET=`/sbin/ping -c 10 -o www.yandex.ru`
RES=`/sbin/ifconfig ppp0 2>/dev/null`
if [ "x$CHECK_INET" == "x" ] ; then
/usr/bin/killall pppd
exit
fi
if [ "$RES" = "" ]; then
/bin/sleep 3
/sbin/route -n flush
/Library/StartupItems/Route/Route start
/usr/sbin/pptp-up
fi |
Если пинг не идет, что бы интерфейс ppp автоматически перезагружался.
Вместо www.yandex.ru можно вписать что-нибудь и другое _________________ Учеба - это когда ты столько ешь знаний, что ничего не понимаешь, о чем идет речь. Если же тебе ясна тема предмета, то это не учеба. Это стагнация головного мозга. |
|
Вернуться к началу |
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы можете добавлять приложения в этом форуме Вы можете скачивать файлы в этом форуме
|
Powered by phpBB © 2001, 2005 phpBB Group
|