一 关键问题表述
(一)ACL怎样匹配子网相同,掩码不同的路由条目?如何匹配掩码相同,子网不同的条目?
(二)汇总路由为什么可能导致BGP邻居的翻滚?
(三)使用attribite-map时,acl为什么无法匹配路由条目?
(四)怎样使用advertise-map,suppress-map,unsuppress-map,attribute-map,以及route-map五中路由图?给出实例。
(五)路由过滤的两种方案分别是?
(六)BGP产生协议默认路由的两种方式。
问题一:使用“标准ACL”匹配 掩码相同,子网不同的条目;使用“拓展ACL”匹配子网相同,掩码不同的路由条目。
因为标准ACL仅比较网络地址部分,不会检查网络掩码长度;扩展ACL就不仅比较网络地址部分,而且还检查网络掩码长度。这里的扩展ACL是一种特殊的扩展ACL,其基本格式为:
access-list access-list-number {deny | permit} ip source source-wildcard source-mask source-mask-wildcard。
实例:如图
基本配置结束后,可以在R2上检查到一共六条ospf路由:
下面我们在R2上使用分发列表distribute-list来操控路由:(Tips:一个路由进程下面仅能配置一条分发列表,否则,后配置的会覆盖之前配置)
1)a.使用标准ACL能够匹配掩码相同,子网不同的条目的证据:
Distribute-list1 in
Access-list 1 deny 172.16.1.0 0.0.2.255 删除1.0,3.0路由
Access-list 1 permit any
结论:标准的ACL完全能够匹配掩码相同,子网不同的条目
b.使用标准ACL不能够匹配子网相同,掩码不同的路由条目:
Distribute-list 1 in
Access-list 1 deny 1.0.0.0
Access-list 1 permit any
结论:使用acl匹配1.0.0.0/8,但是实际效果却是拒绝了1.0.0.0/24,1.0.0.0/8两条路由,所以不适用!
2)a.使用拓展ACL能够匹配子网相同,掩码不同的路由条目:无法匹配
b.使用拓展ACL不能够匹配掩码相同,子网不同的条目的证据:无法匹配(这里先于笔者的技术水平,暂时不能够提供多种协议下的匹配方案,请大家见谅!!!)
注意!!!实验失败!!!此种拓展的ACL不能匹配多种路由协议,例如OSPF,EIGRP,RIP等!目前仅仅在BGP 的定向过滤中使用
所以,再次尝试实验!
更改网络的基本配置使用BGP,再次实验!如图:
在r2上
Router bgp 100
Neighbor192.168.12.1 remote-as 100
Neighbor192.168.12.1 distribute-list 100 in
Access-list100 permit ip 1.0.0.0 0.0.0.0 255.0.0.0 0.0.0.0
总结:(目前仅仅使用与BGP的高级配置中neighbor x.x.x.x distribute-list x in ,其他协议中不做探究)
如下面的这两条扩展ACL配置是允许192.108.0.0/16路由,而禁止其中的任一明细路由,包括192.108.0.0/24。
access-list 101permit ip 192.108.0.0 0.0.0.0 255.255.0.0 0.0.0.0 !---表示要精确比较源地址和源掩码的每一位,只有完全相同时才允许
access-list 101 denyip 192.108.0.0 0.0.255.255 255.255.0.00.0.255.255 !---表示仅同时精确比较源地址和源掩码的前16位(后16位不比较),只要前16位相同则禁止,是在上面那条规则后进行比较的
而下面这两条扩展ACL配置是允许131.108.0/24路由,但禁止131.108/16路由和131.108.0.0中的其他所有子网路由。
access-list 101permit ip 131.108.0.0 0.0.0.0 255.255.255.0 0.0.0.0 !---表示要精确比较源地址和源掩码的每一位,只有完全相同时才允许
access-list 101 denyip 131.108.0.0 0.0.255.255 255.255.0.0 0.0.255.255!---表示仅同时精确比较源地址和源掩码的前16位(后16位不比较),只要前16位相同则禁止,是在上面那条规则后进行比较的
问题二:汇总路由为什么可能导致BGP邻居的翻滚?
BGP中的路由条目,如果是通过联邦方式传递的话,那么必定会在汇总路由的AS-PATH上添加括号,以示区分。
图示:
以172.16.0.0/24为例,在R2上使用aggregate-address 172.16.0.0 255.255.252.0 as-set汇聚后,那么汇总路由的PATH属性可能为
((65530)(65531)),而在程序中是不支持此种命令的说!所以,我们需要在R2上,对于不同的联邦as,分别汇总!!!切记切记!
问题三:使用attribite-map时,acl为什么无法匹配路由条目?从而修改汇总之后的属性?
注意:当我们需要更改汇总路由的属性的时候,不需要再次匹配汇总路由,而是直接修改或者设置汇总路由的值即可。
例如:aggregate-address 172.16.0.0 255.255.254.0 as-set- attribute-mapattr1
route-map attr1 permit 10
match ipaddress 100(错误:attribute-map 只是针对汇总路由,不需要再做ACL的匹配)
setlocal-preference 99
问题四:
1)以上已经解释了attribute-map的使用,route-map的使用方法与attribute-map相同,但是这两个不能够共同存在的说
2)suppress-map需要在之后的路由图中匹配相应的子网,而不需要设置路由条目的属性值;unsuppress-map 与之类似,只是效果有所不一致!
3)advertise-map 需要在之后的route-map中,选定想要学习的路由条目(对象时路由条目,不是router-id)
问题五:
1)根据AS-PATH来过滤路由
Ip as-pathaccess-list 5 permit _200$//匹配起源于200的路由条目
Routerbgp 65532
Neighbor192.168.57.7 filter-list 5 in
2)根据目标路由条目来过滤distribute-list
a.全局过滤
Router bgp 100
Distribute-list1 in
b.针对某个邻居过滤
Routerbgp 100
Neighbor1.1.1.1 distribute-list 1 in
问题六:
1)ip route 0.0.0.0 0.0.0.0 null 0
router bgp 100
network 0.0.0.0
2)iproute 0.0.0.0 0.0.0.0 null 0
router bgp 100
redistribute static
default-information originate