Настройка маршрутов на PPTP/L2TP клиенте
Ситуация такая: имеется accel-ppp в роли PPTP/L2TP сервера. В рамках поставленной задачи пока работает без проблем, кроме одной: необходимо после установки соединения выдать клиентам определенные маршруты таким образом, чтобы пакеты на определенные диапазоны адресов шли на «старый» шлюз. Это необходимо, чтобы трафик (на назовем их "внутренними") адреса шел мимо vpn - так же, как и до установки соединения.
Проблема выдачи маршрутов, судя по опыту других товарищей, вполне решается с помощью DHCP-сервера, например как тут, однако я столкнулся с 2мя вопросами:
1. настройка DHCP сервера. dnsmasq имеет DNSMASQ_OPTS='-q -p 0' (чтобы отключить DNS), конфиг прост:
bind-interfaces except-interface=bond0 listen-address=10.3.0.1 # PPP "gateway" dhcp-range=10.3.0.1,static dhcp-option=121,192.168.70.0/24,192.168.99.254,192.168.75.0/24,192.168.99.254,10.0.0.0/24,192.168.99.254 # это не реальные маршруты, просто для теста dhcp-option=249,192.168.70.0/24,192.168.99.254,192.168.75.0/24,192.168.99.254,10.0.0.0/24,192.168.99.254
в логах вижу:
Aug 9 01:49:37 dnsmasq[7387]: started, version 2.57 DNS disabled Aug 9 01:49:37 dnsmasq[7387]: compile time options: no-IPv6 GNU-getopt no-DBus no-I18N DHCP no-TFTP no-IDN Aug 9 01:49:37 dnsmasq-dhcp[7387]: DHCP, static leases only on 10.3.0.1, lease time 1h
вроде как все правильно, но может я и неправ )
при установлении PPP соединения клиентом запрос есть (tcpdump -X -i any port 67 or port 68)
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 68 bytes 01:58:43.806598 IP 10.3.0.5.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request, length 300 0x0000: 4500 0148 004c 0000 8011 2f52 0a03 0005 E..H.L..../R.... 0x0010: ffff ffff 0044 0043 0134 844e 0108 0000 .....D.C.4.N.... 0x0020: b623 6cd2 0900 0000 0a03 0005 .#l.........
но ответа dnsmasq я не вижу. Это первая проблема.
2. теоретическая проблема. Как и что нужно выдать клиенту, чтобы он прописал определенные маршруты на "старый" шлюз?
в openvpn это решается с помощью передачи клиенту конфигурационных опций вроде такого:
push "redirect-gateway def1" push "route xx.xx.xx.xx 255.255.255.0 net_gateway" push "route yy.yy.yy.yy 255.255.128.0 net_gateway"
возможно ли организовать подобное для PPTP/l2TP?
- Для комментирования войдите или зарегистрируйтесь
http://www.opennet.ru/openfor
http://www.opennet.ru/openforum/vsluhforumID10/4943.html
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
а в чем сакральный смысл
а в чем сакральный смысл приводить еще раз ссылку, уже размещенную в собственно вопросе?
попробую немного развернуть
попробую немного развернуть вопрос 2 как наиболее важный:
в ссылаемой статье рассматривается вопрос "как пустить через vpn не все, а лишь определенные диапазоны". В моем случае ситуация обратная: "как пустить через vpn всё, но определенные диапазоны чтобы шли по «старому» маршруту" - то есть через шлюз, бывший дефолтным до его переконфигурации клиентом после установки vpn-соединения. Причем сделать это не скриптами на стороне клиента.
>DHCP, static leases only on
а lease этот есть в /etc/ethers на этот MAC?
в pptpd точно НЕЛЬЗЯ, как в accel-ppp не знаю, но ЕМНИП виндовые клиенты такого не поддерживают
Нейтральность - высшее достижение сознания!
Да, с leases я проглядел,
Да, с leases я проглядел, благодарю. По настройке DHCP сервера все более-менее разъяснилось в процессе; однако без скриптов на стороне клиента задачу в целом на данный момент признаю не имеющей решения.
необходимо после установки
т.е раздать роутинг.
Что опять таки приводит к вышеизложенному способу
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
вопрос был в том, чтобы
вопрос был в том, чтобы сервером выдать маршрут на некий известный не серверу а только клиенту nexthop. Известный серверу выдать конечно же не проблема.
И в чем проблема выдавать
И в чем проблема выдавать маршруты по DHCP?
Нейтральность - высшее достижение сознания!
Как я уже говорил - нужно
Как я уже говорил - нужно направить весь трафик, кроме определенных подсетей, в туннель. Что требует прописывания маршрутов вида подсеть/xx -> старый_шлюз. Старый_шлюз, разумеется, серверу неизвестен.
тогда только клиентом,
тогда только клиентом, очевидно же
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
с одной стороны вроде бы
с одной стороны вроде бы очевидно а с другой - не вредно узнать, так ли это на самом деле. Ну что ж, теперь я почти уверен в очевидности )