巧用Route-policy实现 VPN间数据按业务选路并备份

  图片30.png

网络描述:

  总部与分部都拥有两个种类型的数据流,分别是A与B,分部有两个外网出口,ISP分别为网通与电信。在相同ISP的公网接口之间建立GRE VPN以实现OSPF的正常传送。

  业务需求:

  1、 总部与分部的私网路由全通。

  2、 目的IP类型为A的通过网通的网络路由,为B的通过电信的网络路由。

  3、 在总部处,当H1与H2之间的链路DOWN后,去住A2的数据走向为H1-H3-H2-B2-B1。

  4、 当网通侧的tunnel断后,去往A2的数据走向为H1-H2-H3-B3-B2-B1。

  5、 即是实现当下一跳不存在时,则走备份线路,A类型的数据尽量走网通,B类型的数据尽量走电信。

  解决方法:

  IGP将采用OSPF,利用OSPF协议的COST的值实现以上业务要求,因为对COST的更改只针对个别类型的IP,所以将在OSPF中采用Route-policy。基于华为及华三的设备只能在对路由引入的情况下使用Route-policy,所以将对网络进行三个进程的划分(虚线划出的为一个进程,从上至下分别为1、2,3进程)。各进程之间的OSPF互相引入并实施策略,按照引入的次数,需用8个Route-policy才能实现此网的业务需求。

  在假设所有接口的COST相同的前提下以H2为例:

  acl number 2021 // 匹配A2网段

  rule permit source A2

  rule deny source any

  acl number 2022

  rule permit source B2

  rule deny source any

  acl number 2011

  rule permit source A1

  rule deny source any

  acl number 2012

  rule permit source B1

  rule deny source any

  acl number 200

  route-policy P2-P3 permit node 10 // 进程3引入进程2时使用名为P2-P3的POLICY

  if-match acl 2021

  apply cost +100

  route-policy P2-P3 permit node 20

  if-match acl 2022

  apply cost +500

  route-policy P2-P3 permit node 10 // 进程2引入进程3时使用名为P2-P3的POLICY

  if-match acl 2011

  apply cost +100

  route-policy P2-P3 permit node 20

  if-match acl 2012

  apply cost +500

  以H3为例:

  acl number 2021 // 匹配A2网段

  rule permit source A2

  rule deny source any

  acl number 2022

  rule permit source B2

  rule deny source any

  acl number 2011

  rule permit source A1

  rule deny source any

  acl number 2012

  rule permit source B1

  rule deny source any

  acl number 200

  route-policy P2-P3 permit node 10 // 进程3引入进程2时使用名为P2-P3的POLICY

  if-match acl 2021

  apply cost +500

  route-policy P2-P3 permit node 20

  if-match acl 2022

  apply cost +100

  route-policy P2-P3 permit node 10 // 进程2引入进程3时使用名为P2-P3的POLICY

  if-match acl 2011

  apply cost +500

  route-policy P2-P3 permit node 20

  if-match acl 2012

  apply cost +100

  B2、B3的配置与H2、H3的配置相似。

  总结:

  该问题引出的解决方法是Route-policy的典型应用 ,设计上的难点在于对H2与H3、B2与B3之间的链路应放在哪个进程中的判断。在引入时注意不要产生环路。


2016年01月