一、
IP
地址的规划
1.
路由器
①
端口
②
路由协议的
network
声明
③
控制列表
④
NAT
⑤
DHCP
⑥
路由过滤
⑦
静态路由(默认路由)
2.
交换机
①
管理
IP
②
vlan
通信
③
三层交换
④
访问控制列表
⑤
HSRP
//
添加从属
IP
:
ip address 192.168.10.1 255.255.255.0 secondary
//
查看端口从属
IP
信息:
show ip int fa0/0
二、路由协议的再发布
1.
准备工作
①
确认硬件是否需要升级
//
更新协议硬件是否支持,性能是否够用
②
确认
IOS
是否需要升级
③
对老的配置进行备份
④
定义边界路由器:同时运行多种路由协议的路由器
⑤
定义“核心”和“边缘”:把边缘路由再发布到核心,把核心路由以“汇总方式”或“默认路由”发布到边缘
⑥
定义发布方向
⑦
定义“种子度量”:需要做“再发布路由”的度量
//
协议默认种子度量:
a.
向
RIP/EIGRP
环境发布的路由:无穷大
b.
向
OSPF
环境发布的路由:
20
(如果
BGP
向
OSPF
环境发布,路由的度量为
1
)
c.
向
ISIS
环境发布的路由:
0
d.
向
BGP
环境发布的路由:等于
IGP
的度量
2.
路由再发布的具体配置
如果把路由协议
A
的路由再发布到路由协议
B
的环境,在边界路由器上:
(
config
)
#router B [
自治系统号
/
进程号
]
(
config-router
)
#redistribute A
参数
①
向
RIP
环境再发布:
(
config
)
#router RIP
(
config-router
)
#redistribute EIGRP/OSPF/BGP
自治系统号
/
进程号
metric
度量
//
度量值不要太大,因为
RIP
协议最大跳数为
16
,
2
或
3
即可
②
向
OSPF
环境再发布:
(
config
)
#router OSPF
进程号
(
config-router
)
#redistribute EIGRP/RIP [
自治系统号
] [metric
度量
] [subnets]
//subnets
:用于发布子网信息
③
向
EIGRP
环境再发布
(
config
)
#router EIGRP
自治系统号
(
config-router
)
#redistribute OSPF/RIP [
进程号
] metric
带宽
延时
可靠性
负载
MTU
//
带宽:实际物理带宽(
K
)
//
延时:
100
(不可测量值)
//
可靠性:
255
(完全可靠)
//
负载:
1
//MTU
:
1500
备注:也可用边界路由器向两边发布指向自己的默认路由,但如果接入互联网也要做默认路由,所以不建议使用
三、
ISIS
:
Intermediate System-to-Intermediate System
1.ISIS
属于链路状态路由协议
2.ISIS
区域
①
骨干区域:实现区域间通信
②
通过链路实现区域间连接
3.
路由器角色
①
L1
路由器(
level
):类似
OSPF
非骨干区域内部路由器
使用
L1
数据库(拓扑表),实现区域内通信
②
L1/L2
路由器:类似
OSPF
的
ABR
,使用
L1
数据库实现区域内通信,使用
L2
数据可实现区域间通信
③
L2
路由器:类似
OSPF
骨干路由器,使用
L2
数据库实现区域间通信
4.NET
网络实体(地址)
格式:标识
.
区域
ID.
系统
ID.
选择器
//
标识:
49
为私有地址,其他需要申请
//
区域
ID
:
XXXX
例如
0001
,
0002 4
为数,用来区分区域
//
系统
ID
:
YYYY,YYYY,YYYY
(随意
12
个
16
进制值)一般可用
mac
地址
//
选择器:描述设备类型,例如
router
为
00
5.ISIS
路径选择
某路由器收到链路状态信息后,比较区域
ID
①
链路状态信息新的区域
ID
与本区域
ID
不同,路由器吧信息发向距离自己最近的
L1/L2
路由器(开销小)
②
链路状态信息新的区域
ID
与本区域
ID
相同,路由器使用
L1
数据库处理包
6.DIS
:指定中间系统
在广播网络环境下,
ISIS
要选举
DIS
①
选举
DIS
目的:保证链路状态信息的可靠更新(增加
LSA
发送量)
②
DIS
选举所参考的参数
a
优先级:越大越好(范围:
0
—
127
,默认
64
)
b
系统
ID
:越大越好
7.ISIS
的配置
①
规划
NET
②
启用
ISIS
(
config
)
#router isis
③
配置
NET
(
config-router
)
#net NET
地址
④
在端口上启用
ISIS
(
config-if
)
#ip router isis
⑤
修改路由器角色
(
config-router
)
#is-type {level-1|level-1-2|level-2-only}
四、
BGP
(
Border Gateway Protocol
)边界网关协议
补充:路由协议
1.IGP
(内部网关协议):
RIP
、
EIGRP
、
OSPF
、
ISIS
2.EGP
(外部网关协议):
BGP
1.BGP
的应用场合
①
自治系统之间通信
②
自治系统内部通信(不常用,对设备处理能力要求较高)
2.BGP
不使用的场合
①
带宽低
②
设备处理能力差
3.BGP
的特性
①
使用
TCP
实现连接(
TCP
连接能否成功建立,取决于
neighbor
命令的配置)
②
属于“高级距离矢量路由协议”
③
增量路由更新
④
丰富的路由衡量标准(路径属性丰富)
⑤
使用
keepalive
消息校验
TCP
连接
⑥
使用大型网络环境
4.BGP
的三张表
①
邻居表(
neighbor table
)
存放邻居信息
②
转发表
/
转发数据库(
forwarding table/database
)
存放从邻居处收到的所有路由信息
③
路由表(
routing table
)
存放到达目的网络的最好路径
//OSPF
和三层交换机也有转发表的概念,不过其转发表等同于路由表,但
BGP
上的转发表不同于路由表
5.BGP
的消息类型
①
open
:声明路由器身份(包括
router ID
,等同于其他协议的
HELLO
包)
②
keepalive
:校验
TCP
连接
③
update
:路由更新
④
notification
:检测到错误后,发送该类包,之后关闭
BGP
连接
6.BGP
邻居(对等体)
neighbor=peers
分类:
①
内部
BGP
邻居(
IBGP
):同一自治系统内的
BGP
邻居
形成条件:
a
不需要物理直连
b TCP
连接成功建立
②
外部
BGP
邻居(
EBGP
):不同自治系统的
BGP
邻居
形成条件:
a
物理直连
b TCP
连接成功建立
7.BGP
水平分割(为了防止环路)
基于邻居的水平分割:路由器从某邻居处收到路由后,不把该路由发送到其他邻居
//
备注:
BGP
的水平分割用于“
IBGP
邻居之间”
提示:
IBGP
邻居要彼此学到对方路由,需要“全互连”
(不需要物理直连,只要
TCP
连接成功建立)
BCDE
需要“全互连”,否则基于水平分割,
A
到
B
的数据包,不会经由
C/D/E
传给
E
,所以
F
就收不到
A
的路由
8.BGP
的基本配置
(
config
)
#router bgp
自治系统号
(
config-router
)
#neighbor
邻居
IP remote-as
自治系统号
1
//
自治系统号:本台路由器所在自治系统的自治系统号
//
自治系统号
1
:邻居路由器所在自治系统的自治系统号
AS
与
AS1
相同,本
router
与邻居
router
为
IBGP
AS
与
AS1
不相同,本
router
与邻居
router
为
EBGP
(
config-router
)
#network
网络号
//
查看
BGP
路由信息:
show ip bgp
总结:在同一自治系统内,配置
BGP
时,要先配置
IGP
协议。通过
IGP
学到邻居
IP
对应的路由
TCP
连接才能成功建立
BGP
邻居关系建立
9.BGP
源地址问题
当两台路由器之间存在多条物理链路时,正常配置是:在路由器上配置多个
neighbor
,以实现多条物理链路均可正常使用。
但容易出现的问题:
neighbor
命令配置数量过多
解决:建议使用设备环回口作为邻居
IP
但问题是:使用换回口邻居关系无法建立
原因:当路由器发送
BGP
包时,把出口地址作为包的源地址;当对方路由器收到
BGP
包时,比较包的源地址与自己配置命令
neighbor
后的
IP
是否是同一
IP
:
①
相同:该包是邻居发送的,正常处理
②
不同:该包不是邻居发送的,丢弃包
BGP
源地址问题解决:通告路由器发送包时,把包的源地址改成环回口
IP
,而不用出口
IP
(
config-router
)
#neighbor
邻居
IP update-sourse
环回口
²
环回口被认为是路由器核心
自治系统间源地址问题:
当自治系统间的路由器存在多条链路时,使用环回口
IP
,作为
neighbor
后的
IP
声明环回口网段:(静态路由)
(
config
)
#ip route
目的网
IP
目的网掩码
下一跳
IP
(
config-router
)
#neighbor
邻居
IP ebgp-multihop 2
10.BGP
的下一跳问题
路由器从
EBGP
邻居处学习到路由后,在把该路由发给
IBGP
邻居时,保留了路由的下一跳
解决办法:通告路由器把路由发送给
IBGP
邻居时,把路由的下一跳修改为自己的
IP
(
config-router
)
#neighbor
邻居
IP next-hop-self
11.BGP
同步问题
①
BGP
的同步:某台路由器通过
BGP
从
IBGP
邻居处学到某路由,同时通过
IGP
也学到该路由,称为“
BGP
”同步
②
BGP
同步对路由更新的影响
a.BGP
同步处于开启状态:如果某条路由具备“
BGP
同步”要求,路由器把该路由器发送给
EBGP
邻居;否则路由器不把该路由发送给
EBGP
邻居
b.BGP
同步处于关闭状态:只有路由器通过
BGP
从
IBGP
邻居处学到路由,将把该路由发送给
EBGP
邻居
BGP
同步的配置:
(
config-router
)
#[no] synchronization
BGP Example
:
12.BGP
状态
①
idle
(闲置状态):路由器查看路由表,确认是否有到达邻居的路由
②
connet
(连接状态):发现路由,并完成
TCP
三次握手
③
open sent
(
open
消息发送状态):发送
open
消息
④
open confirm
(
open
确认状态):对接收的
open
消息的确认
⑤
established
:邻居关系形成,开始交互路由信息
//
查看
BGP
状态:
debug ip bgp events
13.
复位邻居关系
#clear ip bgp *
//
复位所有邻居关系
#clear ip bgp
邻居
IP
//
复位指定邻居关系
#clear ip bgp * soft out
//
保留邻居关系,向所有邻居重新发送路由
#clear ip bgp * soft in
//
把以前的路由应用“路由过滤策略”进行过滤,把结果重新放入路由表
14.BGP
的汇总
①
自动汇总总是开启的,但可以关闭(基于类的自动汇总)
(
config-router
)
#no auto-summary
②
支持手工汇总
(
config-router
)
#aggregate-address
汇总
IP
汇总掩码
summary-only
15.BGP
路径属性
衡量路径好坏的标准
①
AS Path
属性:数据包到达目的地所经过的自治系统的集合(目的地所在自治系统也包括在内)
格式:(自治系统号
1
,自治系统号
2
……)
机制:
AS Path
集合长度越短,路径越好
②
下一跳
next-hop
属性
a
直连网段的下一跳为
0.0.0.0
b
存在“
BGP
下一跳”问题
机制:下一跳为
0.0.0.0
的路由好于下一跳为其他地址的路由
例:
*> 202.110.100.1 0.0.0.0
优
* 202.110.100.2
劣
③
origin
属性(起源属性)
路由通过什么方式获得的
起源代码:
i
:通过
network
声明发布的路由
e
:通过
BGP
再发布获得
?
:通过
IGP
再发布获得
机制:
i
优于
e
,
e
优于
?
④
.local preference
属性(本地优先属性)