GRE配置详解和路由黑洞及检测机制

本文详细介绍了GRE隧道的配置步骤,包括创建隧道、设置隧道口IP、指定源和目的IP。针对不同网络拓扑,提出了静态路由和OSPF宣告的解决方案。同时,讨论了路由黑洞现象及其产生原因,即不恰当的OSPF宣告导致数据包反复穿越隧道。为防止路由黑洞,文章提到了GRE的keepalive检测机制,通过定期发送报文来确保隧道的正常运行。最后,给出了完整的GRE配置示例,包括合肥和上海两端的配置。
摘要由CSDN通过智能技术生成

GRE配置详解和路由黑洞及检测机制

在这里插入图片描述

基本路由配置先省略,直接上GRE配置:
合肥:
int tunnel 0/0/1
//创建隧道
ip add 192.168.13.1 24
//给隧道口ip地址,没有地址怎么传输?
tunnel-pro gre
//隧道的模式
so 12.0.0.1
//牌照的源ip
dest 23.0.0.3
//牌照的目的ip

在公网上跑,私网地址是会被丢弃的,所以需要公网地址的牌照
隧道建立好之后还有一个问题,怎么把数据包送到隧道上呢?

有两种方法,针对不同的网络类型:

1. 网段较少的拓扑

可以通过静态路由来实现
ip route-static 192.168.20.0 24 tunnel 0/0/1

下一跳必须是隧道口的地址或者隧道接口,否则,数据包还是会和之前一样,从缺省路由转发出去。

2. 网段教多的拓扑

如果接入的主机很多,一条一条写静态太麻烦了,而且有去就必须有回,double的麻烦,所以这里可以通过ospf来宣告,GRE支持组播技术

ospf 1 router-id 1.1.1.1
a 0
net 192.168.10.0 0.0.0.255
net 192.168.13.0 0.0.0.255
//一定要宣告隧道地址,不然路由器不知道从哪转发

但是,这里能不能也宣告公网地址呢?多宣告多知道些路由不是更好吗?

物极必反,不一定

假如把12.0.0.0和23.0.0.0 网段宣告进去
查看路由表会发现多了一条从tunnel口出去的路由:

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface
        0.0.0.0/0   Static  60   0          RD   12.0.0.2        GigabitEthernet
0/0/1
       23.0.0.0/24  OSPF    10   1563        D   192.168.13.2    Tunnel0/0/1

本来GRE将通行证拿好之后,应该通过缺省路由从g0/0/1口转发出去,通过ISP的路由到达对端,但是,这里多了一条ospf路由,根据路由匹配原则,肯定先匹配ospf,
于是数据包刚从tunnel里出来,又得回去了。回去又得打牌照,反反复复GRE就傻掉了
并且这时候的ospf邻居从down到full,full了又down
在这里插入图片描述

就变成了路由黑洞
其实在一开始配置的时候,比较粗心,在接口绑定nat时把接口写错了,导致GRE的protocol一直是down的状态:

那么,让tunnel的protocol成up的机制是什么呢?

其实只要路由没有问题,protocol就是up的状态,即使对端没有配置,tunnel也感受不到,如果公司到分部做了两个隧道,主备实现,如果主有故障,比如对端路由有问题,或者运营商路由故障,这时需要切换到备份隧道,但是tunnel没有感知到,依旧是up,数据包就会丢失,

解决方法:

GRE有keepalive检测机制,配置后GRE会发送keepalive报文,并且对端超过3次没有恢复,tunnel就会自动变成down状态
配置后GRE会默认5S发一次

下面是完整配置(包括路由等):
合肥:

sys
sys HF
dhcp en
int g0/0/0
ip add 192.168.10.254 24
dhcp select inter
int g0/0/1
ip add 12.0.0.1 24
ip route-static 0.0.0.0 0 12.0.0.2 24
acl 2000
rule 5 per so 192.168.10.0 0.0.0.255
int g0/0/1
nat out 2000
int tunnel 0/0/1
ip add 192.168.13.1 24
tunnel-pro gre
so 12.0.0.1 
dest 23.0.0.3
keepalive
//ip route-static 192.168.20.0 24 tunnel 0/0/1
ospf 1 router-id 1.1.1.1
a 0
net 192.168.10.0 0.0.0.255
net 192.168.13.0 0.0.0.255

上海:

sys
sys SH
dhcp en
int g0/0/0
ip add 23.0.0.3 24
int g0/0/1
ip add 192.168.20.254 24
dhcp select inter
ip route-static 0.0.0.0 0 23.0.0.2
acl 2000
rule 5 per so 192.168.20.0 0.0.0.255 
int g0/0/1
nat out 2000
int tunnel 0/0/1
ip add 192.168.13.2 24
tunnel-pro gre
dest 12.0.0.1 
so 23.0.0.3
keepalive
//ip route-static 192.168.10.0 24 tunnel 0/0/1
ospf 1 router-id 2.2.2.2
a 0
net 192.168.20.0 0.0.0.255
net 192.168.13.0 0.0.0.255
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番茄上的Tomato

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值