目录
R1 , R2 , R3 使用mgre的p2mp 的shortcut模式
拓补图
认证pap chap
配置缺省路由
[r1]ip route-static 0.0.0.0 0 15.0.0.2
[r2]ip route-static 0.0.0.0 0 25.0.0.3
[r3]ip route-static 0.0.0.0 0 35.0.0.3
[r4]ip route-static 0.0.0.0 0 45.0.0.2
进行R1与R5间使用ppp的pap认证
R5:认证方
[r5-aaa]local-user r1 password cipher 123456
[r5-aaa]local-user r1 service-type ppp
[r5-Serial4/0/0]ppp authentication-mode pap
R1:被认证方
[r1-Serial4/0/0]ppp pap local-user r1 password cipher 123456
在R1接口开启数据抓包
进行R2与R5间使用ppp的chap认证
认证方:R5
[r5-aaa]local-user r2 password cipher 123456
[r5-aaa]local-user r2 service-type ppp
[r5-Serial3/0/0]ppp authentication-mode chap
被认证方: R2
[r2-Serial3/0/0]ppp chap user r2
[r2-Serial3/0/0]ppp chap password cipher 123456
将R3和R5间链路类型改为HDLC
[r5-Serial4/0/1]link-protocol hdlc
[r3-Serial3/0/0]link-protocol hdlc
数据抓包观察
R1/R2/R3构建一个MGRE环境
R1 , R2 , R3 使用mgre的p2mp 的shortcut模式
R1为中心站点Hub
[r1-Tunnel0/0/0]ip address 192.168.5.1 24
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp
[r1-Tunnel0/0/0]source 15.0.0.1
[r1]ip route-static 192.168.2.0 24 192.168.5.2
[r1]ip route-static 192.168.3.0 24 192.168.5.3
[r1]ip route-static 192.168.4.0 24 192.168.5.4
R2,R3为节点spoke
[r2-Tunnel0/0/0]ip address 192.168.5.2 24
[r2-Tunnel0/0/0]tunnel-protocol gre p2mp
[r2-Tunnel0/0/0]source s3/0/0
[r2-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register
[r2]ip route-static 192.168.1.0 24 192.168.5.1
[r2]ip route-static 192.168.3.0 24 192.168.5.1
[r2]ip route-static 192.168.4.0 24 192.168.5.1
[r3-Tunnel0/0/0]ip address 192.168.5.3 24
[r3-Tunnel0/0/0]tunnel-protocol gre p2mp
[r3-Tunnel0/0/0]source s3/0/0
[r3-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register
[r3]ip route-static 192.168.1.0 24 192.168.5.1
[r3]ip route-static 192.168.2.0 24 192.168.5.1
[r3]ip route-static 192.168.4.0 24 192.168.5.1
缺点
但其实这样配置会造成一个问题,那就是每次节点与节点去访问的时候都需要通过 R1作为中心站点转发,而为什么R2不能直接给R3发呢?这是因为,R2去给R3发ICMP报文的时候他会将自己的NHRP映射表和自己的路由表做对比
开启数据抓包,能发现发的所有都是ICMP报文,并没有像 非shortcut 的写法会自己发现NHRP映射表和自己的路由表不一样从而发送NHRP报文去申请IP地址,所以这所有的包都是由R1做中转站转发给R3
优化
开启重定向功能
开启这个功能R1就会将这个ICMP报文与自己的映射表做比对,并且判断是否在同一广播域,如果在同一广播域并且正确则不做回复,如果不正确就会通知R2你的是错的并且需要跟R1申请映射关系
[r1-Tunnel0/0/0]nhrp redirect ---- 开启重定向功能。默认情况下是未启动
[r2-Tunnel0/0/0]ping -a 192.168.2.1 192.168.3.1
发现R1给R2发送了一个通知,让R2向R1申请映射关系
ping完之后的NHRP映射表并没有关于R3的记录,也就是说R2还是认为自己是对的并没有去向R3申请关于R3的映射
shortcut 配置
此时需要开启R2的nhrp的 shortcut 配置
[r2-Tunnel0/0/0]nhrp shortcut
[r2-Tunnel0/0/0]ping -a 192.168.2.1 192.168.3.1
----开启这个功能R1就会将这个ICMP报文与自己的映射表做比对,并且判断是否在同一广播域,如果在同一广播域并且正确则不做回复,如果不正确就会通知R2你的是错的并且需要跟R3申请映射关系
数据抓包查看
通过数据抓包发现R2在收到R1的通知之后,开启shortcut配置他就会去向
NHRP报文现在R2出发到R1再转发到R3
R3收到NHRP报文之后直接给R2发了一个NHRP报文包含R3的映射信息
能发现在R2上的NHRP表已经形成R3的映射关系了
并且R3上形成了一个local本地的关于自己的映射信息,这是因为需要给R2发映射信息需要在自己本地先生成
如果是R3开启nhrp shortcut也是一样的效果
访问R5上的环回5.5.5.5
需要配acl和nat映射去访问公网
[r1]ip route-static 192.168.4.0 24 192.168.6.4
[r1]acl 2000
[r1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
[r1-acl-basic-2000]q
[r1]interface Serial 4/0/0
[r1-Serial4/0/0]nat outbound 2000