路由协议重分布acl prefix-list route-map

更新时间:2024-01-20 15:16:11 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

路由协议的迁移,路由协议的重分布,单点双向重分布时的汇总路由回馈问题,双向双出口重分布,ACL,distribute-list,prefix-list,route-map,作者: 许洪铭 <路由协议的迁移>

当网络中原有的路由协议不能再很好的满足需求的时候,就需要转换为另一种路由协议,这就需要进行路由协议的迁移。

原则:

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

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

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

在路由迁移过程中还有可能要改变原有的IP地址,使用新的编址方案,这就需要进行地址的迁移。

地址迁移过程:

1、配置第二地址

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

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

R1(config-is)#ip address address mask secondary 配置辅助地址

需要将辅助地址升级为主地址时,直接将辅助地址在接口配置即可(不要加secondary)他会自动冲掉主地址和辅助地址。

路由迁移过程:

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

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

3、将原有协议的AD值再改大,让新协议的路由起作用,修改过程中两个协议并存不影响正常工作。

4、如果路由正常,删除原有协议,必需要经过一段时间的测试之后才能进行删除。

R1(config-route)#distance eigrp 150 170 修改EIGRP路由协议的内部管理距离和外部管理距离(默认为170)

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

割接就是对网络的软件硬件进行升级

<路由协议的重分布>

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

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

在重分发时设定种子metric

协议 Seed Metric

RIP 无限大 即任何路由协议重分布进RIP时,默认的METRIC都是无穷大的,不可以使用,所以必须手工指定

EIGRP 无限大 也必须手工指定

OSPF 20 如果重分布进来的是BGP的话,Metric是1,这是个特例

IS-IS 0 可以不用手工指定,即可正常传递。

BGP 携带原来的Metric值

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

重分布分两种:

1、单向重分布

2、双向重分布

1)OSPF -> RIP:

将其它路由协议重分布进RIP,要注意加metric值

R1(config)#router rip

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

也可用以下方法指定Metric值

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

c=3)

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

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

2)RIP -> OSPF:

将其它路由协议重分布进OSPF,要注意加subnets参数

R1(config)#router ospf 110

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

默认的metric值为20,也可用以下命令指定:

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来过滤路由

3)ISIS -> EIGRP:

将其它路由协议重分布进EIGRP时也要指定Metric值

R1(config)#router eigrp 90

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

R1(config-router)#redistribute isis (level2) metric 1500 100 255 1 1500

(不加Metric,默认Seed Metric=infinity) BW DLY R 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。只能通过重分布直连解决。

4)EIGRP -> ISIS:

2、一个数据包如果与访问列表的一行匹配,则按规定进行操作,不再进行后续的比较。 3、在每个访问列表的最后一行是隐含的deny any语句--意味着如果数据包与所有行都不配的话,将被丢弃。

访问列表的配置规则:

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

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

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

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

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

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

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

ACL的运算符:

1、eq 等于

2、neq 不等于

3、gt 大于

4、lt 小于

5、range 范围

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 1 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

5+、允许172.16.1.1 到时 192.168.1.1的端口为4000-5000的流量通过

access-list 100 permit tcp host 172.16.1.1 host 192.168.1.1 range 4000 5000

6、用一条ACL抓出172.16.0.0、172.16.1.0、172.16.2.0、172.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

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 --允许ACK/RST=1的TCP报文通过,通常用于只允许内部的主机向外部发起TCP连接,不允许外部的主机向本网发起TCP连接

<Distribute-List>用来过滤路由

分布列表通过调用ACL来对路由进行过滤,可以在一个单独的路由选择区域内过滤,也可在路由协议之间做重分布的时候进行过滤。

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

例一:

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 eigrp 90//out是指的外部的,即外部的 eigrp 90重分布进来时,应用列表。

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

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

试验:

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

access-list 1 permit 172.16.1.1

2、在R1的OSPF进程下调用

distribute-list 1 in s1

3、查看R1和R3的路由表,比较有啥不同

总结:实际上并不能对LSA进行过滤,只能对自已的路由条目进行过滤。

<Prefix-List>前缀列表-仅用于过滤路由

和ACL类似的东东,设计用于专抓路由的工具,不仅可以匹配网络号,还可以匹配掩码

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参数

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

sh ip prefix-list用于查看

用前缀列表过滤A、B、C类路由

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>

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

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

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

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

4、每条语句对路由都有两种处理方式:permit 或 deny

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

1、定义ACL或prefix抓出路由

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

route-map WOLF per //没有写东西就是放行所有。

例一:

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-map打tag:

对一些路由打上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进行转发,如果没匹配上,再去找路由表进行转发,所以说PBR覆盖了正常的路由选择进程。即路由器上没有路由只有PBR也可以工作。

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

注意: Applied to incoming packets PBR只针对于入项接口(该项有疑问?)

例一:

第一步:

R1(config)#access-list 1 permit 1.1.1.0 0.0.0.255

R1(config)#access-list 2 permit 2.2.2.0 0.0.0.255

第二步:

R1(config)#route-map WOLF permit 10

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

R1(config-route-map)#set ip next-hop 12.1.1.2 发给与本机直连的下一跳路由器

R1(config)#route-map WOLF permit 20

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

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

第三步:

R1(config)#int e0/0 (入口调用策略)

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

PBR其它用途:

R1(config)#route-map PBR per 10

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

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

R3#debug ip policy

本地策略路由:

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

R3(config)#ip local policy route-map PBR (使PBR对本地数据流量有效)加上这一条命令才会对自已产生的包也做策略。其中 local 表示的就是本地流量。其它的设置与普通PBR相同。

R1(config)#route-map PBR per 10

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

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

R3#debug ip policy

本地策略路由:

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

R3(config)#ip local policy route-map PBR (使PBR对本地数据流量有效)加上这一条命令才会对自已产生的包也做策略。其中 local 表示的就是本地流量。其它的设置与普通PBR相同。

本文来源:https://www.bwwdw.com/article/z3bo.html

Top