❶ 如何使用 Quagga BGP路由器来过滤 BGP 路由
1. 为路由器间的协议交换增加认证功能,提高网络安全性。路由器的一个重要功能是路由的管理和维护,目前具有一定规模的网络都采用动态的路由协议,常用的有:RIP、EIGRP、OSPF、IS-IS、BGP等。当一台设置了相同路由协议和相同区域标示符的路由器加入网络后,会学习网络上的路由信息表。但此种方法可能导致网络拓扑信息泄漏,也可能由于向网络发送自己的路由信息表,扰乱网络上正常工作的路由信息表,严重时可以使整个网络瘫痪。这个问题的解决办法是对网络内的路由器之间相互交流的路由信息进行认证。当路由器配置了认证方式,就会鉴别路由信息的收发方。有两种鉴别方式,其中“纯文本方式”安全性低,建议使用“MD5方式”。
2. 路由器的物理安全防范。
路由器控制端口是具有特殊权限的端口,如果攻击者物理接触路由器后,断电重启,实施“密码修复流程”,进而登录路由器,就可以完全控制路由器。
3. 保护路由器口令。
在备份的路由器配置文件中,密码即使是用加密的形式存放,密码明文仍存在被破解的可能。一旦密码泄漏,网络也就毫无安全可言。
❷ MPLS VPN RD RT MP-BGP谁能把这些关系给顺一下
BGP MPLS VPN基本原理,及跨域VPN,一分钟了解下
原创华亿网络2020-03-04 13:16:52
一、基本原理
1、私网标签分配
在 BGP/MPLS IP VPN 中,PE 通过 MP-BGP 发布私网路由给骨干网的其他相关的 PE 前,需
要为私网路由分配 MPLS 标签(私网标签)。当数据包在骨干网传输时,携带私网标签。
PE 上分配私网标签的方法有如下两种:
1)、基于路由的 MPLS 标签分配:为 VPN 路由表的每一条路由分配一个标签(one
label per route)。这种方式的缺点是:当路由数量比较多时,设备入标签映射表
ILM(Incoming Label Map)需要维护的表项也会增多,从而提高了对设备容量的
要求。
2)、基于 VPN 实例的 MPLS 标签分配:为整个 VPN 实例分配一个标签,该 VPN 实例里
的所有路由都共享一个标签。使用这种分配方法的好处是节约了标签。
2、私网路由交叉
两台 PE 之间通过 MP-BGP 传播的路由是 VPNv4 路由。当接收到 VPNv4 路由,PE 先进行
如下处理:
1)、 检查其下一跳是否可达。如果下一跳不可达,该路由被丢弃。
2)、 对于 RR 发送过来的 VPNv4 路由,如果收到的路由中 cluster_list 包含自己的
cluster_id,则丢弃这条路由。
3)、 进行 BGP 的路由策略过滤,如果不通过,则丢弃该路由。
之后,PE 把没有丢弃的路由与本地的各个 VPN 实例的 Import Target 属性匹配。VPNv4 路
由与本地 VPN 实例的 Import VPN-Target 进行匹配的过程称为私网路由交叉。
(2)bgp过滤邻居路由扩展阅读:
公网隧道迭代
为了将私网流量通过公网传递到另一端,需要有一条公网隧道承载这个私网流量。因此私
网路由交叉完成后,需要根据目的 IPv4 前缀进行路由迭代,查找合适的隧道(本地交叉的
路由除外);只有隧道迭代成功,该路由才被放入对应的 VPN 实例路由表。将路由迭代到
相应的隧道的过程叫做隧道迭代。
隧道迭代成功后,保留该隧道的标识符(Tunnel ID),供后续转发报文时使用。Tunnel ID
用于唯一标识一条隧道。VPN 报文转发时根据 Tunnel ID 查找对应的隧道,然后从隧道上
发送出去。
私网路由的选择规则
经过路由交叉和隧道迭代的路由并不是全部被放入 VPN 实例路由表。从本地 CE 收到的路
由和本地交叉路由也不是全部被放入 VPN 实例路由表。
对于到同一目的地址的多条路由,如果不进行路由的负载分担,按如下规则选择其中的一
条:
1)、 同时存在直接从 CE 收到的路由和交叉成功后的同一目的地址路由,则优选从 CE
收到的路由。
2)、 同时存在本地交叉路由和从其他 PE 接收并交叉成功后的同一目的地址路由,则优
选本地交叉路由。
❸ 【网络工程师配置篇】——BGP路由基础配置(eNSP)
1、BGP(Border Gateway Protocol)是一种不同自治系统的路由设备之间进行通信的外部网关协议(Exterior Gateway Protocol,EGP),其主要功能是在不同的自治系统(Autonomous Systems,AS)之间交换网络可达信息,并通过协议自身机制来消除路由环路。BGP 使用TCP协议作为传输协议,通过 TCP 协议的可靠传输机制保证 BGP 的传输可靠性。运行 BGP 协议的 Router称为 BGP Speaker,建立了 BGP 会话连接(BGP Session)的 BGP Speakers 之间被称作对等体(BGP Peers)。
2、BGP Speaker之间建立对等体的模式有两种:IBGP(Internal BGP)和EBGP(External BGP)。IBGP 是指在相同 AS内建立的 BGP 连接,EBGP是指在不同 AS 之间建立的 BGP连接。二者的作用简而言之就是:EBGP 是完成不同 AS 之间路由信息的交换,IBGP是完成路由信息在本 AS内的传递。
组建BGP网络是为了实现网络中不同AS之间的通信。配置BGP的基本功能是组建BGP网络最基本的配置过程,主要包括三部分:
1、创建BGP进程:只有先创建BGP进程,才能开始配置BGP的所有特性。
2、建立BGP对等体关系:只有成功建立了BGP对等体关系,设备之间才能交换BGP消息。
3、引入路由:BGP协议本身不发现路由,只有引入其他协议的路由才能产生BGP路由。
1.拓扑图
注意:缺省情况下,BGP会自动选取系统视图下的Router ID作为BGP协议的Router ID。如果选中的Router ID是物理接口的IP地址,当IP地址发生变化时,会引起路由的振荡。为了提高网络的稳定性,可以将Router ID手动配置为Loopback接口地址。
2.实验目的:
要使AS100网络(R1:1.1.1.1)和AS200(R4:4.4.4.4)网络路由可达。需要在所有router间运行BGP协议,R1和R2、R3之间建立EBGP连接,R2、R3和R4之间建立IBGP全连接。在AS200内,使用IGP协议来计算路由(该例使用OSPF作为IGP协议)。
3.配置思路:
1)搭建好拓扑图环境,标出规划好的IP地址
2)修改网络设备默认名称、配置好IP地址
3)配置基本OSPF(在AR2、AR3、AR4内做IBGP)
4)配置EBGP
4.配置过程:
步骤一:修改网络设备默认名称、配置好IP地址
1)配置各PC信息 (略)
2)配置路由器AR1默认名称及接口IP
<Huawei>sys //进入系统视图模式
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR1 //修改设备名称
[AR1]int g0/0/0 //进入接口
[AR1-GigabitEthernet0/0/0]ip add 192.168.12.1 24 //给接口配IP
[AR1-GigabitEthernet0/0/0]int g0/0/1
[AR1-GigabitEthernet0/0/1]ip add 192.168.13.1 24
[AR1-GigabitEthernet0/0/1]int loopback 0
[AR1-LoopBack0]ip add 192.168.1.1 32
2)配置路由器AR2默认名称及接口IP
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR2
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ip add 192.168.12.2 24
[AR2-GigabitEthernet0/0/0]int g0/0/1
[AR2-GigabitEthernet0/0/1]ip add 192.168.24.2 24
[AR2-GigabitEthernet0/0/1]int loopback 0
[AR2-LoopBack0]ip add 192.168.2.2 32
3)配置路由器AR3默认名称及接口IP
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR3
[AR3]int g0/0/0
[AR3-GigabitEthernet0/0/0]ip add 192.168.13.3 24
[AR3-GigabitEthernet0/0/0]int g0/0/1
[AR3-GigabitEthernet0/0/1]ip add 192.168.34.3 24
[AR3-GigabitEthernet0/0/1]int loopback 0
[AR3-LoopBack0]ip add 192.168.3.3 32
4)配置路由器AR4默认名称及接口IP
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR4
[AR4]int g0/0/0
[AR4-GigabitEthernet0/0/0]ip add 192.168.34.4 24
[AR4-GigabitEthernet0/0/0]int g0/0/1
[AR4-GigabitEthernet0/0/1]ip add 192.168.24.4 24
[AR4-GigabitEthernet0/0/1]int loopback 0
[AR4-LoopBack0]ip add 192.168.4.4 32
步骤二、配置基本OSPF(在AR2、AR3、AR4内做IBGP):
[if !supportLists]1) [endif]R2
[AR2]ospf router-id 2.2.2.2 //使能OSPF,并配置router-id
[AR2-ospf-1]area 0 //配置area区域
[AR2-ospf-1-area-0.0.0.0]network 192.168.24.0 0.0.0.255 //发布AS内网段
[AR2-ospf-1-area-0.0.0.0]network 192.168.2.2 0.0.0.0
[if !supportLists]2) [endif]R3
[AR3]ospf router-id 3.3.3.3
[AR3-ospf-1]area 0
[AR3-ospf-1-area-0.0.0.0]network 192.168.34.0 0.0.0.255
[AR3-ospf-1-area-0.0.0.0]network 192.168.3.3 0.0.0.0
3)R4
[AR4]ospf router-id 4.4.4.4
[AR4-ospf-1]area 0
[AR4-ospf-1-area-0.0.0.0]network 192.168.24.0 0.0.0.255
[AR4-ospf-1-area-0.0.0.0]network 192.168.34.0 0.0.0.255
[AR4-ospf-1-area-0.0.0.0]network 192.168.4.4 0.0.0.0
4)配置验证,配置IBGP后,同一个AS内的网段可以互通,不同AS的网段不能互通
步骤三、配置EBGP
[if !supportLists]1) [endif]R1:
[AR1]bgp 100
[AR1-bgp]router-id 1.1.1.1
[AR1-bgp]peer 192.168.12.2 as-number 200
[AR1-bgp]peer 192.168.13.3 as-number 200
[AR1-bgp]network 192.168.1.1 32
[if !supportLists]2) [endif]R2:
[AR2]bgp 200 //创建bgp编号200 (AS200)
[AR2-bgp]router-id 2.2.2.2 //指定router-id
[AR2-bgp]peer 192.168.12.1 as-number 100 //和邻居网络建立邻接关系
[AR2-bgp]peer 192.168.24.4 as-number 200 //和邻居网络建立邻接关系
[AR2-bgp]peer 192.168.24.4 next-hop-local //要将BGP路由发送给192.168.24.4这个邻居时,将路由的下一跳设置成自己的地址,这个地址是与192.168.24.4建立邻居所使用的源地址
该提示信息说明BGP邻居建立成功
[if !supportLists]3) [endif]R3:
[AR3]bgp 200
[AR3-bgp]router-id 3.3.3.3
[AR3-bgp]peer 192.168.13.1 as-number 100
[AR3-bgp]peer 192.168.34.4 as-number 200
[AR3-bgp]peer 192.168.34.4 next-hop-local
4)R4:
[AR4]bgp 200
[AR4-bgp]router-id 4.4.4.4
[AR4-bgp]peer 192.168.24.2 as-number 200
[AR4-bgp]peer 192.168.34.3 as-number 200
[AR4-bgp]network 192.168.4.4 32
配置EBGP后,我们发现由BGP控制选路后,从AR4到AR1的报文走的是AR2这条路径
1)查看不同AS之间的连通性:
通过Ping命令结果,我们发现在配置EBGP后,相同AS与不同AS之间都可以互相通信
2)在AR1查看路由表:
在路由表可以发现,EBGP目标地址是192.168.4.4,下一跳是192.168.12.2,说明192.168.1.1与192.168.4.4之间的通信是经过的路由器AR2。
3)查看抓包信息:
在AR1与AR2相连的接口开启抓包,可以抓到AR4与AR1通信的TCMP报文,同时我们发现BGP的传输协议是TCP,端口号为179
在AR1与AR3相连的接口上开启抓包,发现,在这里没有AR4与AR1通信的信息,说明,通过BGP选路之后,AR4要到AR1的数据会通过AR2发送。
至此,BGP实验完成,我们在实验中讲到,BGP自动完成了选路,那么要怎么手动控制选路呢?加入交流群696283186获取更多实验详细配置
总结:BGP具有以下几个特性:
1) 传输协议:TCP,端口号179;
2) BGP是外部路由协议,用来在AS之间传递路由信息;
3) 是一种增强的路径矢量路由协议;
4) 拥有可靠的路由更新机制;
5) 具备丰富的Metric度量方法;
6) 无环路协议设计;
7) 为路由条目附带多种属性信息;
8) 支持CIDR(无类别域间选路);
9) 丰富的路由过滤和路由策略;
10) 无须周期性更新;
11) 路由更新时只发送增量路由;
12) 周期性发送KeepAlive报文,以保持TCP连通性;
❹ 【网络工程师路由篇】BGP 入门实验
R1、R2、R3属于AS 123;R4属于AS 400;
R1、R2、R3运行OSPF,运行OSPF的目的是为了打通AS 123内的路由;
R3-R4之间建立EBGP邻居关系,R2不运行BGP;
R1-R3之间建立IBGP邻居关系;
在R4上,将路由4.4.4.0/24发布到BGP。
R1的配置如下(省略接口IP地址的配置):
R2的配置比较简单,就是运行OSPF而已,这部分配置不再赘述。
R3的配置如下:
R4的配置如下:
完成上述配置后,在R3上查看BGP路由表:
我们看到R3已经学习到了R4通告过来的BGP路由4.4.4.0/24。并且该条BGP路由的NextHop属性值为10.1.34.4,这个下一跳地址是路由可达的。该条路由在R3的BGP路由表里有“* >” 标记,其中“*”表示这条路由是可用的(valid),只有当BGP路由的NextHop为路由可达时,该BGP路由才会被视为可用;而“>”则表示这条路由是被优选的路由,或者说是到达该目的网络的最优路由。
BGP路由的NextHop属性是一个非常重要的属性,它是所有BGP路由都会携带的路径属性,它指示了到达目的网络的下一跳地址。
在R3上查看路由表:
R3已经将到达4.4.4.0/24的BGP路由加载到了全局路由表中。
对于R3而言,到达4.4.4.0/24的路由已经被优选,接下来,它会将该路由通告给IBGP邻居R1。
在R1上查看BGP路由表:
我们看到,R1的BGP路由表中已经出现了4.4.4.0/24路由,而这条路由的NextHop属性值是10.1.34.4,但是R1在本地路由表中没有到达10.1.34.4的路由,因此10.1.34.4不可达,如此一来,该BGP路由也就不可用了(在BGP路由表中没有*号标记),既然不可用,自然就不能装载进路由表中使用。
那么怎么解决这个问题呢?一个最简单的方法是,为R1配置一条静态路由:ip route-static 10.1.34.0 24 10.1.23.3,这样一来R1的路由表里就有了到达10.1.34.4的路由,那么BGP路由4.4.4.0/24的下一跳地址就可达了,对应的BGP路由自然也就可用了。但是这种方法太“笨拙”。另一种方法是,在R3的OSPF进程中将10.1.34.0/24网段也注入进去,使得R1能够通过OSPF学习到10.1.34.0/24路由,这种方法也是可行的。但是由于R3-R4之间的互联链路被视为AS外部链路,因此10.1.34.0/24作为外部网段往往不会被宣告进AS内的IGP。那么还有什么其他办法能解决这个问题么?
BGP路由器在向EBGP对等体发布某条路由时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址。如下图所示,R4将4.4.4.0/24通告给R3时,下一跳为10.1.34.4,也就是R4的GE0/0/0接口地址。
BGP路由器将本地始发路由发布给IBGP对等体时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址。
BGP路由器在向IBGP对等体发布从EBGP对等体学来的路由时,并不改变该路由信息的下一跳属性。
例如下图所示,R3收到R4通告的EBGP路由,该路由的下一跳属性值为10.1.34.4,它将该条路由通告给IBGP对等体R1的时候,路由的下一跳属性值不会发生改变,仍然为10.1.34.4。
这就造成了我们上面所述的问题,由于R1没有到达10.1.34.0/24的路由,因此下一跳地址10.1.34.4不可达,从而导致BGP路由4.4.4.0/24不可用。
还有一个方法可以解决这个问题:在R3上使用next-hop-local命令,可修改BGP路由的下一跳属性值为自身。在下图中,我们在R3上增加了peer 10.1.12.1 next-hop-local命令,那么这样一来,当R3再将EBGP路由通告给R1的时候,会将这些路由的下一跳属性值修改为自己的更新源地址(10.1.23.3),而R1已经通过OSPF获知到达10.1.23.0/24的路由,因此10.1.23.3是可达的。
完成配置后,我们在R1上查看BGP路由表:
可以手工指定用于建立BGP连接的源接口及源IP地址。命令如下:[Router-bgp] peer x.x.x.x connect-interface intf [ ipv4-src-address ]缺省情况下,BGP使用报文的出接口作为BGP报文的源接口。当用户完成peer命令的配置后,设备会在自己的路由表中查询到达该对等体地址的路由,并从该路由得到出接口信息。如果peer命令中没有指定接口(connect-interface)和IP地址(ipv4-src-address),那么设备将会使用前述出接口和该接口的IP地址作为BGP报文的源接口和源地址。
为了使物理接口在出现问题时,设备仍能发送BGP报文,可将发送BGP报文的源接口配置成Loopback接口。在使用Loopback接口作为BGP报文的源接口时,必须确认BGP对等体的Loopback接口的地址是可达的。由于一个AS内往往会运行IGP协议,因此AS内的设备能够通过该IGP协议获知到达其他设备的Loopback接口的路由。在AS内部,IBGP邻居关系通常基于Loopback接口建立。
EBGP邻居之间通常使用直连接口的IP地址作为BGP报文源地址,如若使用环回接口建立EBGP邻居关系,要配置peer ebgp-max-hop命令,允许EBGP通过非直连方式建立邻居关系。
同样是上面的环境,我们稍作变更,在R1及R3上创建loopback0,地址分别为1.1.1.1/32及3.3.3.3/32,然后设备各自将loopback0宣告进OSPF,使得彼此都能通过OSPF学习到对方的Loopback0路由。
我们修改BGP的配置,使得R1-R3之间的IBGP邻居关系基于Loopback0来建立。
R1的关键配置如下:
R3的关键性配置如下:
注意,务必要将R1及R3的Loopback0接口激活OSPF。
经过前面的讲解,我们的环境现在是这样的:R1-R3之间建立了基于Loopback接口的IBGP邻居关系;R3对R1配置了next-hop-local;R3与R4之间仍然维持基于直连接口的EBGP邻居关系;R4在BGP中发布路由4.4.4.0/24。
现在R1是能够学习到BGP路由4.4.4.0/24的,并且该路由也是被优选的,此时这条路由会被R1装载进全局路由表使用,但是,这是不是意味着R1就能够ping通4.4.4.4了呢?经过测试你可能会发现:无法ping通?因为数据包在R2这里就被丢弃了,R2并没有运行BGP,因此它无法学习到BGP路由4.4.4.0/24。
怎么才能让R1 ping通4.4.4.4呢?方法之一是在R3上将BGP路由重发布进OSPF,使得R2能够通过OSPF学习到BGP路由4.4.4.0/24,但是这种方法存在一定的风险,因为我们知道BGP承载的前缀数量往往是非常庞大的;另一种方法是,让R2也运行BGP,并与R1、R3建立IBGP邻居关系,这样一来问题就解决了。那么BGP邻居关系就变成了如下图所示。具体配置此处不再赘述。
通常情况下,EBGP邻居之间必须具有直连的物理链路,EBGP邻居关系也将基于直连接口来建立,如果不满足这一要求,则必须使用peer ebgp-max-hop命令允许它们之间经过多跳建立TCP连接。
peer ebgp-max-hop命令用来配置允许BGP同非直连网络上的对等体建立EBGP连接,并同时可以指定允许的最大跳数。命令格式如下:[Router-bgp] peer ipv4-address ebgp-max-hop [ hop-count ]
如上图所示,R1及R2要基于Loopback口建立EBGP邻居关系。这种情况也属于EBGP邻居之间不基于直连接口建立邻居关系的场景,必须配置peer ebgp-max-hop命令。图中R1与R2之间的两条物理链路是为了冗余性考虑。R1的关键配置如下:
R2的关键配置如下:
BGP邻居表
BGP表
查看BGP条目的详细信息:
路由表,display ip routing-table
❺ 如何在Quagga BGP路由器中过滤BGP路由
BGP常用端口 TCP/UDP 179端口,你可以在防火墙设置中禁用这两个端口试试。可以登录360官网进行查询了解更多的相关知识,也可以做在线咨询,会有专业的人员为你解答
❻ BGP的filter-policy和route-policy处于什么层次
Filter-policy属于复路制由过滤,只能过滤;
router-policy属于路由策略,可以在条件满足的时候修改报文的属性。
其实Route-policy要比Filter-policy灵活些,Filter-policy只能在BGP视图、BGP-IPv4单播地址族视图等视图下配置,不能针对单个邻居进行路由过滤。而Route-policy可以对network的路由,从对等体接收或者发送等的路由进行过滤,相对来说灵活些。都是过滤后再加入ip routing-table。
❼ 如下哪些过滤器可以实现对bgp路由的控制和过滤
写好PBR,然后挂在你建立BGP的邻居的配置底下就行了。
❽ 关于BGP的路由策略问题,如何限制接收、本地宣告、转发的路由掩码
1.写缺省路由
2.重分布进bgp
3.用route-map和perfix干掉用户不要的流量
你用route-map试试,把你想过滤的路由直接在出方向干掉
用前缀列表匹配,然后deny
deny小段可以,你前缀列表一定要deny的精确,其实最好是写很多条,这样逻辑上好写,也精确