redistribute,access-list,distribute-list,router-map,pbr

来源:互联网 发布:精通qt4编程 高清版 编辑:程序博客网 时间:2024/05/28 18:44

redistribute,access-list,distribute-list,router-map,pbr

 (2012-06-04 19:56:36)
标签: 

it

分类: Cisco

 Redistribute

<路由协议的迁移>

原则:

1、尽可能少的减少网络的停工时间

2、一旦在迁移过程中出了问题,要能迅速回退到初始状态

3、在迁移过程中要避免出现路由黑洞和环路

 

地址迁移:

1、配置第二地址

2、将第二地址network进路由协议中

3、如果第二地址路由正常,将第二地址改为第一地址

 

路由迁移:

1、将原有协议的AD值改小

2、在现在网络上配置新的路由协议

3、将原有协议的AD值再改大,让新协议的路由起作用

4、如果路由正常,删除原有协议

 

·Secondary地址,配好新的路由协议,将原IP地址删除。

 

注:OSPF不能用Secondary地址建邻居。Eigrp能用Secondary地址建邻居。

 

R1(config-route)#distance eigrp 150 170   修改路由协议的管理距离

 

<路由协议的重发布>

 

重发布是指连接到不同路由选择域的边界路由器在不同自主系统之间交换和通告路由选择信息的能力。

 

重发布原则:路由必须位于路由选择表中才能被重分发

 

在重分发时设定种子metric

 

协议        Seed Metric

RIP           无限大    必须手工指定     

EIGRP         无限大    也必须手工指定

OSPF          20    如果重发布进来的是BGP的话,Metric1,这是个特例

IS-IS         0

BGP          携带原来的Metric

 

R1(config-router)#default-metric 1  使用此命令来设定种子metric

 

重发布分两种:

1、单向重发布

2、双向重发布

 

1OSPF -> RIP

 R1(config)#router rip

  R1(config-router)#default-metric 3 (默认Seed Metric=infinity无限大,修改Seed Metric3

 R1(config-router)#redistribute ospf 110 metric 1 (优于default-metric命令)

           Metric1发出,对方收到路由的Metric=1

 

 R1(config-router)#redistribute connected (可不加Metric,默认=1)重发布直连

 R1(config-router)#redistribute static   (可不加Metric,默认=1)重发布静态,路由前会打上R

 

2RIP -> OSPF:  R1(config)#router ospf 110

 R1(config-router)#redistribute rip subnets (如不加Subnets,只有主类地址能被重发布)

  R1(config-router)#default-metric 8

 R1(config-router)#redistribute rip subnets metric 10

(默认Seed Cost=20,如果将BGP->OSPF,默认=1

 R1(config-router)#redistribute rip subnets metric 10 metric-type 1 

(加上路径Cost,默认为E2

 

  R1(config-router)#redistribute connected subnets

 R1(config-router)#redistribute static subnets  还可在后面加router-map来过滤路由

 

3ISIS -> EIGRP

R1#debug ip eigrp

 

R1(config)#router eigrp 90

R1(config-router)#default-metric 1500 100 255 1 1500

R1(config-router)#redistribute isis (level2) metric 1544  100  255   1500 (推荐值)

 (不加Metric,默认Seed Metric=infinity        BW   DLY     Lo  MTU

                          带宽 延迟可靠性 负载 MTU

R2#show ip ei topology 3.3.3.0/24

 

R1(config-router)#redistribute connected (不加Metric也可)

                                (根据直连接口的不同计算Metric)

R1(config-router)#redistribute static (不加Metric也可)

                                (根据下一跳接口计算Metric

 

·当把ISIS重发布进其他路由协议时,运行ISIS的直连接口不能重发布进去,这是ISIS本身的BUG。只能通过重发布直连解决。

 

4EIGRP -> ISIS

R1(config)#router isis

R1(config-router)#redistribute eigrp 90 (默认Seed Metric=0 ,默认以L2路由进入ISIS)

 

R1(config-router)#redistribute eigrp 90 metric 8

 

R1(config-router)#redistribute ei 90 level-1 (以L1的路由进入ISIS,不做修改的话,L1路由器就收不到外部重发布进来的路由,因为默认是L2

R1(config-router)#redistribute ei 90 level-1-2

 

R3#show isis database detail/verbose

 

·重发布-在R上,将A协议重发布到B协议中:  

  R上所有运行A协议的接口(除ISIS/ODR),以及R路由表中所有A协议的路由,都会被重发布到B协议中。

-----------------------------------------------------------------------------------------

<单点双向重发布时的汇总问题>

?

R1s1/0上做汇总,会产生指向一条NUll0的汇总路由。R1eigrp的路由重发布进ospf就会出现路由回馈的现象。

解决方法:R1access-list 1 deny 172.16.0.0

                      access-list 1 permit any

                      router ospf 110

                      distribute-list 1 out eigrp 90

 

 

 

<双向双出口重发布>

?

 

·当把AD高的协议重发布到AD低的协议中时,就有可能出现问题。

 

解决方法:

 

1、不好的方法--改所有路由的AD

R1(config)#router ospf 110

R1(config-router)#distance 171 (将此协议的路由的AD改为171,对本协议所有路由都有效,改动范围太大,通常不建议这样做)

 

2、好的方法--缩小范围

R1(config-router)#distance 171 4.4.4.4(在OSPF中,这是RID) 0.0.0.0  (只将路由器4.4.4.4通告的OSPF路由AD改为171

                 

3、最好的方法--进一步缩小范围

R1(config)#access-list 2 permit 2.2.2.0

R1(config-router)#distance 171 4.4.4.4 0.0.0.0 2 (只针对4.4.4.4通告的2.2.2.0路由将AD改为171,对4.4.4.4通告的其它路由AD不变)

 

R1(config-router)#distance 171  0.0.0.0 255.255.255.255 2 

上面这条命令针对所有路由器通告的指定路由来改AD,在这一定要注意通告路由器的概念,在OSPF中和EIGRP中通告的路由器的区别,要注意你所要更改的路由是由哪一个路由器通告的。

 

推荐方法:R4(config-router)#distance ospf external 99 inter-area 88 intra-area 77

 

____________________________________________________________________________________

EIGRP中的修改:

R4(config)#router eigrp 90

R4(config-router)#distance 109 24.1.1.2  0.0.0.0 (只对D路由有效,对D EX路由无效,因为EX路由是别的路由器通告的)

                              (Next-hop)(Wildcard)

 

R4(config)#access-list 2 permit 1.1.1.0

R4(config-router)#distance 109 24.1.1.2 0.0.0.0 2

           (只针对1.1.1.0路由将AD改为109,只对D路由有效)

 

R4(config-router)#distance eigrp    89      169

                               (internal)(external)

---------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------

访问列表的分类:

 

1.控制层面  

2.数据层面  

1、标准访问列表

   只能基于源IP地址来进行分类

   可以使用列表号:1-991300-1999

   标准的访问列表通常要求放置在靠近目标的地方

 

2、扩展访问列表

   可以根据源IP地址、目的IP地址、源端口号、目的端口号,协议来进行分类

   可以使用列表号:100-1992000-2699

   扩展访问列表通常要求放置在靠近源的地方

 

3、命名的访问列表

   只是将标准访问列表或扩展访问列表取个名字

   优点:可以对访问列表进行增加、删除操作。

 

访问列表的比较规则:

1、如果一个访问列表有多行语句,通常按顺序从第一条开始比较,然后再往下一条条比较。

2、一个数据包如果与访问列表的一行匹配,则按规定进行操作,不再进行后续的比较。

3、在每个访问列表的最后一行是隐含的deny any语句--意味着如果数据包与所有行都不配的话,将被丢弃。

 

访问列表的配置规则:

1、你在访问列表中可以写多条比较语句,它们是按你输入的顺序来进行放置的。

2、在标准访问列表扩展访问列表中,你不能单独删除其中的一行,只能删除整个列表。

3、每个列表应当至少有一个permit语句,否则将拒绝所有流量。

4、访问列表可以用在接口的出方向,也可以用在入方向,但是要注意,在一个接口在一个方向上只能有一个访问列表。

5、访问列表可以过滤通过路由器的流量,对自已产生的流量不起作用。

6、将标准访问列表要尽可能放置在靠近目的地址的地方

7、将扩展访问列表要尽量放置在靠近源地址的地方

 

ACL的运算符:

1eq   等于

2neq   不等于

3gt   大于

4lt   小于

5range   范围

 

ACL具体是过滤数据包还是路由,是由调用它的工具来决定的。

 

1、在路由器上,允许来自172.16.1.0网段的流量通过

access-list 1 permit 172.16.1.0 0.0.0.255

 

2、允许来自于172.16.1.0网段的流量去访问192.168.1.0网段

access-list 100 permit ip 172.16.1.0 0.0.0.255 192.168.1.0 0.0.0.255

 

3、拒绝来自于172.16.1.0网段的流量通过,允许其它任意的流量通过

access-list 1 deny 172.16.1.0 0.0.0.255

access-list 1 permit any

 

4、允许172.16.1.1 telnet 192.168.1.1的流量通过,其它拒绝

access-list 1 permit tcp host 172.16.1.1 host 192.168.1.1 eq telnet

 

5、抓出172.16.1.0的路由

access-list 1 permit 172.16.1.0 0.0.0.0

 

6、用一条ACL抓出172.16.0.0172.16.1.0172.16.2.0172.16.3.0四个子网

access-list 1 permit 172.16.0.0 0.0.3.0

 

7、用一条语句抓出172.16.0.0---172.16.255.0/24之间所有子网号为奇数的路由

access-list 1 permit 172.16.1.0 0.0.254.0

access-list 1 permit 172.16.0.0 0.0.254.0 (偶数路由)

 

8、用一条语句抓出前两个字节为172.16.0.0、掩码为255.255.255.0的所有路由

access-list 100 permit ip 172.16.0.0 0.0.255.255 host 255.255.255.0

 

ACL抓掩码,但要注意,只能用在route-map 中,在分布列表中无效

 

9、阻止外部发起的TCP会话,但允许内部发起的连接到外部的TCP会话。

access-list 100 permit tcp any any established

 

established  检查所有的TCP包的ACKSYN

 

10.deny tcp 10000-20000的端口

access-list 100 deny tcp any any rang 10000 20000

access-list 100 permit ip any any

 

Distribute-List>用来过滤路由

 

分布列表只能用于距离矢量协议,在链路状态协议下是没有意义的。

 

例一:

?

R1(config)#access-list 2 permit 2.2.2.0

R1(config-router)#distribute-list 2 in serial 0 (只允许2.2.2.0路由从S0进)

 

例二:

R1(config)#access-list 2 deny 2.2.2.0

R1(config)#access-list 2 permit any

R1(config-router)#distribute-list 2 out serial 1 (不允许2.2.2.0路由从S1接口出去)

 

例三:协议间重发布时过滤

?

 

R1(config)#access-list 1 permit 2.2.2.0

R1(config)#router ospf 110

R1(config-router)#distribute-list 1 out ospf 110

注意:当借助进程进行过滤时,仅允许使用关键字out,后面可以跟上协议名,但不能跟接口,因为无意义,详见卷一496页(注意:in后面不能跟协议,只有out后能跟)

 

OSPF中使用分布列表:(没啥意义)

   使用in关键字时后面可以跟接口

   out关键字后面只能跟进程,不能跟接口。

   实际上并不能对LSA进行过滤,只能对自已的LSDB进行过滤。

?

试验:

    1、在R1上写一个访问列表

       access-list 1 permit 172.16.1.1

    2、在R1OSPF进程下调用

       distribute-list 1 in s1

    3、查看R1R3的路由表,比较有啥不同

 

Prefix-List>前缀列表

设计用于专抓路由,不仅可以抓网络号,还可以抓掩码

 

R4(config)#ip prefix-list 2(用名字也行) permit 2.2.2.0/24

R4(config-router)#distribute-list prefix 2 in serial 1

 

ip prefix-list 2 permit 2.2.2.0/24       (匹配前24:2.2.2.* ,掩码必须为24位)

ip prefix-list 2 permit 2.2.2.0/24 ge 25 le 30 (匹配前24:2.2.2.* ,掩码必须为25-30位)

ip prefix-list 2 permit 2.2.2.0/24 le 32    (匹配前24:2.2.2.* ,掩码必须为24-32位)

ip prefix-list 2 permit 2.2.2.0/24 ge 26    (匹配前24:2.2.2.* ,掩码必须为26-32位)

ip prefix-list 3 permit 0.0.0.0/0 le 32     (匹配所有)不能像access-list哪样用any参数

ip prefix-list 1 permit 0.0.0.0/1 le 32                 a

ip prefix-list 1 permit 128.0.0.0/2 le 32              b

ip prefix-list 1 permit 192.0.0.0/3 le 32              c

ge必须大于前面的数字,小或等于le ,len<ge-value<=le-value

 

sh ip prefix-list用于查看

 

用前缀列表过滤ABC类路由

A类路由:ip prefix-list 1 permit 0.0.0.0/1 le 32

B类路由:ip prefix-list 1 permit 128.0.0.0/2 le 32

C类路由:ip prefix-list 1 permit 192.0.0.0/3 le 32

 

Route-Map

 

也叫路由图或者路由映射表,是对路由进行加工处理的工具。

 

1route-map可以调用ACLprefix抓出一部分路由进行加工处理

2、每一个route-map可以有多条语句,每条语句都有一个序号

3、每条语句都有两种处理方式:permit 或 deny

4、每条语句都有两种动作:match 和 set

 

route-map的使用分三步操作:

1、定义ACLprefix抓出路由

2、定义route-map说明对匹配的路由所采取的处理方式

3、调用route-map

 

route-map的匹配逻辑:

route-map NAME permit 10

match ip address x y z

                            -------> OR

match ip address a  

match ip address b  ¦ AND

match ip address c   

 

如不写match/set,默认:  match any

                       set   nothing

 

例一:

R1(config)#access-list 1 permit 172.16.1.0 0.0.0.0

R1(config)#route-map WOLF permit 10

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

R1(config-route-map)#set metric 88  

R1(config-route-map)#set metric-type type-1

 

·route-map的最后隐含了一条deny any的语句

·如果不写一句空Route-map 去允许其它路由通过,则没有定义的路由直接被丢弃。

 

R1(config)#route-map WOLF permit 20 通常都会加上这一句

 

例二:match 接口

还可以在重发布直连的时候match一个接口,直接写route-map就可以,不用定义访问列表。

R1(config)#route-map WOLF permit 10

R1(config-route-map)#match interface e0

 

使用route-maptag:

?

需求:ospf重发布进eigrp时不把从rip那里学的172.16.1.0传给eigrp

 

对一些路由打上tag,好让后面的路由器根据tag找出这些路由并进行相应的策略

 

R1(config)#route-map WOLF permit 10

R1(config-route-map)#match ip address 37 39

R1(config-route-map)#set metric 88  

 

到了R2之后,对打tag的路由丢弃

R1(config)#route-map WOLF deny 10

R1(config-route-map)#match tag 20

 

Policy-Based Routing

 

PBR就是使用route-map这一工具对某个接口进来的数据流做一些策略,符合条件的按相应的策略进行路由,不符合条件的按正常情况进行转发。

 

PBR的规则:

·PBR allows for source-based routing.

 

·PBR优于路由表-----路由器中没有到目标的路由,用PBR强行扔给下一跳路由器,只要下一个路由器有到目标的路由,依然可以到达,所以说PBR覆盖了正常的路由选择进程。

 

·PBR中不匹配的数据包不会DENY(丢弃),而是normal forwarding(正常转发)

 

注意: Applied to incoming packets PBR只针对于入项接口

 

例一:

第一步:

R3(config)#access-list 5 per 5.5.5.0 0.0.0.255

 

第二步:

R3(config)#route-map PBR per 10

R3(config-route-map)#match ip address 9

R3(config-route-map)#set ip next-hop 34.1.1.4 发给与本机直连的下一跳路由器,在MA网络中必须用这一方法,不要求有显示路由

 

第三步:

R3(config)#int s0  (入口调用策略)

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

 

其它写法:

R3(config)#route-map PBR permit 10

R3(config-route-map)#match ip address 5

R3(config-route-map)#set interface

 

R3(config)#route-map PBR per 10

R3(config-route-map)#match ip address 9

R3(config-route-map)#set ip precedence 2 对数据分组设置优先级

 

R3#debug ip policy

                      

·PBR默认对本地产生的数据流量不起效。也就是对自已产生的包不执行策略。

 

R3(config)#ip local policy route-map PBR (使PBR对本地数据流量有效)加上这一条命令才会对自已产生的包也做策略

0 0
原创粉丝点击