在MPLSVPN数据网中,各个分支站点间按网段进行了IP的划分,不同站点间的设备要互访,必须都经过网关进行路由。如果设备必须在同一个子网段内,或者设备不支持跨网段路由,可以通过在路由设备上启用ARP代理来解决。
因食堂要使用打卡消费机,该消费机是ID卡,需要通过网络与服务器进行实时数据交换。由于食堂是分散在各个不同的办公点,消费机通过数据网的MPLSVPN进行网络连通。但该消费机不支持路由(不能设网关),与服务器必须在同一网段内才能通信,而MPLSVPN对各个站点是进行了子网划分的。通过对该打卡消费机与食堂在数据网上划分了专用VPN,并启用ARP代理,解决了这一问题。
(以下为使用华为eNSP模拟器进行模拟的拓扑图和配置)
网络拓扑图如上图:目前有一个中心点,两个分支点,通过MPLSVPN互联,共3台消费机,一台服务器;中心点的消费机与服务器在一个交换机上,其它两个通过VPN接入中心点。
-
配置VPN,并启用MPLS和LDP(以下配置为中心点配置,各分支点配置均类似):
ipvpn-instance ykt
ipv4-family
route-distinguisher64000:1
vpn-target64000:1 export-extcommunity
vpn-target64000:1 import-extcommunity
#
mplslsr-id 172.16.10.1
mpls
#
mplsldp
#
interfaceGigabitEthernet0/0/0
ipaddress 172.16.1.1 255.255.255.252
mpls
mplsldp
#
interfaceGigabitEthernet0/0/1
ipaddress 172.16.1.5 255.255.255.252
mpls
mplsldp
#
ospf1
area0.0.0.0
network172.16.1.0 0.0.0.3
network172.16.1.4 0.0.0.3
network172.16.10.1 0.0.0.0
-
配置BGP、邻居和IPV4,实现VPN子网段互连。
#bgp64000
peer172.16.10.2 as-number 64000
peer172.16.10.2 connect-interface LoopBack0
peer172.16.10.3 as-number 64000
peer172.16.10.3 connect-interface LoopBack0
#
ipv4-familyunicast
undosynchronization
peer172.16.10.2 enable
peer172.16.10.3 enable
#
ipv4-familyvpnv4
policyvpn-target
peer172.16.10.2 enable
peer172.16.10.3 enable
#
ipv4-familyvpn-instance ykt
import-routedirect
import-routestatic
peer172.16.10.2 as-number 64000
peer172.16.10.3 as-number 64000
#
-
在各站点与中心的路由器连接业务CE的接口上,配置VPN绑定,并启用ARP代理。
interfaceGigabitEthernet2/0/0
ipbinding vpn-instance ykt
ipaddress 192.168.32.14 255.255.255.240
arp-proxyenable
#
3. 分别在服务器和消费机上配置IP地址和掩码,各站点能互相PING通。
4. 关于IP地址的注意事项:因为VPN必须进行子网的划分,因此各个站点的路由器业务接口的掩码为28位(255.255.255.240);服务器和消费机均使用相同的24位的掩码(255.255.255.0),不需要配置网关。
ARP代理是ARP协议的一个变种,启用了代理的网关收到源计算机的ARP请求会使用自己的MAC地址与目标计算机的IP地址源计算机进行应答,同时将向其它网段转发广播ARP报文,从而实现跨网段设备的ARP通信。通常这种方式仅限于不支持跨网段之间通信的设备使用,带来的副作用就是会具有一定的风险,如ARP欺骗和ARP广播风暴。