Dual Access PPTP
From DD-WRT Wiki
Revision as of 17:01, 8 December 2009 (edit) Anymore (Talk | contribs) ← Previous diff |
Current revision (12:19, 9 January 2011) (edit) (undo) Koshika (Talk | contribs) |
||
(One intermediate revision not shown.) | |||
Line 17: | Line 17: | ||
Где-то видел писали, что sed в dd-wrt вырезан на самом деле это не так в стандартной прошивке он присутствует и прекрасно отрабатывает. Проверить действие скрипта можно в консоли с помощью | Где-то видел писали, что sed в dd-wrt вырезан на самом деле это не так в стандартной прошивке он присутствует и прекрасно отрабатывает. Проверить действие скрипта можно в консоли с помощью | ||
- | | + | cat /tmp/pptpd_client/ip-up |
должна присутствовать строка route del $5 | должна присутствовать строка route del $5 | ||
Line 136: | Line 136: | ||
# http://forum.tktor.ru/index.php?t=838&o=0&st=0 | # http://forum.tktor.ru/index.php?t=838&o=0&st=0 | ||
+ | |||
+ | Способ №:3 | ||
+ | |||
+ | При статическом IP: | ||
+ | На закладке WAN Setup выбираем PPTP и заполняем в соответствии с тем, что дал провайдер (IP-адрес / логин / пароль /адрес vpn сервеа) | ||
+ | |||
+ | Далее Administration --> Management --> Устанвить '''Cron''' в режим enable | ||
+ | |||
+ | Далее Administration --> Command и вбиваем скрипт в '''Startup''' примерно следующего содержания: | ||
+ | |||
+ | #!/bin/sh | ||
+ | mkdir -p /tmp/cron.d | ||
+ | cat <<"ENDOFFILE" > /tmp/fix-pptp-settings.sh | ||
+ | if [ "$1" = "--check" ];then | ||
+ | if [ "$(nvram get wan_gateway)" != "XXX.XXX.XXX.XXX" ]; then | ||
+ | while read param; do | ||
+ | nvram set $param | ||
+ | sleep 2 | ||
+ | done <<EOF | ||
+ | wan_gateway=XXX.XXX.XXX.XXX | ||
+ | wan_netmask=XXX.XXX.XXX.XXX | ||
+ | wan_ipaddr=XXX.XXX.XXX.XXX | ||
+ | EOF | ||
+ | fi | ||
+ | elif [ "$1" = "--daemon" ];then | ||
+ | while true; do | ||
+ | $0 --check | ||
+ | sleep 60 | ||
+ | done | ||
+ | fi | ||
+ | ENDOFFILE | ||
+ | chmod 700 /tmp/fix-pptp-settings.sh | ||
+ | sh -c "/tmp/fix-pptp-settings.sh --daemon &" | ||
+ | |||
+ | Естественно не забыть поставить вместо '''XXX.XXX.XXX.XXX''' свои значения ip-адреса, маски и шлюза. | ||
+ | |||
+ | Данный скрипт будет запускаться по cron'у раз в минуту и при отвале VPN cкрипт установит все значения на заданные, чтобы снова подключиться через vpn. | ||
+ | |||
+ | ------- | ||
+ | |||
+ | '''Источник:''' | ||
+ | # http://www.e1.ru/talk/forum/read.php?f=27&i=171067&t=171067 | ||
[[Category:Русская документация]] | [[Category:Русская документация]] |
Current revision
Способ №1:
На закладке WAN Setup выбираем Static или DHCP (в зависимости от того, что дал провайдер), далее Services --> PPTP --> PPTP Client (так же заполняем в зависимости что дал провайдер, если нет шифрования - MPPE Encryption оставляем пустой).
Далее Advanced Routing --> Static Routing вбиваем ip vpn-сервера (если он представлен в виде vpn.provaider.ru, ip посмотреть можно через nslookup) через свой шлюз, далее здесь же локальные маршруты и при необходимости на DNS.
Для Корбины теперь необходимо удалить маршрут на vpn после подъема pptp, для этого идем Administration --> Commands и вбиваем такой скрипт:
(while [ ! -f /tmp/pptpd_client/ip-up ]; do sleep 10; done cp /tmp/pptpd_client/ip-up /tmp/ipup.tmp sed -e '/keloke/a \ route del $5' < /tmp/ipup.tmp > /tmp/pptpd_client/ip-up route del default) &
Где-то видел писали, что sed в dd-wrt вырезан на самом деле это не так в стандартной прошивке он присутствует и прекрасно отрабатывает. Проверить действие скрипта можно в консоли с помощью
cat /tmp/pptpd_client/ip-up
должна присутствовать строка route del $5
Нажимаем Save Startup, перезагружаемся и по идее должно все работать.
Проверить что туннель поднялся можно через команду ifconfig в консоли, должен появиться интерфейс ppp0.
bologov
Источник:
Способ №2:
0. Подготовка. Для начала надо сменить MAC адрес что смотрит в Вашу сеть
ifconfig vlan1 down ifconfig vlan1 hw ether xx:xx:xx:xx:xx:xx ifconfig vlan1 up
Определить какой именно интерфейс нам нужен можно посмотрев в Status->Sys-Info в блоке "Router" запоминаем MAC адрес WAN интерефейса . Отдаём команду ifconfig и ищем vlan[0-9] у которого MAC совпадает с запомненым раньше :) именно этот интерфейс и нужно тормозить для смены MAC адреса нашего роутера.
Настраивать будем с использованием следующих параметров (для каждого отдельного случая могут различаться):
Сеть: 192.168.100.0/24 IP адрес внутри сети: 192.168.100.243 Роутер для подсети: 192.168.100.1 Интерфейс в сеть: vlan1 Наша внутренняя сеть: 172.16.0.0/24 IP адрес нашего роутера: 172.16.0.1
1. Настраиваем соединение PPPoE. Идём Setup->Basic setup выбираем в блоке "WAN Connection Type" , из выпадающего списка "Connection Type" выбираем "PPPoE" . Достаточно заполнить только поля "User Name" и "Password" , все остальные чекбоксы выставляем в Disabled ... Применяем настройки , если всё хорошо (надеюсь что хорошо) в статусе (в правом верхнем углу) WAN будет указывать на внешний IP адрес вида 94.243.х.х , если оно всё так :) значит у нас есть рабочее соединение с инетом ^_^ идём дальше .
2. Настраиваем локальную сеть. Дальше придётся шаманить из консоли (мне удобнее, т.к. нету задержки при исполнении команд, или идём в Administration->Commands) ... Чтобы выйти в локалку, необходимо получить плюшевый адрес, поэтому отдаём команды:
- всё что ниже начиная со знака # есть комментарии , их вводить не надо.
killall udhcpc #убиваем DHCP если оно есть udhcpc -i vlan1 -p /var/run/udhcpc.pid -s /tmp/udhcpc #перезапускаем DHCP ifconfig vlan1 #магия кончилась, если всё ок, то тут увидим наш адрес в локалке
Всётаки немного магии как выясняется нужно, дело в том что на тестовом роутере не присваивался IP адрес через DHCP, выход из этого есть только один... как ни странно это статический IP адрес для интерфейса, который смотрит в лоеалюную сеть. Если у вас всё именно так придётся вводить статику... К примеру будем использовать 192.168.100.243 (адрес для каждого отдельного случая будет свой, этот я взял просто из великого рандома)... выполняем команды:
ifconfig vlan1 down ifconfig vlan1 192.168.100.243 netmask 255.255.255.0 ifconfig vlan1 up
В итоге получаем , то с чем не справился DHCP клиент.
3. Настраиваем маршруты.
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.100.1 route add -net 10.0.2.0 netmask 255.255.255.0 gw 192.168.100.1 route add -net 79.173.126.0 netmask 255.255.255.0 gw 192.168.100.1
4. Настраиваем NAT.
iptables -A FORWARD -s 172.16.0.0/24 -j ACCEPT iptables -A FORWARD -d 172.16.0.0/24 -j ACCEPT iptables -t nat -A POSTROUTING -o vlan1 -s 172.16.0.0/24 -j MASQUERADE
5. Загрузочный скрипт. Добавлять скрипты нужно в Administration->Commands .
Startup script Необходимо ввести в поле команд и нажать "Save Startup"
ifconfig vlan1 down ifconfig vlan1 hw ether xx:xx:xx:xx:xx:xx ifconfig vlan1 up sleep 10 ln -s /sbin/rc /tmp/udhcpc && udhcpc -i vlan1 -p /var/run/udhcpc.pid -s /tmp/udhcpc route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.100.1 route add -net 10.0.2.0 netmask 255.255.255.0 gw 192.168.100.1 route add -net 79.173.126.0 netmask 255.255.255.0 gw 192.168.100.1
Ниже альтернативный Startup Script , в случае со статическим IP адресом
ifconfig vlan1 down ifconfig vlan1 hw ether xx:xx:xx:xx:xx:xx ifconfig vlan1 192.168.100.243 netmask 255.255.255.0 ifconfig vlan1 up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.100.1 route add -net 10.0.2.0 netmask 255.255.255.0 gw 192.168.100.1 route add -net 79.173.126.0 netmask 255.255.255.0 gw 192.168.100.1
Firewall script Необходимо ввести в поле команд и нажать "Save Firewall"
iptables -A FORWARD -s 172.16.0.0/24 -j ACCEPT iptables -A FORWARD -d 172.16.0.0/24 -j ACCEPT iptables -t nat -A POSTROUTING -o vlan1 -s 172.16.0.0/24 -j MASQUERADE
К сожалению не всё так безоблачно в нашем мире и при сохранении скрипта для настройки файрвола роутер уходит в глубокий ребут , как лечить не знаю , но у меня получилось его сохранить только после того как я сохранил его в Custom Script ;) почему оно так я незнаю ...
6. Коментарии. Если все пункты выполнены нормально , то у вас рабочий роутер с DualAccess ;) При написании всего этого была использована одна бутылка пива "Asahi" и счастливый пользователь DIR-400 ;) в качестве бета-тестера настроек .
P.S. если вы всётаки дочитали до этого места , то открою страшную тайну ;) досточно выполнить шаг 5 и перезагрузить роутер ...
"Tweak"
Источник:
Способ №:3
При статическом IP: На закладке WAN Setup выбираем PPTP и заполняем в соответствии с тем, что дал провайдер (IP-адрес / логин / пароль /адрес vpn сервеа)
Далее Administration --> Management --> Устанвить Cron в режим enable
Далее Administration --> Command и вбиваем скрипт в Startup примерно следующего содержания:
#!/bin/sh mkdir -p /tmp/cron.d cat <<"ENDOFFILE" > /tmp/fix-pptp-settings.sh if [ "$1" = "--check" ];then if [ "$(nvram get wan_gateway)" != "XXX.XXX.XXX.XXX" ]; then while read param; do nvram set $param sleep 2 done <<EOF wan_gateway=XXX.XXX.XXX.XXX wan_netmask=XXX.XXX.XXX.XXX wan_ipaddr=XXX.XXX.XXX.XXX EOF fi elif [ "$1" = "--daemon" ];then while true; do $0 --check sleep 60 done fi ENDOFFILE chmod 700 /tmp/fix-pptp-settings.sh sh -c "/tmp/fix-pptp-settings.sh --daemon &"
Естественно не забыть поставить вместо XXX.XXX.XXX.XXX свои значения ip-адреса, маски и шлюза.
Данный скрипт будет запускаться по cron'у раз в минуту и при отвале VPN cкрипт установит все значения на заданные, чтобы снова подключиться через vpn.
Источник: