解决L2TP VPN 分支和中心端建立隧道后,内网不能通信问题。

发布时间:  2013-11-21 浏览次数:  723 下载次数:  0
问题描述
   某客户配置USG5100防火墙做L2TP VPN中心端,用USG2100做L2TP VPN的分支,实现从分支拨号到中心端和中心端内网通信。
   目前客户配置好L2TP vpn后,隧道可以建立,但分支不能ping通中心端,中心端也不能和分支内网通信。
设备拓扑如下:



 
告警信息
从LAC端ping中心端PC后,查看会话,发现VPN数据经过了NAT转换。

[LAC]display firewall session table verbose source inside 192.168.114.200
14:46:08  2013/11/18
Current Total Sessions : 1
  icmp  VPN:public --> public
  Zone: trust--> untrust  TTL: 00:00:20  Left: 00:00:16
  Interface: Virtual-Template0  NextHop: 192.168.0.3  MAC: 00-e0-fc-10-9f-b8
  <--packets:0 bytes:0   -->packets:1 bytes:60
  192.168.114.200:512[192.168.1.200:2050]-->192.168.0.3:2048
处理过程
根据以上排查结论,对LAC和LNS的配置分别作了修改,在NAT中拒绝掉到对端内网地址的数据。使之不走NAT转换。
在LAC和LNS端分别配置路由。

关键配置如下:

LAC:

l2tp enable

interface Virtual-Template0
ppp authentication-mode chap pap      
ppp chap user zhaomeng
ppp chap password cipher %$%$cz|Z:uOR|OsKDyVh'I~,/G>5%$%$
ppp pap local-user zhaomeng password cipher %$%$AR{EOf4Uq'q<hl)(-<{8/=4+%$%$
alias L2TP_LAC_0
ip address ppp-negotiate
call-lns local-user zhaomeng binding l2tp-group 2

l2tp-group 2
undo tunnel authentication
tunnel name client01
start l2tp ip 27.191.158.94 fullusername zhaomeng
tunnel timer hello 1000

#
ip route-static 0.0.0.0 0.0.0.0 Ethernet0/0/0 192.168.1.1
ip route-static 192.168.0.0 255.255.255.0 Virtual-Template0

#
nat-policy interzone trust untrust outbound
policy 1
  action no-nat
  policy source 192.168.114.0 mask 24
  policy destination 192.168.0.0 mask 24


policy 0
  action source-nat
  policy source 192.168.114.0 mask 24
  easy-ip Ethernet0/0/0                
#

LNS:

l2tp enable
#
interface Virtual-Template0
ppp authentication-mode chap pap
ppp ipcp dns 222.222.202.202 222.222.222.222
alias L2TP_LNS_0
ip address 172.16.0.1 255.255.255.0
remote address pool
#
l2tp-group 2
undo tunnel authentication
allow l2tp virtual-template 0
tunnel name server
tunnel timer hello 1000
#
aaa
local-user vpn006 password cipher %$%$KpZ%&bQn!$zfDPXg("p8id[R%$%$
local-user vpn006 service-type ppp    
local-user vpn006 level 0
ip pool 0 172.16.0.50 172.16.0.254
#

ip route-static 0.0.0.0 0.0.0.0 Vlanif100 27.191.158.93
ip route-static 172.16.0.0 255.255.255.0 Virtual-Template0
ip route-static 192.168.114.0 255.255.255.0 172.16.0.59

#
nat-policy interzone trust untrust outbound
policy 1
  action no-nat
  policy source 192.168.0.0 mask 24
  policy destination 192.168.114.0 mask 24


policy 0
  action source-nat
  policy source 192.168.114.0 mask 24
  easy-ip Ethernet0/0/0
#

在测试,两端就可以通了。直接走的L2TP VPN隧道。

[USG]display firewall session table verbose source inside 192.168.114.200
14:46:50  2013/11/18
Current Total Sessions : 5
  http  VPN:public --> public
  Zone: trust--> local  TTL: 00:10:00  Left: 00:09:29
  Interface: InLoopBack0  NextHop: 127.0.0.1  MAC: 00-00-00-00-00-00
  <--packets:1 bytes:235   -->packets:2 bytes:614
  192.168.114.200:2711-->192.168.114.1:80


根因
   从会话信息来看,可以初步判断LAC端数据是走的NAT,没有匹配L2TP VPN隧道。因此需要在NAT中做一条NO-NAT的策略。

1.LAC访问LNS端,除了配置基本的L2TP VPN参数以为,还需要配置一条到中心端的路由。


ip route-static 192.168.0.0 255.255.255.0 Virtual-Template0

2.要LNS可以访问LAC内网,需要在LNS上配置一条到LAC内网的路由,下一跳是LAC从LNS端获取的地址,有多条LAC时LNS配置的路由,掩码需要是32位。仅有一个LAC,掩码配置成对端内网向匹配的掩码即可。


ip route-static 192.168.114.0 255.255.255.0 172.16.0.59



建议与总结

END