Задать вопрос

Как изменить default route на ddwrt?

Пытаюсь настроить PPTP.
Сервер свой. Настроил, всё коннектится, ошибок кроме Arp нет.
spoiler

root@vivaldi ~ # journalctl -u pptpd -f
May 28 18:15:27 vivaldi pptpd[16751]: CTRL: Starting call (launching pppd, opening GRE)
May 28 18:15:28 vivaldi pppd[16752]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.
May 28 18:15:28 vivaldi pppd[16752]: pppd 2.4.9 started by root, uid 0
May 28 18:15:28 vivaldi pppd[16752]: Using interface ppp0
May 28 18:15:28 vivaldi pppd[16752]: Connect: ppp0 <--> /dev/pts/0
May 28 18:15:28 vivaldi pppd[16752]: peer from calling number myipprovider authorized
May 28 18:15:28 vivaldi pppd[16752]: MPPE 128-bit stateless compression enabled
May 28 18:15:28 vivaldi pppd[16752]: Cannot determine ethernet address for proxy ARP
May 28 18:15:28 vivaldi pppd[16752]: local  IP address 192.168.1.1
May 28 18:15:28 vivaldi pppd[16752]: remote IP address 192.168.1.234



Сейчас на роутере по ip route
default via 10.70.14.1 dev eth0 
10.70.14.0/24 dev eth0 scope link  src 10.70.14.62 
myserverip via 10.70.14.1 dev eth0  src 10.70.14.62 
127.0.0.0/8 dev lo scope link 
192.168.0.0/24 dev br0 scope link  src 192.168.0.1 
192.168.1.1 dev ppp0 scope link  src 192.168.1.234


Пробовал разными скриптами через вэбку в разделе Startup, например
spoiler

(
while true; do
  # Проверяем, есть ли default route вообще
  if ! ip route | grep -q "^default "; then
    # Если ppp0 есть — ставим дефолт на него
    if ip addr show ppp0 2>/dev/null | grep -q "inet "; then
      ip route add default dev ppp0
      # Перенастраиваем NAT
      iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
      iptables -t nat -C POSTROUTING -o ppp0 -j MASQUERADE 2>/dev/null || \
      iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
      ip route flush cache
    else
      # Если ppp0 нет — возвращаем дефолт на WAN
      ip route add default via 10.70.14.1 dev eth0
      iptables -t nat -C POSTROUTING -o eth0 -j MASQUERADE 2>/dev/null || \
      iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
      iptables -t nat -D POSTROUTING -o ppp0 -j MASQUERADE
      ip route flush cache
    fi
  fi
  sleep 10
done
) &


или
spoiler

for i in $(seq 1 60); do
  if ip addr show ppp0 2>/dev/null | grep -q "inet "; then
    break
  fi
  sleep 2
done
while ip route | grep -q "^default "; do
  ip route del default
done
ip route add default dev ppp0
iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
ip route flush cache


Получаю либо вообще дефолта нет+ppp0 тоже, либо как во втором случае меняется (на короткий момент даже зашёл на ip сервис проверить и получил ip моего ppptd сервака), но через несколько секунд отваливается (то есть пропадает дефолт без замены на стандарт)
  • Вопрос задан
  • 29 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
BlagoYar
@BlagoYar Автор вопроса
Настройки /etc/pptpd.conf
localip 10.8.0.1
remoteip 10.8.0.2-20

Настройки (изменённые/добавленные/закомментированные)/etc/ppp/pptpd-options
# BSD licensed ppp-2.4.2 upstream with MPPE only, kernel module ppp_mppe.o
# {{{
# refuse-pap
# refuse-chap
# refuse-mschap
# Require the peer to authenticate itself using MS-CHAPv2 [Microsoft
# Challenge Handshake Authentication Protocol, Version 2] authentication.
# require-mschap-v2
# Require MPPE 128-bit encryption
# (note that MPPE requires the use of MSCHAP-V2 during authentication)
require-mppe-128
# }}}
require-mschap-v2

ms-dns 1.1.1.1
ms-dns 1.0.0.1


Добавил на сервере
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -A FORWARD -i ppp0 -o enX0 -j ACCEPT
iptables -A FORWARD -i enX0 -o ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o enX0 -j MASQUERADE
ip route add 0.0.0.0/1 via 172.31.32.1 dev enX0
ip route add 128.0.0.0/1 via 172.31.32.1 dev enX0


Добавил на роутере
ip route add 0.0.0.0/1 via 10.8.0.1 dev ppp0
ip route add 128.0.0.0/1 via 10.8.0.1 dev ppp0
iptables -A FORWARD -i ppp0 -j ACCEPT
iptables -A FORWARD -o ppp0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE

Где 192.168.0.0/24 ваша локальная сеть.
В MPPE Encryption вставить mppe required,no40,no56,stateless

ПС. Чтобы маршруты на сервере не слетали, как в моём случае (AWS Free Tier), в /etc/cloud/cloud.cfg.d создать файл 99-disable-network-config.cfg с содержимым network: {config: disabled}
В /etc/netplan/50-cloud-init.yaml сделать так
network:
    ethernets:
        enX0:
            dhcp4: true
            dhcp6: false
            match:
                macaddress: 06:9e:05:f3:b5:37
            set-name: enX0
            routes:
              - to: 0.0.0.0/1
                via: 172.31.32.1
              - to: 128.0.0.0/1
                via: 172.31.32.1
    version: 2


Опять же как в моём случае, если на облачном VPS их ядро не поддерживает pptp, поэтому
apt install linux-image-amd64
uname -a
/etc/default/grub
GRUB_DEFAULT="Advanced options for Debian GNU/Linux>Debian GNU/Linux, with Linux 6.1.0-37-amd64"
update-grub
reboot

Поправить нужную версию установленного ядра.

Хотя зря старался, скорость ~8Мбит/8Мбит, пробовал отключать шифрование стало вообще ~1.5/2, так же пробовал играться с MTU/MRU.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы