内容
前言
前提条件
需求
使用的组件
惯例
网络环境
只允许起源于 AS4 的网络进入路由器 1
只允许通过 AS4 的网络输入 AS3
拒绝起源于 AS4 的网络输入 AS3 但允许所有其它网络这么做
只允许起源于 AS4 的网络和直接连接到 AS4 的 AS 进入路由器 1
您能使用在ip as-path access-list命令的Regular Expression与边界网关协议(BGP)。 本文档介绍使用正则表达式的方案。 有关正则表达式的更多一般信息,请参阅有关正则表达式的 Cisco 文档。
本文档的读者应具备以下方面的知识:
本文档中的信息基于以下软件和硬件版本:
本文档中的信息都是基于特定实验室环境中的设备创建的。 本文档中使用的所有设备最初均采用原始(默认)配置。 如果您在一个工作网络中操作,在使用之前请确认您已经理解所有指令的潜在影响。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
这三个方案中引用了下面的网络图。
如果希望路由器 1 仅接收源自 AS 4 的路由(不接收 Internet 路由),则可以按如下方式在路由器 1 应用一个入站访问列表:
ip as-path access-list 1 permit ^4$
router bgp 1
neighbor 4.4.4.4 remote-as 4
neighbor 4.4.4.4 route-map foo in
route-map foo permit 10
match as-path 1
这样可确保只有源自 AS 4 的网络允许进入路由器 1。
如果希望仅允许已通过 AS 4 的网络从路由器 3 进入 AS 3,则可以在路由器 3 应用一个入站过滤器。
ip as-path access-list 1 permit _4_
router bgp 3
neighbor 2.2.2.2 remote-as 1
neighbor 2.2.2.2 route-map foo in
route-map foo permit 10
match as-path 1
可以使用下划线 (_) 作为 ip as-path access-list 命令中的输入字符串和输出字符串。 请注意,本例中没有使用锚定(例如,没有 ^),因此哪些自治系统在 AS 4 前后到来是无关紧要的。
如果要拒绝源自 AS 4 的所有网络,并允许所有其他路由从路由器 3 进入 AS 3,则可以在路由器 3 应用一个入站过滤器,如下所示:
ip as-path access-list 1 deny _4$
ip as-path access-list 1 permit .*
router bgp 3
neighbor 2.2.2.2 remote-as 1
neighbor 2.2.2.2 route-map foo in
route-map foo permit 10
match as-path 1
如果希望 AS 1 获得源自 AS 4 的网络以及 AS 4 的所有直接附加的 AS,可在路由器 1 应用以下入站过滤器。
ip as-path access-list 1 permit ^4_[0-9]*$
router bgp 1
neighbor 4.4.4.4 remote-as 4
neighbor 4.4.4.4 route-map foo in
route-map foo permit 10
match as-path 1
在 ip as-path access-list 命令中,尖号 (^) 表示输入字符串的开头并指定“AS”。 下划线 (_) 表示“AS 4”后面的字符串中有一个空字符串。 [0-9]* 指定具有有效 AS 编号的所有已连接的 AS 可以通过过滤器。 使用 [0-9]* 语法的优点是可以随意添加任何数量的 AS,而无需修改此命令字符串。 有关其他信息,请参阅 AS 正则表达式。