PBR+多出口NAT+IP SLA

这篇具有很好参考价值的文章主要介绍了PBR+多出口NAT+IP SLA。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PBR策咯路由(Policy-Based Routing)

route-map的一种应用,基于策略的路由比传统的路由能力更强,使用更灵活,它使网络管理者不仅能够根据目的地址而且能够根据协议类型、报文大小、应用或IP源地址来选择转发路径。策略路由可以定义为通过多路由器的负载平衡或根据总流量在各线上进行报文转发的服务质量来定义策略路由。

策略路由主要对经过路由器的数据流进行分流和过滤以及感兴趣的数据流。

在讲PBR之前有必要简单介绍下Route-map工具,Route-map包含两元,一个是match(匹配)还有一个是set(执行动作)。

 Route-map默认为permit,默认序列号10,序列号不会自动递增,需要指定序列号。

 Route-map执行从最小的序列号开始执行,如果一旦匹配到将不再执行下边序列号的语句,如果一个都没有匹配住,Route-map末尾隐含deny any语句。

单条match语句包含多个条件时,使用逻辑or运算(或运算)

多条match语句时,使用逻辑and运算(且运算)

Route-map name {permit|deny }10     

    match xxx zzz                 XZ只要匹配到一个这个match就成真

    Set yy                              执行set动作

Route-map name {permit|deny } 20

    match xxx                      xz两个match都必须匹配到这个序列号中的set动作才会执行

    match zzz

    Set yy                     

Route-map name deny           隐含deny any语句

PBR对数据的处理流程:

PBR+多出口NAT+IP SLA,智能路由器

图解:数据包到了接口,路由器查看是否应用PBR工具,如果有执行PBR的match语句,如果被match语句匹配则执行set动作,如果没有被match语句匹配住,这个数据包流量将会按照传统路由表进行转发,而不是丢弃。这是PBR很重要的一个处理数据包的流程概念,PBR的set动作是优于路由表的。

PBR的配制分为三个步骤:1.用ACL匹配数据 2.在Route-map中部署PBR  3.调用PBR

如果只在Route-map中部署PBR而不调用,PBR是不生效的。

整篇文章的实验拓扑IP地址规划:192.168.xy.z/24   其中xy是两端设备编号,z是设备本身编号。 x代表较小的设备编号,y代表较大的设备编号。

PBR的应用场景一

PBR叫策略路由,而不是叫路由策略,PBR和传统的路径控制工具最大的区别就是它可以跟据源去做策略,而传统的路径控制工具只能根据目的去做决策,改变目的来影响数据流的走向。

如上图,R1路由器去往100.100.100.100/24目的有两条路径,下边的VLAN10VLAN20用户只能走一边,或者等价负载均衡方式转发。传统工具无法做到让VLAN10强制走R2VLAN20强制走R3PBR可以做到,PBR可以跟据源去匹配感兴趣的data(数据),强制性让VLAN10用户走R2,并且当R2挂掉切换到R3。强制性让VLAN20R3,同样当R3挂掉切换到R2

PBR+多出口NAT+IP SLA,智能路由器

首先用ACL匹配感兴趣数据流,上边命令分别用两个ACL去匹配VLAN10和VLAN20的数据:

R1(config)#ip access-list standard vlan10

R1(config-std-nacl)#permit 192.168.1.0 0.0.0.255

R1(config)#ip access-list standard vlan20

R1(config-std-nacl)#permit 192.168.2.0 0.0.0.255

R1(config)#route-map PBR permit 10    //创建Route-map,配置PBR

R1(config-route-map)#match ip address vlan10      //match VLAN10的ACL

R1(config-route-map)#set ip next-hop 192.168.12.2      //执行set动作将数据丢给下一跳,需要注意这个下一跳一定是我直连的下一跳。Set动作的意思就是我将数据包丢给我的下一跳路由器,让它帮我转发数据,它丢给下一跳的动作是不会改变数据包的源和目的信息。

R1(config-route-map)#exit                                                            

R1(config)#route-map PBR permit 20    // 在 PBR 的Route-map里边创建第二个序列号

R1(config-route-map)#match ip address vlan20     // match VLAN20的ACL

R1(config-route-map)#set ip next-hop 192.168.13.3             //执行set动作将数据丢给下一跳,需要注意这个下一跳一定是我直连的下一跳,Set动作的意思就是我将数据包丢给我的下一跳路由器,让它帮我转发数据 ,它丢给下一跳的动作是不会改变数据包的源和目的信息。

R1(config-route-map)# exit

R1(config)#interface fastEthernet 1/0    //在R1路由器的f1/0接口进行调用

R1(config-if)#ip policy route-map PBR     //这条命令是调用PBR,接口调用PBR,使得刚配置的PBR生效.

PBR的调用有两种方式:第一种接口调用,第二种全局调用

接口调用:从这个接口经过的数据流量执行PBR的策略

全局调用:R1(config)#ip local policy route-map PBR    //全局调用就是从这台路由器设备本身经过的数据全部执行PBR的策略

经过以上三个步骤配置,PBR的最简单的应用场景就实现了,下边查看VLAN10和VLAN20用户是不是按照PBR的方式执行。

R1路由表去往100.100.100.100/24实际上是走的默认路由,而默认路由的下一跳是R2,也就是在上述情况,去往该目的地实际上只能走R2,通过R3是到不了的,但是我们PBR可以做到,因为我们可以将数据丢给我的直连下一跳,让它们进行转发。

总结:VLAN10的用户发送数据到去往100.100.100.100/24目的,数据包到了R1的f1/0接口,R1路由器查看有没有部署PBR,刚好部署,查看match语句能否匹配,刚好匹配执行set动作强制将数据包丢给R2路由器

VLAN20的用户发送数据到去往100.100.100.100/24目的,数据包到了R1的f1/0接口,R1路由器执行PBR,将数据丢给R3,其实如果没有部署PBR,R1直接通过R3是过不去的,因为没有路由。R1的路由表去往100.100.100.100/24只有一条默认路由指向R2。但是我们做了PBR,R1将数据丢个了R3路由器,让它进行转发,尽管我路由表本身没有路由。

PBR应用场景二:利用set语句的多个下一跳特性

PBR+多出口NAT+IP SLA,智能路由器

需求:希望VLAN10用户强制走R2路由器,当R2路由器挂掉后走R3路由器,当R3挂掉后通过R7访问100.100.100.100/24,希望VLAN20用户强制走R3路由器,当R3路由器挂掉后走R2路由器,当R2挂掉后通过R7访问100.100.100.100/24。

具体配置命令:

首先用ACL匹配感兴趣数据流,上边命令分别用两个ACL去匹配VLAN10VLAN20的数据:

R1(config)#ip access-list standard vlan10

R1(config-std-nacl)#permit 192.168.1.0 0.0.0.255

R1(config)#ip access-list standard vlan20

R1(config-std-nacl)#permit 192.168.2.0 0.0.0.255

R1(config)#route-map PBR permit 10      //创建Route-map,配置PBR

R1(config-route-map)#match ip address vlan10     // match VLAN10的ACL

R1(config-route-map)#set ip next-hop 192.168.12.2  192.168.13.3        //set动作这里的下一跳可以写多个,先执行第一个,当第一个不可达了也就是挂掉了,执行第二个

R1(config-route-map)#exit

R1(config)#route-map PBR permit 20        //在 PBR 的Route-map里边创建第二个序列号

R1(config-route-map)#match ip address vlan20      //match VLAN20的ACL

R1(config-route-map)#set ip next-hop 192.168.13.3  192.168.12.2    //set动作这里的下一跳可以写多个,先执行第一个,当第一个不可达了也就是挂掉了,执行第二个

R1(config-route-map)#exit

R1(config)#interface fastEthernet 1/0      //在R1路由器的f1/0接口进行调用

R1(config-if)#ip policy route-map PBR      //这条命令是调用PBR

总结:其实配置和场景一配置是一模一样的,就是在set后边多添加了那个下一跳的地址,当第一个地址不可达了,执行第二个地址。

PBR应用场景三:递归下一跳

PBRset动作下一跳也不一定非要是直连的路由器接口IP,PBR有一个递归下一条的概念。

recursive next-hop(递归下一跳)特性突破了传统下一跳必须是直连路由器接口IP的限制。recursive next-hop可以不是直连网络,只要路由表中有相关的路由可达即可。一般recursive next-hop不可达,数据交由路由表处理(一般就被默认路由匹配走)    

 

   规则:如果在一个route-map列表同一个序列号中同时使用ip next-hopip next-hop recursive ,则ip next-hop有效,如果IP next-hop挂了,则启用IP next-hop recursive,如果两个都挂了,则丢给路由表处理。注意:        一个route-map序列号中,只允许配置一个ip next-hop recursive.

PBR+多出口NAT+IP SLA,智能路由器

需求VLAN10VLAN20用户强制走R3路由器,当R3路由器挂掉以后从R2路由器走,R2路由器挂掉后从R5路由器转发出去。

首先用ACL匹配感兴趣数据流,上边命令用1个ACL去匹配VLAN10和VLAN20的数据

R1(config)#ip access-list standard vlan10anvlan20

R1(config-std-nacl)#10 permit 192.168.1.0 0.0.0.255

R1(config-std-nacl)#20 permit 192.168.2.0 0.0.0.255

R1(config)#route-map PBR permit 10  //创建Route-map,配置PBR

R1(config-route-map)#match ip address vlan10andvlan20  //match VLAN10和VLAN20的用户数据流量ACL

R1(config-route-map)#set ip next-hop 192.168.13.3   //先set到R3路由器

R1(config-route-map)#set ip next-hop recursive 192.168.24.2 //递归到R2路由器f0/1接口,也只能递归这个接口,不能递归到R4路由器接口IP

R1(config-route-map)#exit

R1(config)#interface fastEtherne1/0 //在R1路由器的f1/0接口进行调用

R1(config-if)#ip policy route-map PBR //这条命令是调用PBR

在R1的路由表中去往100.100.100.100/24的目的只有默认路由可以匹配,但是默认路由的下一跳是R5,因为部署了PBR所以先匹配PBR的set动作。

R1(config)#interface fastEthernet 0/1

R1(config-if)#shutdown  //将R1的f0/1接口shutdown掉,模拟R3挂掉

应用场景四:多出口NAT+PBR+IP SLA

需求:我们希望VLAN10的用户走ISP-1VLAN20的用户走ISP-2并且在两边任何链路故障都能够切换,结合NAT

PBR+多出口NAT+IP SLA,智能路由器

IP SLA:cisco公司的一种私有协议,可以通过源发送icmp包检测公司与运营商之间的接口是否是up的,因为有可能R1作为客户路由器和运营商之间有一台透明设备。假设ISP-1和透明设备之间链路故障,而作为客户这边是感知不到的,岂不是数据转发就有问题。就算没有透明设备,一般与运营商之间链路接口的UP和down也很难通过接口本身去感知,所以我们需要IP SLA协议去探测链路接口的UP和down,更多的说明,还请百度。在模拟器环境下 IP SLA好像只对S串口生效,就是我上图环境,以太网接口模拟器它模拟不到对端存活,我有尝试以太网接口没用。。。。。。

多出口NAT:我们希望VLAN10的用户走ISP-1,VLAN20的用户走ISP-2

并且在两边任何链路故障都能够切换,像上边的三个场景,都没有部署NAT只是单纯的为了实验PBR工具的使用方式,,一台出口路由器上联两家ISP运营商,然后不同的VLAN用户走不同的ISP运营商。

NAT我们做PAT,就是端口扩展的NAT模式,不做动态和静态的。

PBR:通过PBR实现VLAN10走ISP-1,VLAN20走ISP-2进行数据分流。

我们要结合Route-map和NAT去最终实现上述要求,不过现网一般有负载均衡的设备,也可以更简单的达到这种需求,我们可以看下在cisco的IOS平台如何通过Route-map+NAT的结合实现。

路由部分:出口路由器必须有默认路由,我们写一个静态和一个浮动默认路由

R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.12.2       //静态默认路由指电信运营商

R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.13.3 5     //浮动的指教育网

R1(config)#ip route 192.168.1.0 255.255.255.0 192.168.14.4    //回城路由,要能回到VLAN10

R1(config)#ip route 192.168.2.0 255.255.255.0 192.168.14.4    //回城路由,要能回到VLAN20

PBR部分:就不再赘述,上边已经举例3个场景了,PBR实现数据分流

R1(config)#route-map PBR permit 10

R1(config-route-map)#match ip address vlan10

R1(config-route-map)#set ip next-hop 192.168.12.2

R1(config-route-map)#exit

R1(config)#route-map PBR permit 20

R1(config-route-map)#match ip address vlan20

R1(config-route-map)#set ip next-hop 192.168.13.3

R1(config-route-map)#exit

R1(config)#interface fastEthernet 0/0     //最后一定在接口或者全局进行调用PBR

R1(config-if)#ip policy route-map PBR

NAT部分:结合Route-map去实现

R1(config)#interface serial 2/0     //定义接口的outside和inside模式

R1(config-if)#ip nat outside   //外是outside模式

R1(config-route-map)#exit   

R1(congig)#interface serial 2/1

R1(config-if)#ip nat outside

R1(config)#interface range fastEthernet 1/0

R1(config-if-range)#ip nat inside   // 内是inside模式

R1(config-route-map)#exit

定义4个Route-map,定义4给nat的实例,一一相互对应进行调用,我用序号进行标识,属于一个序列就是一组配置,一组配置指:Router-map+NAT的一组

①R1(config)#route-map nat1 permit 10        //定义第一个nat

     R1(config-route-map)#match ip address vlan10           //匹配VLAN10的数据

     R1(config-route-map)#match interface serial 2/0        // 匹配从该接口经过的数据,在最前边Route-map中有提到,多条match语句时,使用逻辑and运算(且运算)

     R1(config-route-map)#exit

②R1(config)#route-map nat2 permit 10

     R1(config-route-map)#match ip address vlan10

     R1(config-route-map)#match interface serial 2/1

     R1(config-route-map)#exit

③R1(config)#route-map nat3 permit 10

     R1(config-route-map)#match ip address vlan20

     R1(config-route-map)#match interface serial 2/1

     R1(config-route-map)#exit

④R1(config)#route-map nat4 permit 10

     R1(config-route-map)#match ip address vlan20 

     R1(config-route-map)#match interface serial 2/0

     R1(config-route-map)#exit

①R1(config)#ip nat inside source route-map nat1 interface serial 2/0 overload      配置NAT调用Route-map所匹配的数据,这个和最上边的Route-map nat1所对应,下边的同理一 一对应

②R1(config)#ip nat inside source route-map nat2 interface serial 2/1 overload

③R1(config)#ip nat inside source route-map nat3 interface serial 2/1 overload

④R1(config)#ip nat inside source route-map nat4 interface serial 2/0 overload

Sla部分:现在都EVE模拟器,12.4版本是老版本,EVE模拟器的IOS版本都是最新的15.0以后的,15.0的sla的配置我没尝试,但是只有一条命令和12.4版本的不一样我写出来:

R1(config)#track 10 ip route 192.168.12.2 192.168.12.1 reachability  GNS3模拟器的12.4版本用这条命令进行关联track实例

R1 (config)#track 10 ip sla 10 reachability   //15.0版本用这条命令关联track实例

R1 (config)#ip sla 10        //创建sla 10,检测ISP-2运营商现路

Switch(config-ip-sla)#icmp-echo 192.168.12.2 source-ip 192.168.12.1     //用源192.168.12.1检测对端192.168.12.2地址

R1 (config-ip-sla-echo)#frequency 5       //检测超时时间5S

R1 (config-ip-sla-echo)#exit

R1(config)#ip sla schedule 10 life forever start-time now          //设置立即生效sla命令

R1(config)#track 10 ip route 192.168.12.2 192.168.12.1 reachability  //关联到一个Track实例,

R1(config-track)#exit

R1 (config)#route-map PBR permit 10                  

R1(config-route-map)#set ip next-hop verify-availability 192.168.12.2 10 track 10

//在PBR中调用,下边一共两个10,第一个10是sla的10,第二个10是track实例的10

R1 (config)#ip sla 20              //  创建sla 20,检测ISP-3运营商线路

R1 (config-ip-sla)#icmp-echo 192.168.13.3 source-ip 192.168.13.1     用源192.168.13.1检测对端192.168.13.3地址

R1 (config-ip-sla-echo)#frequency 5       //检测超时时间5S

R1 (config-ip-sla-echo)#exit

R1 (config)#ip sla schedule 20 life forever start-time now    //设置立即生效sla命令

R1 (config)#track 20 ip route 192.168.13.3 192.168.13.1 reachability      //关联到一个Track实例

R1(config-track)#exit

R1 (config)#route-map PBR permit 20

R1(config-route-map)#set ip next-hop verify-availability 192.168.13.3 20 track 20

在PBR中调用,下边一共两个20,第一个20是sla的20,第二个20是track实例的20

把整个PBR写完,发现还是漏了一个点就是PBR的set动作,我上边提到它是优于传统路由表的,通过整篇文章应该也能理解这句话。

漏讲的就是我们可以通过在set动作后加上default关键字,让set动作它不优于路由表。就是先查询路由表,看有没有去往目的的明细,有走路由表,没有执行set动作

比如场景一的实验,其实配置大同小异只是结果稍微有点不同,配置:

PBR+多出口NAT+IP SLA,智能路由器

需求:VLAN10用户去往100.100.100.100/24目的强制丢给R2,VLAN20强制丢给R3路由器

具体配置命令:

首先用ACL匹配感兴趣数据流,上边命令分别用两个ACL去匹配VLAN10和VLAN20的数据

R1(config)#ip access-list standard vlan10

R1(config-std-nacl)#permit 192.168.1.0 0.0.0.255

R1(config)#ip access-list standard vlan20

R1(config-std-nacl)#permit 192.168.2.0 0.0.0.255

R1(config)#route-map PBR permit 10       //创建Route-map,配置PBR

R1(config-route-map)#match ip address vlan10     // match VLAN10的ACL

R1(config-route-map)#set ip default next-hop 192.168.12.2    //执行set动作将数据丢给下一跳,需要注意这个下一跳一定是我直连的下一跳。注意加上了default 关键字

R1(config-route-map)#exit                           

R1(config)#route-map PBR permit 20        //在 PBR 的Route-map里边创建第二个序列号

R1(config-route-map)#match ip address vlan20      match VLAN20的ACL

R1(config-route-map)#set ip next-hop 192.168.13.3    //执行set动作将数据丢给下一跳,需要注意这个下一跳一定是我直连的下一跳

R1(config-route-map)#exit                                                           

R1(config)#interface fastEthernet 1/0            //在R1路由器的f1/0接口进行调用

R1(config-if)#ip policy route-map PBR       //  这条命令是调用PBR,接口调用PBR,使得刚配置的PBR生效文章来源地址https://www.toymoban.com/news/detail-789116.html

到了这里,关于PBR+多出口NAT+IP SLA的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 为什么普通路由器在转发IP数据报时,对于源地址和目的地址都是不改变的,而NAT路由器需要改变

    普通路由器在转发IP数据报时,对于源地址和目的地址都是不改变的 。这是因为路由器的主要任务是根据其路由表将数据包从一个网络接口转发到另一个网络接口。当数据包到达路由器时,路由器首先将其目的地址与路由表进行对比,如果目的地址在本地网络内,它会直接转

    2024年02月04日
    浏览(88)
  • 出口路由器网关配置案例

    大家好,我是小咖老师。 今天我们来讲一个出口路由器网关的配置案例。 如下图所示,在大型园区出口,路由器和防火墙进行直连,通过防火墙连接到外部网络和数据中心,对出入园区的业务流量提供安全过滤功能,为网络安全提供保障。 配置OSPF园区出口组网图 网络具体

    2024年02月11日
    浏览(45)
  • 10.网桥是什么?网桥和路由器及交换机的区别?以太网和令牌环网,nat,查公网ip等

    网桥是什么?有什么作用? 网桥是一种网络设备,它可以在数据链路层(第二层)上连接不同的局域网(LAN),并根据MAC地址转发数据帧。网桥的作用是: 隔离碰撞域,提高网络性能和稳定性。 扩展网络范围,连接不同的网段或拓扑结构。 进行链路层的协议转换,实现不同

    2024年02月15日
    浏览(64)
  • H3C路由器出口无法使用问题的解决方案

      一、组网环境 宽带A为提高部分专线用户访问另一宽带B的一些网站的速度,申请了B的出口,在路由器上将这部分专线用户的访问业务重定向至B的出接口,配置完成后,发现专线用户访问B网络速度仍然很慢,没有达到目标。 二、故障分析 1、通过测试仪观察路由器重定向出

    2024年02月05日
    浏览(54)
  • 实际中,出口路由器是如何对接到互联网的(DHCP方式)

    实际中,企业是如何接入到互联网中的? 这一篇我们来了解下出口路由器如何对接互联网的,我们先不看企业网,我们来了解下家庭网,这个大家最熟悉的。 1、家庭网是如何接入到互联网的 家庭网其实大家都有经验,去营业厅办理宽带后,不管是联通、电信、移动都会派装

    2024年02月09日
    浏览(46)
  • NAT 地址转换路由器配置命令(华为路由器)

      #AR1路由器配置 # acl 2000    rule permit source any # interface GigabitEthernet0/0/1  nat outbound 2000  ip address 1.1.1.1 24 # interface GigabitEthernet0/0/0  ip address 172.16.1.1 255.255.255.0  # ip route-static 0.0.0.0 0.0.0.0 1.1.1.2 ip route-static 192.168.10.0 255.255.255.0 172.16.1.2 ip route-static 192.168.20.0 255.255.255.0 172.16.1.

    2024年02月17日
    浏览(62)
  • 思科路由器的NAT入门介绍

      一、NAT有四种类型 1、静态NAT:内部网络中的每个主机都被永久映射成外部网络中的某个合法地址,这类NAT在很多内部火墙规划中均有应用。 2、动态NAT:NAT后的地址不是固定的,是从一个IP池中动态分配取出的。 3、复用转换:是大家接触最多的NAT应用了,在动态转换中,

    2024年02月05日
    浏览(43)
  • 【Cisco Packet Tracer】路由器 NAT实验

    NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat和端口多路复用OverLoad。 静态转换是指内部本地地址一对一转换成内部全局地址,相当内部本地的每一台PC都绑定了一个全局地址。一般用于在内网中对外提供服务的服务器。 [3] 动态转换是指将内部网络的私有I

    2024年02月04日
    浏览(50)
  • 锐捷RSR系列路由器_安全_NAT 网络地址转换

    目录 01  NAT简介 02  源地址转换 2.1  上网配置-ADSL拨号(PPPoE)出口 2.2  上网配置——无交换口路由器 2.3  上网配置——固化交换模块路由器 2.4  上网配置——多出口及permit-inside功能 03  外部源地址转换 04  NAT实现TCP负载均衡 05  双向NAT转换 06  VRF  NAT 07  常见问题和故障

    2024年02月04日
    浏览(48)
  • 在OpenWrt上配置原生IPv6 NAT,,实现校园网路由器使用ipv6

    我的环境 网络:教育网原生双栈,IPv4地址固定,IPv6地址自动获取 固件版本:OpenWrt Chaos Calmer 15.05-rc2 r45918 内核版本:3.18.14 准备工作 步骤如下,将网线插入校园网墙上的网口,另一端连接上电脑。之后按照以下示例操作。(以下步骤同样适用于用来实现电脑连接宿舍有线网

    2024年02月06日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包