LINUX.ORG.RU
решено ФорумAdmin

openwrt nat, /etc/ppp/ip-up не выполняется

 , , ,


0

1

Хочу настроить роутер. Интернет подключается через pptp. Добавил соотвествующую запись в /etc/config/network и настроил /etc/ppp/options.pptp. Соединение подключается, пинг идет, все «ля-ля».
Теперь нужно настроить network address translation. Согласно http://wiki.openwrt.org/doc/howto/vpn.client.pptp#configuring.routing «ip route» можно добавить на скрипт, выполняемый при поднятии vpn /etc/ppp/ip-up (chmod 755). Вот только коннекш поднимается ( поднимаю через ifup vpn), а скрипт не выполняется.
В чем может быть дело? Необходимо ли nat настраивать именно при поднятии впн ( в сети есть ресурсы, которые и без впн должны доступны, если он упал)

★★

Последнее исправление: deathangel908 (всего исправлений: 1)

Необходимо ли nat настраивать именно при поднятии впн ( в сети есть ресурсы, которые и без впн должны доступны, если он упал)

Не обязательно, достаточно поднять при старте системы.

anc ★★★★★
()

/etc/ppp/ip-up (chmod 755). Вот только коннекш поднимается ( поднимаю через ifup vpn), а скрипт не выполняется.

А почему ты решил что он не выполняется?

anc ★★★★★
()
Ответ на: комментарий от anc

Да я туда «запихал» 'echo lol > myfile' и если я его выполняю вручную, то файл появляется. В общем не выполняется 100%)

deathangel908 ★★
() автор топика
Ответ на: комментарий от anc

а как мне маршрут прописать тогда, в файле ip-up <ip_of_the_far_end_of_your_tunnel> я его могу взять как передаваемый параметр (у меня этот айпи выдает днс и с каждым разом он другой)

deathangel908 ★★
() автор топика

На openwrt вместо /etc/ppp/ip-up выполняется /lib/netifd/ppp-up, который запускает все исполняемые файлы из каталога /etc/ppp/ip-up.d/.

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root

Я уже пробовал засовывать и в эту папку, все-равно не выполняются. Они ж должны выполняться, если я коннекшен не через pppd call поднимаю, а его поднимает /etc/init.d/network ? In Kamikaze both ip-up and ip-down are provided. Instead put your scripts in /etc/ppp/ip-up.d and /etc/ppp/ip-down.d respectfully. Make sure they are marked executable.

deathangel908 ★★
() автор топика
Ответ на: комментарий от gentoo_root

Проблема в том, что я не знаю ip конца тунеля до поднятия VPN (

deathangel908 ★★
() автор топика
Ответ на: комментарий от deathangel908

а как мне маршрут прописать тогда, в файле ip-up <ip_of_the_far_end_of_your_tunnel> я его могу взять как передаваемый параметр (у меня этот айпи выдает днс и с каждым разом он другой)

Брр я запутался, маршрут или все-таки nat? Я писал конкретно про nat или от него нужно что-то большего чем masquerade?

anc ★★★★★
()
Ответ на: комментарий от deathangel908

Они ж должны выполняться, если я коннекшен не через pppd call поднимаю, а его поднимает /etc/init.d/network ?

Ну да, тогда pppd вызывается с нужными параметрами, чтобы выполнять именно /lib/netifd/ppp-up, а не /etc/ppp/ip-up. Кстати, я не знаю (и уже не помню), как на более старых версиях оно устроено, я на trunk сижу.

Проблема в том, что я не знаю ip конца тунеля до поднятия VPN (

У меня pppoe, там маршрут default добавляется в скрипте /lib/netifd/ppp-up:

[ -n "$IPREMOTE" ] && proto_add_ipv4_route 0.0.0.0 0 "$IPREMOTE"

Вручную я ничего особенного не настраивал для этого.

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root

Я просто «чайник» в этом деле. Все, что я знаю, это у меня есть рабочий инет на роутере, все что мне нужно - раздать этот инет на локальные машины, а тут приходится читать несколько страниц А4 и разбираться, что каждая команда делает и в каких случаях она нужна. Насколько я понял, чтоб на машинах был инет мне нужно как прописать маршрут, так и настроить NAT, чтоб по этому маршруту пакеты траслировались.

deathangel908 ★★
() автор топика
Ответ на: комментарий от deathangel908

Насколько я понял, чтоб на машинах был инет мне нужно как прописать маршрут, так и настроить NAT, чтоб по этому маршруту пакеты траслировались.

Для NAT в /etc/config/firewall делается секция forwarding. Маршрут у меня прописывается сам уже готовыми скриптами. Не думаю, что для pptp должно что-то сильно отличаться.

gentoo_root ★★★★★
()
Ответ на: комментарий от deathangel908

По поводу nat в твоем же мануале было:

Also note, all these commands you can add to something like /etc/init.d/S70routes (create it). Though you have no ppp0 interface upon S70routes execution, it will work nevetherless. In this case you also do not need to remove these rules in ip-down. You can just add these lines to your S70routes:
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.168.0/24 -d 0/0 -j MASQUERADE

Где 192.168.168.0/24 замени на свою внутреннюю сеть, а ppp0 на интерфейс туннеля если он другой (можно для всех интерфейсов ppp, тогда напиши ppp+)
Также в зависимости от других твоих правил iptables возможно надо добавить
iptables -A FORWARD -o ppp0 -s 192.168.168.0/24 -j ACCEPT

Для работы локалки без туннеля, добавь такие же правила только ppp0 замени на внешний интерфейс, например на eth1

anc ★★★★★
()
Ответ на: комментарий от gentoo_root

Маршрут у меня прописывается сам уже готовыми скриптами

Я конечно не большой зннаток openwrt, но разве добавление строки defaultroute в
/etc/ppp/options.pptp не спасает?

anc ★★★★★
()
Ответ на: комментарий от anc

Я конечно не большой зннаток openwrt, но разве добавление строки defaultroute в
/etc/ppp/options.pptp не спасает?

Если так сделать, то pppd сам настроит маршрут по умолчанию. В openwrt по дефолту сделано иначе, там pppd запускается с nodefaultroute, а маршрут добавляется в скрипте ppp-up (у меня на роутере так, по крайней мере).

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root

итак, двигаемся дальше. 3 магическими коммандами я поднял NAT

/etc/ppp/ip-up.d/ip-up
...
iptables -A forwarding_rule -o $1 -j ACCEPT
iptables -A forwarding_rule -i $1 -j ACCEPT
iptables -t nat -A postrouting_rule -o $1 -j MASQUERADE
Аллилуйя инет появился на компе, но: половина сайтов загружается нормально, половина «тупит», некоторые вообще не грузятся
Ну например, на youtube и google.com нормально заходит. Ролики на ютьюбе быстро грузятся без никаких приколов. На mail.ru то заходит, то не заходит, либо грузится минуты 2. На speedtest.net не заходит вообще. Хотя ВСЕ сайты норм пингуются.

С компа:

wget http://www.speedtest.net/
--2014-06-18 19:37:29--  http://www.speedtest.net/
Resolving www.speedtest.net (www.speedtest.net)... 93.184.219.82
Connecting to www.speedtest.net (www.speedtest.net)|93.184.219.82|:80... connected.
HTTP request sent, awaiting response...
и так до бесконечности

С роутера: wget сразу закачивает без задержек.

deathangel908 ★★
() автор топика
Ответ на: комментарий от deathangel908

Предполагаю что проблема в mtu. Добавь в iptables правило
iptables –t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu.
btw если действительно проблема в mtu это легко проверить понизив его на интерфейсе компа ( который за роутером )

anc ★★★★★
()
Ответ на: комментарий от deathangel908

Если это действительно проблема в MTU, то в openwrt можно добавить строку:

option mtu_fix '1'

в /etc/config/firewall в зону, соответствующую pptp-подключению, это будет аналогично правилу iptables, которое предложил anc.

gentoo_root ★★★★★
()
Ответ на: комментарий от anc

Всем спасибо за помощь, помогло iptables mtu. Только почему-то скорость на vpn на openwrt скорость максимум 3МБайт, даже без торрентов ( на томже speedtest.net) Обычно люди ставят линукс на роутер дабы скорость возрастала. А у меня наоборот ;( Но это уже другая история)

deathangel908 ★★
() автор топика
Ответ на: комментарий от deathangel908

На офф прошивке 10МБ было даже на торрентах, оказывается все-таки поприетарщина рулит в этом плане

deathangel908 ★★
() автор топика
Ответ на: комментарий от deathangel908

Обычно люди ставят линукс на роутер дабы скорость возрастала. А у меня наоборот ;(

Тебя обманули )
Первое: там скорее всего и так было ядро линукс.
Второе: ставят для получения больших возможностей от коробки ( btw ты так и не написал какой)
Третье: Посмотри tcpdump на внешних интерфейсах, м.б. тебя тупо ддосят, если у тебя все открыто, поэтому и скорость падает.

anc ★★★★★
()
Ответ на: комментарий от anc

wr1043nd. в '$top' 2 процесса сжирают все цп. как загрузку включаю какуе-то. отключаю загрузку ~2%, так что скорее всего пптп такой слооооу. мб настройки впн нетакие (у нас даже админ походу не знает какие они, у него екзе файл для клиентов впн коннекш поднимает на винде) в tcpdump через пптп все идет компрессед, лень было сегодня разбирать внутренности пакетов/

deathangel908 ★★
() автор топика
Ответ на: комментарий от gentoo_root

А как сделать чтоб все сетевые ресурсы были доступны? Они как-то по разному себя ведут. Я же не должен для каждого сетевога ресурса отдельно что-то прописывать(а если их 10000?, на стоковой прошивке TP-link, я ток впн подключение добавил и все работало)
Днс недоступен???

ping video.ns
ping: unknown host video.ns 
Айпи неправильный, должен быть локальный
ping www.nexus.cn.ua
PING www.nexus.cn.ua (193.105.201.10) 56(84) bytes of data. 
нет ответа
правильный айпи, он доступа нету (Но иногда есть, Оо)
ping chat.ns
PING chat.ns (172.25.1.111) 56(84) bytes of data. 
нет ответа


все, что я сделал это etc/iproute2/rt_tables

10 vpn
/etc/ppp/ip-up.d/ip-up
#!/bin/sh
# parameters
# $1 the interface name used by pppd (e.g. ppp3)
# $2 the tty device name
# $3 the tty device speed
# $4 the local IP address for the interface
# $5 the remote IP address
# $6 the parameter specified by the 'ipparam' option to pppd

logfile=/var/log/pptp.log
echo "`date` $0 $1 $2 $3 $4 $5 $6" >> $logfile

case "$6" in
 peer-name1)
 A="/usr/sbin/iptables -t filter -I FORWARD -o $1 -j ACCEPT"
 B="/usr/sbin/iptables -t nat -A POSTROUTING -o $1 -j MASQUERADE"
 C="/sbin/route add -net 10.0.0.0 netmask 255.0.0.0 $1"
 $A
 echo " $? $A" >> $logfile
 $B
 echo " $? $B" >> $logfile
 $C
 echo " $? $C" >> $logfile
 ;;
 *)
esac

iptables -A forwarding_rule -o $1 -j ACCEPT
iptables -A forwarding_rule -i $1 -j ACCEPT
iptables -t nat -A postrouting_rule -o $1 -j MASQUERADE
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

exit 0
/etc/config/network
config interface 'wan'
        option ifname 'eth0.2'
        option proto 'dhcp'
        option macaddr 'bc:5f:f4:7c:42:49'

config interface 'vpn'
        option ifname 'pptp-vpn'
        option proto 'pptp'
        option username 'nightmare'
        option password 'nightmare'
        option server 'vpn.ns'
        option mtu 1400

deathangel908 ★★
() автор топика
Ответ на: комментарий от deathangel908

Доступа нету как из роутера, так и из локальных машин. Вот опять пропинговал

ping www.nexus.cn.ua
PING ns.nexus.cn.ua (172.25.1.250) 56(84) bytes of data.
нет ответа
уже айпи нормальный, ток все-равно доступа нету( раньше айпи другой был)

deathangel908 ★★
() автор топика
Ответ на: комментарий от deathangel908

И еще вопрос, у меня на компе стоит сетевая карта, в ней мак адрес изменить нельзя, по этому маку мне выдается айпишник. Чтоб у мня был интернет на роутере, я изменял этот мак на WAN интерфейсе. Но если я подключаю комп к роутеру, то в сети получается 2 одинаковых мак адреса, и роутер зависает, пока я не отключу WAN кабель, либо комп. На стоковой прошивке мне не проходилось об этом задумываться, возможно и на openwrt можно как-то решить.

deathangel908 ★★
() автор топика
Ответ на: комментарий от deathangel908

я профтыкал, что они в другой подсети) решил, просто добавив маршрут. ip route add 172.25.1.0/24 via 172.25.25.1. Мак адресс разрешил добавив, в /etc/network/config

...
switch
  option name 'switch0'
  ...
  option enable_learning 0 #ЭТУ СТРОКУ
  ...
deathangel908 ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.