misc/122068: ppp can not set the correct interface with pptpd

Chun-Tien Chang tcs at kitty.2y.idv.tw
Tue Mar 25 14:30:02 UTC 2008


>Number:         122068
>Category:       misc
>Synopsis:       ppp can not set the correct interface with pptpd
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Mar 25 14:30:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Chun-Tien Chang
>Release:        FreeBSD 7.0 i386 Release
>Organization:
National Tsing Hua University
>Environment:
FreeBSD NAT.NTHUCC.2y.idv.tw 7.0-RELEASE FreeBSD 7.0-RELEASE #2: Sat Mar 22 02:38:46 CST 2008     root at NAT.NTHUCC.2y.idv.tw:/usr/obj/usr/src/sys/NAT.NTHUCC  i386
>Description:
When the Windows PPTP Client dial to the poptop vpn server,
the user-ppp can not set the routing table to the correct interface.


>How-To-Repeat:
install ports/net/poptop (poptop-1.3.4_1)

==ppp config==

/etc/ppp/ppp.conf
pptp:
 set timeout 0
 set log phase chat connect lcp ipcp command
 set dial
 set login
 set ifaddr 10.2.1.254 10.2.1.100-10.2.1.199 255.255.255.255
 set server /tmp/loop "" 0177
 set accmap  ffffffff
 enable proxy
 enable proxyall
 enable mschapv2
 accept mschapv2
 enable mppe
 enable lqr
 enable dns
 accept dns
 set dns 10.2.1.254
 allow mode direct

# ifconfig -a
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:50:56:a1:56:c7
        inet6 fe80::250:56ff:fea1:56c7%em0 prefixlen 64 scopeid 0x1
        inet 140.114.60.105 netmask 0xffffff00 broadcast 140.114.60.255
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:50:56:a1:38:13
        inet6 fe80::250:56ff:fea1:3813%em1 prefixlen 64 scopeid 0x2
        inet 10.2.1.254 netmask 0xffffff00 broadcast 10.2.1.255
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active


===the original routing table===

# netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use    Mtu    Netif Expire
default            140.114.60.254     UGS         0  1741539   1500      em0
10.2.1.0/24        link#2             UC          0        0   1500      em1
10.2.1.242         00:50:56:a1:0d:ce  UHLW        1       77   1500      em1    948
10.2.1.251         00:50:56:a1:2e:32  UHLW        1        4   1500      em1    297
10.2.1.254         00:50:56:a1:38:13  UHLW        1     9395  16384      lo0
127.0.0.1          127.0.0.1          UH          0    14555  16384      lo0
140.114.60.0/24    link#1             UC          0        0   1500      em0
140.114.60.254     00:0f:8f:7e:dc:40  UHLW        2        0   1500      em0   1029


===after dial up to pptpd routing table===

# netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use    Mtu    Netif Expire
default            140.114.60.254     UGS         0  1741769   1500      em0
10.2.1.0/24        link#2             UC          0        0   1500      em1
10.2.1.144         10.2.1.254         UGH         0        0   1398      em1
10.2.1.242         00:50:56:a1:0d:ce  UHLW        1       77   1500      em1    786
10.2.1.250         00:50:56:b9:43:25  UHLW        1        8   1500      em1   1197
10.2.1.251         00:50:56:a1:2e:32  UHLW        1        4   1500      em1    135
10.2.1.254         00:50:56:a1:38:13  UHLW        2     9395  16384      lo0
127.0.0.1          127.0.0.1          UH          0    14555  16384      lo0
140.114.60.0/24    link#1             UC          0        0   1500      em0
140.114.60.254     00:0f:8f:7e:dc:40  UHLW        2        0   1500      em0   1199

the result is different with freeebsd 6.2 release,
in freebsd 6.2 , the 10.2.1.144 will route to interface tun0
in freebsd 7.0 , it routes to em1 ????why?

# ifconfig -a
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:50:56:a1:56:c7
        inet6 fe80::250:56ff:fea1:56c7%em0 prefixlen 64 scopeid 0x1
        inet 140.114.60.105 netmask 0xffffff00 broadcast 140.114.60.255
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:50:56:a1:38:13
        inet6 fe80::250:56ff:fea1:3813%em1 prefixlen 64 scopeid 0x2
        inet 10.2.1.254 netmask 0xffffff00 broadcast 10.2.1.255
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1398
        inet 10.2.1.254 --> 10.2.1.144 netmask 0xffffffff
        inet6 fe80::250:56ff:fea1:56c7%tun0 prefixlen 64 scopeid 0x7
        Opened by PID 4408

>Fix:
there are two way to fix it.
1. use differenet subnet for vpn. Don't use the same subnet for vpn routing.
   user-ppp will set the correct routing table.

2. downgrade to FreeBSD 6.2



>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list