Категорії
Linux Routers, GW, Internet

PPTP и передача маршрутів windows кліенту

Як відомо, pptp не вміє базово передавати маршрути при підключенні до VPN серверу. Але, можна піти хитріше і спробувати деякі опції з DHCP протоколу, а саме

option ms-classless-routes code 249 = array of unsigned integer 8; 
option rfc3442-classless-routes code 121 = array of unsigned integer 8; 

Чому треба передавати обидві опції? Бо microsoft заміть 121 (яка і була для цього зроблена згідно RFC) використовувала (до Windows XP/2003 включно; всі новіші вже розуміють 121, але перевагу віддають 249) свою, власну – 249.

А тепер, власне, налаштування.

accel-ppp.conf

[modules] 
log_syslog 
pptp 
l2tp 
auth_mschap_v2 
ippool 
sigchld 
chap-secrets 
logwtmp 

[core] 
log-error=/var/log/accel-ppp/core.log 
thread-count=4 

[ppp] 
verbose=1 
min-mtu=1280 
mtu=1400 
mru=1400 
check-ip=1 
single-session=replace 
mppe=require 
ipv4=require 
ipv6=deny 
ipv6-intf-id=0:0:0:1 
ipv6-peer-intf-id=0:0:0:2 
ipv6-accept-peer-intf-id=1 

[lcp] 
lcp-echo-interval=30 
lcp-echo-failure=3 

[auth] 
#any-login=0 
#noauth=0 

[pptp] 
echo-interval=30 
echo-failure=3 
verbose=1 

[l2tp] 
host-name=access-vpn 
verbose=1 

[dns] 
dns1=192.168.70.251 
dns2=192.168.70.252 

[client-ip-range] 
disable 

[ip-pool] 
gw-ip-address=192.168.99.254 
192.168.99.1-253 

[log] 
log-file=/var/log/accel-ppp/accel-ppp.log 
log-emerg=/var/log/accel-ppp/emerg.log 
log-fail-file=/var/log/accel-ppp/auth-fail.log 
log-debug=/var/log/accel-ppp/debug.log 
copy=1 
level=3 

[chap-secrets] 
gw-ip-address=192.168.99.254 
chap-secrets=/etc/ppp/chap-secrets 

[cli] 
telnet=127.0.0.1:2000 
tcp=127.0.0.1:2001 

dnsmasq.conf

dhcp-range=192.168.82.254,static 
dhcp-option=option:router 
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 
dhcp-option=vendor:MSFT,2,1i 

А ось так виглядає передача маршрутів, якщо дивитися через tcpdump:

[root@vpn ~]# tcpdump -nnv -i any port 67 or port 68 
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes 
19:54:46.715522 IP (tos 0x0, ttl 128, id 5523, offset 0, flags [none], proto UDP (17), 
length 328) 
   192.168.99.153.68 > 255.255.255.255.67: BOOTP/DHCP, Request, length 300, htype 8, 
hlen 6, xid 0xa27cfc5f, secs 1536, Flags [none] 
      Client-IP 192.168.99.153 
      Vendor-rfc1048 Extensions 
        Magic Cookie 0x63825363 
        DHCP-Message Option 53, length 1: Inform 
        Client-ID Option 61, length 7: hardware-type 8, 00:53:45:00:00:00 
        Hostname Option 12, length 8: "intruder" 
        Vendor-Class Option 60, length 8: "MSFT 5.0" 
        Parameter-Request Option 55, length 6:           Domain-Name-Server, Netbios-Name-Server, Vendor-Option, Subnet-Mask 
          Classless-Static-Route-Microsoft, Domain-Name 
        Vendor-Option Option 43, length 3: 220.1.0 
19:54:46.716113 IP (tos 0x0, ttl 64, id 10142, offset 0, flags [none], proto UDP (17), 
length 333) 
   192.168.99.254.67 > 192.168.99.153.68: BOOTP/DHCP, Reply, length 305, htype 8, hlen 
6, xid 0xa27cfc5f, secs 1536, Flags [none] 
      Client-IP 192.168.99.153 
      Vendor-rfc1048 Extensions 
        Magic Cookie 0x63825363 
        DHCP-Message Option 53, length 1: ACK 
        Server-ID Option 54, length 4: 192.168.99.254 
        Domain-Name Option 15, length 18: "vpn.server.tld" 
    Classless-Static-Route-Microsoft Option 249, length 24: (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) 
        Vendor-Option Option 43, length 7: 2.4.0.0.0.1.255 
19:54:47.325798 IP (tos 0x0, ttl 128, id 50260, offset 0, flags [DF], proto UDP (17), 
length 306) 
   0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:1a:64:20:3a:c1, length 
278, xid 0x64203adb, Flags [Broadcast] 
      Client-Ethernet-Address 00:1a:64:20:3a:c1 
      Vendor-rfc1048 Extensions 
        Magic Cookie 0x63825363 
        DHCP-Message Option 53, length 1: Discover 
        Lease-Time Option 51, length 4: 4294967295 
        Hostname Option 12, length 8: "64203AC1" 
        Parameter-Request Option 55, length 3:           Subnet-Mask, Default-Gateway, Domain-Name-Server 
^C 
3 packets captured 
3 packets received by filter 
0 packets dropped by kernel 

PS. Стаття не моя, знайшов у мережі інтернет.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP