BGP基本配置的方法
边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。

as100 as200
router a-------------------router b---------------------router c
s0:192.1.1.1/24 e0:193.1.1.3/24
s0:192.1.1.2/24 e0 193.1.1.2
//// router a ////
int lo0
ip addr 1.1.1.1 255.255.255.0
int s0/0
ip addr 192.1.1.1 255.255.255.0
clockrate 500000
router bgp 100
neighbor 192.1.1.2 remote-as 200 //指定邻居路由器和它所在的自治系统
//// router b ////
int lo0
ip addr 2.2.2.2 255.255.255.0
int e0/0
ip addr 193.1.1.2 255.255.255.0
int s0/0
ip addr 192.1.1.2 255.255.255.0
router bgp 200
neighbor 192.1.1.1 remote-as 100
neighbor 193.1.1.3 remote-as 200
//// router c ////
int lo0
ip addr 3.3.3.3 255.255.255.0
int e0/0
ip addr 193.1.1.3 255.255.255.0
router bgp 200
neighbor 193.1.1.2 remote-as 200
////监视和测试配置////
router a# show ip bgp neighbors
remote-as 200
bgp version 4,remote router id 2.2.2.2
bgp state = established
现在A将通过BGP向B通告路由1.0.0.0,必须满足2个条件:
1、通过使用network命令或redistribute,BGP进程必须能知道路由。
2、被通告路由必须在IP路由表中。
我们将在BGP进程下使用network命令。这个命令满足了第一条,使得BGP进程知道路由。此network命令能使你更好控制从IGP重分布什么到BGP,并使用户能分别列出需经BGP通告的前缀。CISCO路由器能被配置的网络描述最大数为200。如果有超过200个网络需要通告,那就需要动态重分布。
由于网络1.0.0.0是直接相连的网络,它存在于IP路由表中,故第二个条件满足。
显示A上的IP路由表。注意网络1.0.0.0在IP路由表中。
a# show ip route
C 1.0.0. is directly connected,loopback 0
no shynchronization
在路由器A上,在BGP进程下增加命令network 1.0.0.0
a# conf t
router bgp 100
netw 1.0.0.0
用show ip bgp显示B上的IP BGP表,network 1.0.0.0是通过192.1.1.1得到的
B# show ip bgp
network next-hop metric loca pref weight path
*>1.0.0.0 192.1.1.1 0 0 100 i
///// *表示有效,>表示最佳路由
b# show ip ro
B 1.0.0.0/8 [20/0] via 192.1.1.1, 00:12:02
用show ip bgp显示C上的IP BGP表,注意network 1.0.0.0出现在BGP表中,它的下一跳是192.1.1.1(未变),此路由是有效的(用*号标出),它是通过iBGP会话得到的,在网络号前加字母i表示了这一状态。
c# show ip bgp
network next-hop metric locprf weight path
* i1.0.0.0 192.1.1.1 0 0 100 i
C# show ip route
无1.0.0.0路由到网络1.0.0.0的路由不在IP路由表中有双重原因。
1、192.1.1.1不在C的路由表。而且下一跳地址是:从该处得到此路由的EBGP邻居的IP地址。当路由通过EBGP注入到AS中,从EBGP获得的下一跳被无改变地传送到IBGP中。
2、在缺省情况下BGP和IGP必须是同步的(因为网络1.0.0.0不是通过IGP得到的)。这意味着路由器B上的BGP知道的路由没有被重分布到IGP,这两者是不同步的。no synchronization
为解决第一个问题:
B# router bgp 200
neighbor 193.1.1.3 next-hop-self
为解决第二个问题:
C# router bgp 200
BGP基本配置的方法的更多相关文章
- win10 64位专业版系统中显示32位dcom组件配置的方法
word.excel是32位的组件,当用户64位系统在运行窗口中输入dcomcnfg命令时,在打开的组件服务管理窗口,是找不到Microsoft Excel.word程序的.另外,Windows 环境 ...
- 框架源码系列四:手写Spring-配置(为什么要提供配置的方法、选择什么样的配置方式、配置方式的工作过程是怎样的、分步骤一个一个的去分析和设计)
一.为什么要提供配置的方法 经过前面的手写Spring IOC.手写Spring DI.手写Spring AOP,我们知道要创建一个bean对象,需要用户先定义好bean,然后注册到bean工厂才能创 ...
- 解决PLSQL报错及配置InstantClient方法
某次,在使用PLSQ链接数据库的时候,出现了错误如下: 然后点击窗口上面的 工具 –> 首选项 –> Oracle –> 连接 ,然后看到这样的窗口: 用电脑根据上面的地址搜索不到 ...
- 对KVM虚拟机进行cpu pinning配置的方法
这篇文章主要介绍了对KVM虚拟机进行cpu pinning配置的方法,通过文中的各种virsh命令可进行操作,需要的朋友可以参考下 首先需求了解基本的信息 1 宿主机CPU特性查看 使用virsh n ...
- postgresql修改配置生效方法
对于配置服务器,,太多时候我们在Linux中做的操作是,配置*.conf文件,然后重启服务.而很多服务都具有reload功能,而但是具体到某个配置,有时候直接说出需不需要重启服务而使得配置生效,这并不 ...
- 解决IE下载 apk/ipa 变成zip:Android 手机应用程序文件下载服务器 配置解决方法
解决IE apk/ipa变成zip:Android 手机应用程序文件下载服务器 配置解决方法 APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Da ...
- postgresql 修改配置生效方法
对于配置服务器,,太多时候我们在Linux中做的操作是,配置*.conf文件,然后重启服务.而很多服务都具有reload功能,而但是具体到某个配置,有时候直接说出需不需要重启服务而使得配置生效,这并不 ...
- windows下mysql中文乱码, 配置解决方法
内容源自:windows下mysql中文乱码, 配置解决方法 解决方法:打开mysql安装目录,打开my.ini文件(如果只有my-default.ini文件,先将其改名为my.ini!!!) 修改内 ...
- 2018.12.15 struts.xml 一般配置文件写法 && 配置动态方法
struts.xml 原始配置文件 配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE s ...
随机推荐
- Context的作用
context用于访问全局资源 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSta ...
- react: redux-devTools
import {composeWithDeTools} from 'redux-devtools-extension'; const bindMiddleware = middleware => ...
- L144
Puny Dwarf Planet, Named 'Goblin,' Found Far Beyond PlutoA scrawny dwarf planet nicknamed "the ...
- 2017.11.4 Datasheet 查找替代料
- android Handler的使用(二)
Handler的使用(二) 一. Handler与线程的关系 Handler在默认情况下,实际上它和调用它的Activity是处于同一个线程的. 例如在Handler的使用(一)的示例1中,虽然 ...
- [置顶]
Kubernetes1.7新特性:新增自动伸缩条件和参数
一.核心概念 Horizontal Pod Autoscaling,简称HPA,是Kubernetes中实现POD水平自动伸缩的功能.云计算具有水平弹性的特性,这个是云计算区别于传统IT技术架构的主要 ...
- Electron 使用 Webpack2 预编译 Electron 和 Browser targets
Electron 使用 Webpack2 预编译 Electron 和 Browser targets 前一篇文章说了说怎样使用 Webpack2 预编译 Electron 应用,但是有时候我们希望使 ...
- 如何突破JAVA程序员三年的门槛
第一阶段:三年 我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人.这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本 上的内容迈向真正的企业级开发.我们知道如何团 ...
- Discuz代码研究-编码规范
Discuz中的编码规范很值得PHP开发人员借鉴.里面既介绍了编码时代码标记,注释,书写规则,命名原则等方面基础的内容,对代码的安全性,性能,兼容性,代码重用,数据库设计,数据库性能及优化作了阐述,这 ...
- VS2010中使用 SpecFlow + Selenium.WebDriver
安装(VS扩展.程序包) [工具]->[扩展管理器],安装SpecFlow [工具]->[库程序包管理]->[程序包管理器控制台] PM> Install-Package Sp ...