Итак, исходные данные:
1. Модем ACORP M-56EMSF (худший вариант из всех или почти всех модемов ).
2. Худшая в Питере АТС.
Необходимо поднять DialIn.
Решение:
1. Вывел из роутера com-порт (/dev/tts/1).
2. /tmp/ppp/options.tts.1
Code:
115200
lock
auth
silent
-chap
+pap
xonxoff
local
mtu 296
mru 296
nodefaultroute
192.168.2.1:192.168.2.2
ms-dns 192.168.2.1
lcp-echo-failure 10
lcp-echo-interval 5
persist
maxfail 0
На нормальной АТС значения mtu и mru задавать нет необходимости. У меня с большими интернет почти не работает.
3. /tmp/ppp/chat/dialin
Code:
ABORT "BUSY"
ABORT "ERROR"
ABORT "NO DIALTONE"
ABORT "NO CARRIER"
TIMEOUT 3600
'' \rAT
'OK-+++\c-OK' ATH0
'OK' ATZ0
'OK' 'ATE Q V1'
'OK' 'AT\V1 W2 S0=0 L0 M0 &C1'
RING ''
TIMEOUT 40
RING ATA
CONNECT ''
\~ ''
4. /tmp/ppp/peers/dialin
Code:
connect "/usr/sbin/chat -f /tmp/ppp/chat/dialin"
/dev/tts/1
5. /tmp/ppp/ip-up
Code:
#!/bin/sh
/tmp/ppp/dialin $1 $2 $3 $4 $5 "-A"
killall dnsmasq
sleep 2
dnsmasq -i br0 $1
6. /tmp/ppp/ip-down
Code:
#!/bin/sh
/tmp/ppp/dialin $1 $2 $3 $4 $5 "-D"
killall dnsmasq
sleep 2
dnsmasq
killall pppd
sleep 5
pppd call dialin
7. /tmp/ppp/dialin
Code:
#!/bin/sh
iptables $6 INPUT -i $1 -p ALL -j ACCEPT
iptables $6 OUTPUT -o $1 -p ALL -j ACCEPT
#ICMP
iptables $6 FORWARD -i $1 -p icmp -j ACCEPT
iptables $6 FORWARD -i vlan1 -d $5 -p icmp -j ACCEPT
iptables $6 FORWARD -i vlan2 -d $5 -p icmp -j ACCEPT
iptables $6 FORWARD -i $1 -s $5 --match state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables $6 FORWARD -i $1 -s $5 --match state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables $6 FORWARD -i vlan1 -d $5 --match state --state ESTABLISHED -j ACCEPT
iptables $6 FORWARD -i vlan2 -d $5 --match state --state ESTABLISHED -j ACCEPT
Здесь у меня vlan1 и vlan2 это провайдеры, а на роутере настроена маршрутизация в локалку и часть интернета одного провайдера и в оставшийся интернет другого провайдера.
8. /tmp/ppp/pap-secrets
Code:
# Secrets for authentication using PAP
# client server secret acceptable_local_IP_addresses
login1 * "pass1" *
login2 * "pass2" *
login3 * "pass3" *
login4 * "pass4" *
Здесь перечисляем логины и пароли тех кто будет подключацца.
9. Обязательно делаем
Code:
chmod 600 /tmp/ppp/pap-secrets
10. В post-boot добавляем строчку для запуска того что получилось.
11. В /usr/local/.files добавляем строки
Code:
/tmp/ppp/peers/*
/tmp/ppp/chat/*
/tmp/ppp/options.tts.1
/tmp/ppp/pap-secrets
/tmp/ppp/ip-up
/tmp/ppp/ip-down
/tmp/ppp/dialin
чтобы файлы которые мы создали сохранялись при перезагрузке.
12. Выполняем
Code:
flashfs save && flashfs commit && flashfs enable
для сохранения во flash.
13. Запускаем 14. Пользуемся и радуемся.
З.Ы.: Все это прекрасно у меня работает. Если кто что подправит, то пишите.