说明:拓扑图如下。R1模拟公司边界路由器,R3模拟远端用户的家用路由器,并分别在这两台路由器上启用PAT;R2模拟ISP,并启用一个Loopback接口来充当公网上的服务器;R4模拟公司内网的主机,来充当WEB服务器。
要求:1、在R1上配置L2TP VPN,使远端的C1能够拨号到该路由器,让C1可以直接使用私有地址来访问公司总部10.1.1.0/24和4.4.4.4/32。
服务器端配置命令:
R1:
conf t int e0/1 ip add 10.1.1.1 255.255.255.0 ip nat inside no shut int e0/0 ip add 12.1.1.1 255.255.255.0 ip nat outside no shut exit access-list 1 permit any ip nat inside source list 1 int e0/0 overload ip route 4.4.4.4 255.255.255.255 10.1.1.4 ip route 0.0.0.0 0.0.0.0 12.1.1.2 //创建自动分配远端用户的IP地址池: R1(config)#ip local pool IPPool 10.1.1.100 10.1.1.200 //创建Virtual-Template接口,并指定参数: R1(config)#interface Virtual-Template 1 R1(config-if)#ip unnumbered ethernet 0/0 R1(config-if)#peer default ip address pool IPPool R1(config-if)#ppp authentication chap ms-chap //开户VPDN(Virtual Private Dialup Network)功能,接受远端呼叫,并指定协议为L2TP: R1(config)#vpdn enable R1(config)#vpdn-group 1 R1(config-vpdn)#accept-dialin R1(config-vpdn-acc-in)#protocol l2tp R1(config-vpdn-acc-in)#virtual-template 1 R1(config-vpdn-acc-in)#no l2tp tunnel authentication R1(config-vpdn)#exit //定义本地用户数据库(用来认证的用户名和密码): R1(config)#username cisco password cisco123
R2:
conf t int e0/0 ip add 12.1.1.2 255.255.255.0 no shut int e0/1 ip add 23.1.1.2 255.255.255.0 no shut int loopback 0 ip add 2.2.2.2 255.255.255.0 no shut exit line vty 0 15 no login exit enable password cisco
R3:
conf t int e0/0 ip add 30.1.1.3 255.255.255.0 ip nat inside no shut int e0/1 ip add 23.1.1.3 255.255.255.0 ip nat outside no shut exit service dhcp ip dhcp pool net30 network 30.1.1.0 255.255.255.0 default-route 30.1.1.3 dns-server 202.106.0.20 exit ip dhcp excluded-address 30.1.1.3 access-list 3 permit any ip nat inside source list 3 int e0/1 overload ip route 0.0.0.0 0.0.0.0 23.1.1.2
R4:
conf t int e0/1 ip add 10.1.1.4 255.255.255.0 no shut int loopback 0 ip add 4.4.4.4 255.255.255.0 no shut exit ip route 0.0.0.0 0.0.0.0 10.1.1.1 line vty 0 15 no login exit enable password cisco R4(config)#ip http server
客户端:
客户端选用WindowsXP,默认情况下,windows系统中L2TP是与IPSEC功能相结合的,如果只想简单的使用L2TP隧道,需要在远程客户端系统中禁用L2TP与IPSEC的结合功能,在拨号前需要先修改注册表,方法如下:
进入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters,右健新建DWORD 值,重命名为:ProhibitIpSec,然后将数值数据改为1,添加完后并重启电脑。如下图:
使用“新建连接向导”创建一个“虚拟专用网络”,并在“用户名”和“密码”中填入R1上创建的用户数据库中的帐户信息,如下图:
点击“连接”后正常情况下应该可以拨号成功,但此时客户端还没有配置隧道分离。所以C1的所有流量都会通过L2TP VPN,这是不正常的,我们应该让去往公网的流量正常出去,而去往“公司内网”的流量通过L2TP隧道。客户端配置隧道分离的方法如下:
编辑“L2TP VPN”的属性,切换到“网络”选项页,双击“Internet协议(TCP/IP)”,在“Internet协议(TCP/IP)属性”中点击“高级”,在弹出的“高级TCP/IP设置”窗口中去掉“常规”选项页中的“在远程网络上使用默认网关”前面的“√”。最后“确定”
验证:
(1)、C1在不拨号的情况下验证常规网络:
说明:可以从R3的DHCP池中获取IP,且可以ping通R1的公网IP,不能ping通R4的内网IP。
(2)、查看R3的PAT状态:
说明:从R3中的PAT记录,可以说明PAT工作正常。
(3)、查看客户端的隧道信息:
说明:当连接成功之后,会在桌面的右下角出现连接成功的图标和提示信息,点击该信息或查看“L2TP VPN”状态来查看具体的详细信息。从上图的路由表中可以看出默认网关是正常接口30.1.1.3而不是VPN接口,所以所有未知目标的流量,如Internet的流量都从正常接口发出,但只有与VPN接口地址段10.0.0.0/8同网段的才从L2TP VPN中发出,对于4.4.4.4/32,因为没有路由所以不可能通。
(4)、验证L2TP VPN Server端隧道信息:
说明:从上图中可以看出L2TP隧道和,自动生成的指向L2TP VPN Client主机接口的路由信息。L2TP VPN Client是以从Server那里动态分配的地址为源和Server的网段进行通信的,并且即使L2TP VPN Server启用PAT隧道也没受到影响。
(5)、访问公网:
说明:C1和“公网服务器”通信也是正常的。
(6)、抓包查看简单L2TP VPN数据包封装:
说明:数据包先以常规的传输层网络层来封装常规数据包,再交给PPP+L2TP+公网IP封装成可以在公网上传输的数据包。