cisco认证与网络工程师(硬核肝了一个月)
cisco认证与网络工程师(硬核肝了一个月)2# 数据链路层:将数据封装成帧,提供节点到节点的传输(Frame 增加一个 2 层的帧头,包括了源目的 MAC 地址,这样就能节约带宽提高网络的可用性,MAC 地址:地址是 48 位的,十六进制表示,前24 位是OUI 分配给不同的tf商,后 24 位tf商自己定义比如 A-----Router-----Router---- B, A 找不到 B 的具体位置 那么需要更精确的地址来帮助 A 找到 B, 也就是称为 MAC 地址,也就相当于你的名字并不是唯一,但是身份证号码是唯一的 ,A 首先将源,目的IP 地址封装,然后再将源,目的 MAC 地址封装,A 向路由器发送 ARP 查询后,路由器查看自己的路由表, 然后发现这个网段我知道怎么去, 然后告诉 A 可以把数据交给我,我可以帮助你去往目标 IP,于是 A 将在路由器的路由表中查看的下一跳地址的 MAC 地址封装成目标 MAC 地址,
【硬核】肝了一个月,Cisco网络工程师知识点总结高能预警,本文是我一个月前就开始写的,所以内容会非常长,当然也非常硬核,有实验,有命令,所以才写到了现在。
我相信90%的读者都不会一口气看完的,因为实在太长了,长到我现在15寸的mbp打字编辑框都是卡的,但是我希望大家日后想看Cisco网络工程师或者在面试前需要了解的朋友回头翻一下就够了,那我写这个文章的意义也就有了。
也不多BB,直接开整。
一、OSI模型中下层是为上层服务的
7# 应用层:用于端到端的通讯(比如两人之间 QQ 通讯,两人之间的系统不一样,因此对数据的加解密方式也不一样 因此需要标准来定义加解密的方式,使得不同系统的应用程序之间能够相互通讯)。
6# 表示层:定义数据的表示,对数据进行加密等处理(要建立会话首先需要连接关系,因此用会话层建立这种连接关系)。
5# 会话层:保证不同应用间数据的区分,建立、管理和终止会话(message 建立连接的时候首先建立虚拟的信道,保证不同的会话能够相互独立,然后结束之后将信道解除,传输的数据较大 将数据切片,然后发送)。
4# 传输层:提供可靠或不可靠的端到端报文的传输和差错控制(TCP,UDP)
(segment 那么发送的报文被切片了,怎么知道我原来传输的内容是怎样的,比如我发送的是:hi,晚上我们一起去吃饭。对端收到之后需要信息对我原来的回话还原,需要一种协议定义,因此对数据进行封装, 找到相对应的应用层的程序,封装之后我们成为 PDU(protocol data unite 协议数据单元):我们把这种在对等层之间交互的信息称为 PDU)。
3# 网络层:将分组从源传送到目的端,提供路由用来决定逻辑寻址 (IP 地址)
( A 怎么知道我要将数据传递到哪里,也就是我怎么知道 B 在哪里,因此我们在原来的包头上封装 IP 地址(源,目 IP
地址),但是网络中有可能有重复的 IP 地址(在局域网中有相同的网段))。
如何查看电脑的 MAC 地址:ipconfig /all
2# 数据链路层:将数据封装成帧,提供节点到节点的传输(Frame 增加一个 2 层的帧头,包括了源目的 MAC 地址,这样就能节约带宽提高网络的可用性,MAC 地址:地址是 48 位的,十六进制表示,前24 位是OUI 分配给不同的tf商,后 24 位tf商自己定义
比如 A-----Router-----Router---- B, A 找不到 B 的具体位置 那么需要更精确的地址来帮助 A 找到 B, 也就是称为 MAC 地址,也就相当于你的名字并不是唯一,但是身份证号码是唯一的 ,A 首先将源,目的IP 地址封装,然后再将源,目的 MAC 地址封装,A 向路由器发送 ARP 查询后,路由器查看自己的路由表, 然后发现这个网段我知道怎么去, 然后告诉 A 可以把数据交给我,我可以帮助你去往目标 IP,于是 A 将在路由器的路由表中查看的下一跳地址的 MAC 地址封装成目标 MAC 地址,然后继续向下发送路由器 2 继续查看自己的路由表,然后再查看自己的路由表,解封装到二层之后发现这个 MAC 地址还不是自己的 MAC 地址,继续解封装,然后这个 IP 地址所在的网段是自己直连的网段,然后查看路由表之后将自己下一跳 IP 地址的 MAC 地址封装,然后向下发送,B 收到之后会解封装,然后匹配自己 MAC 地址,这样完成传输。
1# 物理层:设备间发送和接收比特流(bit)我们在物理设备之间的的传输一般都是脉冲信号, 因此将数据帧转换成 bit( 1byte=8bit), 也就是 010101 的脉冲信号再通过介质传输比特。
v.35 定义的是广域网
网线的接法:
T568A 标准:白绿,绿,白橙,蓝,白蓝,橙,白棕,棕
T568B 标准:白橙,橙,白绿,蓝,白蓝,绿,白棕,棕
具体每层对应的数据类型封装和解封装
还有两台 PC 之间数据的传递过程
设备:集线器、中继器(放大信号)、编码-解码器、传输介质连接器(不同介质之间相互通信)所有的设备在同一个冲突域(冲突和冲突域的概念)
广播域:广播帧传输的网络范围。交换机是属于同一个广播域的,需要用路由器来隔离广播 域,交换机的一个接口是一个冲突域,接到 hub 上,传输到交换机,引入冲突域的概念CSMA/CD(载波侦听多路访问)技术,全双工,半双工,单工通信。
介质参数
10base2 |
10M 带宽 |
基带传输 |
传输距离为 185M |
细的同轴电缆 |
10base5 |
10M 带宽 |
基带传输 |
传输距离为 500M |
粗的同轴电缆 |
10baseT |
10M 带宽 |
基带传输 |
传输距离为 100M |
非屏蔽双绞线 |
10baseTX |
10M 带宽 |
基带传输 |
传输距离为 100M |
增强型的双绞线 (可支持超 5 类和 6 类) |
10base-F |
10M 带宽 |
基带传输 |
传输距离为 2000M |
光纤 |
封装源目的 MAC 地址,比如 A B C 三个都连在一台交换机上,A 如何去往 C 呢,通过 MAC 寻址查询 MAC 地址表,存活时间 300S。
以太网帧格式两种定义:
802.3 : |
前导码 |
目标 MAC 地址 |
源 MAC 地址 |
长度 |
数据 |
FCS |
Byte |
8 |
6 |
6 |
2 |
可变长(46-1500) |
4 |
EthernetII: |
前导码 |
目标 MAC 地址 |
源 MAC 地址 |
类型 |
数据 |
FCS |
Byte |
8 |
6 |
6 |
2 |
可变长(46-1500) |
4 |
前导码:决定应该收发那个帧,不包含控制信息。
长度:三层数据包的长度是不是满足 MTU(Maximum Transmission Unit 最大传输单元)的标准
MTU:描述三层数据包的长度(最大传输单元不超过 1500byte)。
FCS: 校验和(校验帧头的完整性,md5 算法计算出的帧头是不是跟现在接收的的匹配)
类型:描述三层封装的协议 IPv4 0x0800 类型字段 IPv6 0x86dd 类型字段
以太网丢帧的原因:(帧的大小范围:64~~1518 字节,在trunk 中帧大于 1518 字节不会被丢弃。)
1# 帧小于 64 字节。
2# 帧大于 1518 字节。
3# 校验错误。
交换机的作用:(交换机的每个接口是一个冲突域,本身是一个广播域)
1# 学习 MAC 地址。
2# 转发,过滤数据帧。
3# 防止环路。
IPv4 地址:32 位点分十进制表示,分四段,由网络号和主机号组成。在同一个局域网要在同一个网段,查看自己电脑的 IP 地址
使用掩码界定网络位和主机位
1 代表匹配网络位,0 代表匹配主机位。
PS:IP 地址的主机位配置为全 0 或者全 1 是不可用的(当是全 0 代表网络号,全 1 代表该网段的广播地址)
192.168.1.0 192.168.1.255 可用 IP 地址为 254 个
两个不同的网段之间相互通信 PC1----Router----PC2 pc1 和PC2 相互通信,首先找到网关。
路由器上存放的是路由表。(路由表:存放到达目标网段的最佳路由。)
四、传输层:(TCP UDP 两种协议)TCP_传输控制协议:(可靠的传输协议)
TCP 是面向连接的传输协议,通过三次握手建立连接,通讯完成时要拆除连接,由于 TCP 是面向连接的所以只能用于端到端的通讯,TCP 提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP 还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。
UDP_用户数据报协议:(不可靠的传输协议)
UDP 是面向无连接尽力而为的传输协议,UDP 数据包括目的端口号和源端口号信息,由于通讯不需要连接, 所以可以实现广播发送,UDP 通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。
IP_网际协议:
IP 层接收由更低层发来的数据包,并把该数据包发送到更高层(TCP UDP),相反同理。IP 数据包是不可靠的,因为 IP 并没有做任何事情来确认数据包是否按顺序发送的或者有没有被破坏,IP 数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
TCP/IP:
优点:模块化的结构便于同时开发、升级换代,维护管理。
缺点:各层功能分配不均,功能和服务定义复杂,很难产品化。
1# OSI 是种参考模型,一般用来教学和科研使用,是种国际化的网络标准。
2# 使用较多的是 TCP/IP 模型,是由美国军方开发的。
介绍 TCP/IP 的四层模型:
application |
应用层: |
包含的是上三层的协议功能,包括可上网的应用程序和协议。 |
transport |
传输层: |
主机到主机。 |
network |
网络层 | |
database link physical |
网络接口层 |
TCP/IP 的三次握手过程:
1# A 向 B 发 SYN(同步请求)
2# B 回复 SYN ACK(同步请求应答,并确认)
3# A 回复 ACK 确认消息,TCP 建立连接
HTTP(超文本传输协议) |
基于 TCP 80 |
用来浏览网页 |
HTTPS(安全超文本传输协议) |
基于 TCP 443 |
也是用来浏览网页只是加密了,比较安全 |
TFTP (简单文件传输协议) |
基于 UDP 69 |
传输小批量的文件一般用于管理设备的 |
IOS 操作系统以及配置文件 | ||
DHCP(动态主机配置协议) |
基于 UDP 68 |
让 PC、服务器以及网络设备自动获得地址子网掩码和网关 |
FTP (文件传输协议) |
基于 TCP 20 21 |
上传和下载大批量的文件“一般 20 用来开通一个虚拟的逻辑信道,连接完成之后,通过 21 端口发送数据流” |
SMTP(简单邮件传输协议) |
基于 TCP 25 |
用于收邮件 |
POP3 |
基于 TCP 110 |
用于发邮件 |
DNS (域名解析服务) |
基于 UDP 53 |
如果一台主机访问 WWW.baidu.com 一般会对应一个 IP 地址,首先向 DNS 服务器询问WWW.baidu.com 的地址是什么,然后通过解析地址,获得 WWW 的地址。 |
Telnet (远程登录) |
基于 TCP 23 |
远程管理网络设备 |
SNMP(简单网络管理协议) |
基于 UDP 161 |
同时管理多台设备 |
SSH (安全外壳) |
基于 TCP 22 |
加密的远程管理 |
主机到主机层:
添加 TCP 或者 UDP 包头,TCP(最小 20byte)和 UDP(最小 8byte)的数据包长度,窗口机制(TCP 中窗口的大小只能是 2 的 N 次方),到网络层之后会加上 IP 包头。
IP 数据包的格式:
1# 版本(4 bit):0100 标识 IPv4 0110 标识 IPv6
2# 头部长度(4 bit):描述 IP 包头的长度,这个字段可描述 32 字节的最大长度。
3# 服务类型(TOS)实现 QOS 服务质量(8 bit):描述流量的优先级(FIFO 默认)。
4# 标识位(16 bit):表示不同的流量,下载大数据超过 MTU(1500byte)需要分段传输。
5# 标记字段(3 bit)(Flag):第二位为 1 时,表示路由器不能对数据包进行分段。也可用于检测 MTU 值。
6# 分段偏移(13 bit):代表是第几个包偏移量,也就说重组的时候的偏移量,然后逐步还原(根据不同数据包的按着原来的顺序还原)。
7# 生存时间(TTL)(8 bit):初值为 255,每经过一个路由器 TTL 值减 1,直到为 0,就丢弃,防止数据在网络中无休止的传输。
8# 协议(8 bit):表示封装的是协议。协议号:ICMP:1 IGMP:2 TCP:6 PIM: 13 TCP:6 UDP:17 EIGRP:88 OSPF:89
9# 包头校验和:(16 bit)16 位全为 1,表示数据包在传输中没有发生错误。
10# 源地址:32 bit
11# 目标地址:32 bit
11# 目标地址:32 bit
ICMP(网络控制信息协议): echo request(反射请求)和 echo replay (反射回复)
PING(通过 ICMP 协议): 有去有回,用于检测网络的可达性。
ARP 地址解析: MAC 和 IP 的解析根据 IP 地址解析成 MAC 地址
RARP 反向地址解析 从缓存上找到 MAC 地址对应的 IP 地址
VLSM 可变长子网掩码
ARP 表的老化时间是 4 小时
修改老化时间为 1800s
int f0/0
arp timeout 1800
clear arp cache //清理 arp 表所有动态表象
IP 地址分类:IP 地址采用点分十进制表,分成 4 段,每段 8 位。
IP 地址 = 网络号 主机号
全 1 表示网络号,全 0 表示主机号
8.8.8.8 谷歌对外开放的域名解析服务器
218.2.131.5 南京 DNS 服务器的 IP 地址掩码:连续的全 1 和连续的全 0。
IP 地址和子网掩码中 1 匹配的网络位,0 匹配的为主机位。
网络号=IP 地址和掩码做与运算
192.168.1.2 255.255.255.0
192 |
168 |
1 |
2 |
11000000 |
10101000 |
00000001 |
00000010 |
11111111 |
11111111 |
11111111 |
00000000 |
做与运算得出
192.168.1.0 网络号
网段的表示 192.168.1.0/24
PS:IP 地址的主机位配置为全 0 或者全 1 是不可用的
当是全 0 代表网络本身,全 1 代表该网段的广播地址,可用IP 地址为 254 个 。
IP 地址的分类:
A: 首位固定为 0 |
1-126 |
掩码为 8 位 |
B: 前两位固定为 10 |
128-191 |
掩码为 16 位 |
C: 首两位固定为110 |
172-223 |
掩码为 24 位 |
D: 组播,前四位 1110 |
224-239 | |
E: 科研用(保留) |
特殊的 IP 地址:
1、127 保留,用于本地测试 127.0.0.1
在自己电脑上测试 127.0.0.1 用于本地回环测试
2、全网广播地址,255.255.255.255
3、代表网络本身:0.0.0.0
4、RFC 1918 定义的私有 IP 地址:解决 IP 地址不够用的问题(存在局域网中)
A 类: |
10.0.0.0 |
10.255.255.255 |
10.0.0.0/8 |
B 类: |
172.16.0.0 |
172.31.255.255 |
172.16.0.0/12 |
C 类: |
192.168.0.0 |
192.168.255.255 |
192.168.0.0/16 |
RFC (一系列以编号排定的文件)用来存放互联网的标准。
合理使用 IP 地址,引入子网划分的概念:
大型网络、中型网络、小型网络每种网络对主机号和网络号需求量不一样,因此需要划分不 同的网络号和主机号来合理利用 ip 地址。
tracert www.cae.com 追踪去往目标 IP 的站点。
172.16.0.0/16 可划分成 4 个子网:
172.16.0.0/18 172.16.64.0/18 172.16.128.0/18 172.16.192.0/18 这个 4 个子网。
VLSM(可变长子网掩码):网络位向主机位借位
CIDR (无类域间路由):主机位向网络位借位,忽略 A B C 类的界定,前缀相同则为同一网段称为超网
不规则子网划分
172.16.0.0/16 划分为两个子网,一个可以容纳 60 台主机,一个可以容纳 280 台主机 如何划分(先划分大的范围,再划分小的范围):
280<512=2^9 那 么 他 的 主 机 位 9 网 络 位 23 也 就 是 网 段 的 范 围 : 172.16.0000000
0.0—172.16.0000000 1.255
172.16.0.0/23 可以为 510 个 IP 地址,加 1 之后也就是下个网段的第一个地址为 172.16.2.0 。
60<64=2^6 那么他的主机位 6 网络位 26 也就是网段范围:172.16.00000010.00 000000------
172.16.00000010.00 111111 172.16.2.0/26 可以为 62 个 IP 地址。
练习:
202.101.12.98/26 的网络号,地址空间和可用 IP 地址范围,如果将其划分成可用容纳相同主机数的 2 子网,如何划分
202.101.12.64 202.101.12.64/26 202.101.12.64--------202.101.12.127
因为划分成 2 个子网,也就是需要向主机位借 1,确定掩码为/27 的
010 00000 64 202.101.12.64/27 的最后一个地址就是 202.101.12.96 010 111111
011 00000 95 202.101.12.96/27 的最后一个地址就是 202.101.12.127 011 111111
子网:202.101.12.64/27 202.101 12.96/27
CISCO 设备的操作
常见的提示符
( > 用户模式对设备简单的查看
进入特权模式 enable
( # 特权模式对设备进行详细的查看
返回用户模式 disable
可缩写,可问号,按 tab 补全
配置:进入配置模式
查看:进入特权模式
Router> //用户模式
Router# //特权模式
先进入导航模式,然后会提示一系列的东西
Continue with configuration dialog? [yes/no]: no
//然后再进入自己配置模式,然后配置密码。
Router#configure terminal // 进入配置模式
Router(configure)# // 配置模式
Router(config)#enable password CISCO 密码明文显示Router(config)#enable secret CCIE 密码密文显示
PS:两种配置密码同时存在的时候加密的优先级较高
RAM:断电之后不在
ROM:断电之后还的
路由器采用了以下几种不同类型的内存,每种内存以不同方式协助路由器工作。
1.只读存储器(ROM)
只读内存(ROM)在 Cisco 路由器中的功能与计算机中的 ROM 相似,主要用于系统初始化等功能。
ROM 中主要包含:
(1)系统加电自检代码(POST),用于检测路由器中各硬件部分是否完好;
(2)系统引导区代码(BootStrap),用于启动路由器并载入 IOS 操作系统;
(3)备份的 IOS 操作系统,以便在原有 IOS 操作系统被删除或破坏时使用。
通常,这个 IOS 比现运行 IOS 的版本低一些,但却足以使路由器启动和工作,ROM 是只读存储器,不能修改其中存放的代码。如要进行升级,则要替换 ROM 芯片。
2.闪存(Flash)
闪存(Flash)是可读可写的存储器,在系统重新启动或关机之后仍能保存数据。Flash 中存放着当前使用中的 IOS。事实上,如果 Flash 容量足够大,甚至可以存放多个操作系统, 这在进行 IOS 升级时十分有用。当不知道新版 IOS 是否稳定时,可在升级后仍保留旧版 IOS, 当出现问题时可迅速退回到旧版操作系统,从而避免长时间的网路故障。
3.非易失性 RAM(NVRAM)
非易失性 RAM(Nonvolatile RAM)是可读可写的存储器,在系统重新启动或关机之后仍能保存数据。由于 NVRAM 仅用于保存启动配置文件(Startup-Config),故其容量较小,通常在路由器上只配置 32KB~128KB 大小的 NVRAM。
同时,NVRAM 的速度较快,成本也比较高。
4.随机存储器(RAM)
RAM 也是可读可写的存储器,但它存储的内容在系统重启或关机后将被清除。和计算机中的RAM 一样,Cisco 路由器中的 RAM 也是运行期间暂时存放操作系统和数据的存储器,让路由器能迅速访问这些信息。RAM 的存取速度优于前面所提到的 3 种内存的存取速度。运行期间, RAM 中包含路由表项目、ARP 缓冲项目、日志项目和队列中排队等待发送的分组。除此之外, 还包括运行配置文件(Running-config)、正在执行的代码、IOS 操作系统程序和一些临时数据信息。
running-config 运行内存里面
startup-config 路由器 nvram 里面
write=copy running-config startup-config //将当前的配置保存在 NVRAM
Router> // 用户模式 由用户模式进入特权模式 Router>enable
Router# //特权模式 由用户特权进入配置模式 Router#conf terminal 先进入导航模式,然后会提示一系列的东西
Continue with configuration dialog? [yes/no]: no //然后再进入配置模式 ,然后配置密码
Router#configure terminal // 进入配置模式
Router(configure)# // 配置模式
Router(config)#enable password CISCO // 密码明文显示
Router(config)#enable secret CCIE // 密码密文显示PS:两种配置密码同时存在的时候加密的优先级较高
实验:
一:路由器的密码配置和恢复
第一步:配置密码
Router(config)#enable secret
第二步:断电重启
ctrl break 打断正常重启进入 romon 模式或者 ctrl C 键
第三步:修改寄存器值
rommon 1 > confreg 0x2142
0x2102 开机读配置 (默认寄存器的值)
0x2142 开机不读配置
第四步:重启
rommon 2 > boot 以空配置启动
第五步:进入特权模式
查看当前的配置
show running 之后发现是空的,然后复制原来的配置
Router#copy startup-config
running-config 然后查看当前的配置,查到密码。
第六步:然后删除原来的密码
Router(config)#no enable password 或者 no enable secret
第七步:修改回原来的寄存器值
Router(config)#config-register 0X2102
PS: 可以查看当前寄存器的值(show version) 提 示 :Configuration register is 0x2142 (will be 0x2102 at next reload)
reload 重启动
show version 查看当前的版本Configuration register is 0x2102
第一步:模拟环境
Router#delete flash:c2600-ipbasek9-mz.124-8.bin //将本地系统文件删除
第二步:重启路由器
Router#reload 进入 ROMMON 模式
第三步: 给服务器配置地址,tftpdnld
rommon 3 > tftpdnld
第四步:从 TFPF 服务器下载 IOS 文件,设置本路由器相关参数
rommon 4 > IP_ADDRESS=192.168.1.1 //设置本路由器 F0/0 接口的 IP 地址
rommon 5 > IP_SUBNET_MASK=255.255.255.0 // 设置子网掩码
rommon 6 > DEFAULT_GATEWAY=192.168.1.200 //服务器的网关(缺省网关随便配置)
rommon 7 > TFTP_SERVER=192.168.1.2 //设置 TFTP 服务器的 IP 地址
rommon 8 > TFTP_FILE=c2600-ipbasek9-mz.124-8.bin//想要从 TFTP 服务器上下载的 IOS 文件名
第四步:再次输入 tftpdnld 开始下载所请求的 IOS 文件 (可打问号查看)
rommon 8 > SET ///////////检查刚才的配置命令
第五步: 重启
rommon 20 > boot / reset
第六步:查看当前的 VERSION(版本) Router>show version
影响局域网性能的两个常见问题是过高的冲突和过多的广播,“分段”将网络分割成较小的段。
交换机:功能:1、地址的学习 2、帧的转发/过滤 3、防止环路
1# 地址的学习:查看 ARP 表象(ARP -a)
最初开机时 MAC 地址表是空的
最大 mac 地址表可存 1024 个,一旦地址表满 就会洪泛所有到新 MAC 地址的帧,直到现存地址条目老化为止。
Mac 地址表条目默认老化时间是 300 秒,以下命令可改变老化时间:
switch(config)#mac-address-table aging-time ? <10-1000000>
2# 帧的转发/过滤,交换机形成 MAC 地址表
交换机 A 发送数据帧给主机。
在地址表中有目标主机,数据帧不会泛洪而直接转发。
3# 环 路 的 防 止 , 生 成 树 协 议 STP
VLAN:(虚拟的局域网 virtual LAN)
一个 VLAN = 一个广播域 = 逻辑网段 (子网)
VLAN 实现了网络的有效分段,划分增强了网络的安全性和灵活性。每个逻辑的 VLAN 就象一个独立的物理桥。
交换机上的每一个端口都可以分配给不同的 VLAN。
默认的情况下,所有的端口都属于 VLAN1(Cisco 独有)。
划分不同的 VLAN,使得不同的 VLAN 间不能通信。
Switch#show vlan brief //查看 VLAN 信息
实验1: VLAN的创建于划分
创 建 VLAN :
方法一:
Switch(config)#vlan 10 //创建 VLAN
Switch(config-vlan)#name CCNP //命名为 CCNP
Switch(config)#exit
方法二:
Switch#vlan database //进入 VLAN database 模式
Switch(vlan)#vlan 30 name CCIE //创建 VLAN 并命名为 CCIE Switch(vlan)#exit //退出保存
将接口划入相应的 VLAN :
Switch(config)#int f0/1
Switch(config-if)#switchport mode access //将接口模式改为接入模式Switch(config-if)#switchport access vlan 10 //将接口划入 VLAN 10
1# 同一个 VLAN 可以跨越多个交换机
2# 不同的大楼之间相同的 VLAN 想要实现通讯,使用 TRUNK
3# 主干功能支持多个 VLAN 的数据
4# 主干使用了特殊的封装格式支持不同的 VLAN
5# 只有快速以太网端口可以配置为主干端口
交换机对帧进行 VLAN 标记有两种协议:ISL(Cisco 私有)和 802.1Q(公有)
ISL:在原始以太网帧的头部加了 26 字节的 ISL 头部,尾部加入了 4 字节的 CRC 码,没有破坏原始帧.最大支持 1024 个 vlan。
802.1Q:在原始帧源 MAC 后面(中间还有类型)加 4 个字节 TAG 标记位,对 VLAN 进行标记,破坏了原始帧.最大支持 4094 个 VLAN。
TAG 字段格式:4 字节=32 比特
以太类型 |
优先级(priority) |
flag(令牌环标识) |
VLAN ID |
16bit |
3 比特 |
1 比特 |
12 比特(标记了VLAN ) |
实验2:VLAN创建于划分2
第一步:配置 PC 的 IP 地址(如图)
第二步:交换机上创建 VLAN
Vlan 10
Vlan 20
第三步:将接口划入相应的 VLAN Interface f0/1
SW MO ac
Sw ac Vlan 10 Interface f0/2
SW mo ac
Sw ac vlan 20
第四步:将交换机相连的接口模式改为 TRUNK Int f0/3
sw mo tr
show interface trunk //查看封装形式
路由器实现不同 VLAN 间的通信,隔离广播域。
要想实现不同 VLAN 之间的通信,借助路由器来实现。
第五步:将交换机上的接口划入相应的 VLAN
SW1: F0/3 接口是属于 VLAN 10
SW2: F0/2 接口属于 VLAN 20
第六步:配置路由器接口 IP 地址
interface FastEthernet0/0
ip address 192.168.1.254 255.255.255.0
no shutdown
interface FastEthernet0/1
ip address 192.168.2.254 255.255.255.0
no shutdown
实验3:单臂路由
第一步:配置 PC 的 IP 地址
第二步:交换机上划分 VLAN
Switch(config)#vlan 10
Switch(config-vlan)#vl 20
Switch(config-vlan)#vl 30
第三步:把接口划入相应的 VLAN (批量操作 int rang f0/0-1) Switch(config)#int f0/4
Switch(config-if)#sw mo access
Switch(config-if)#sw ac vl 30
Show vlan brief //查看接口
第四步:路由器和交换机相联的接口需要承载多个 VLAN, Switch(config)#int f0/1
Switch(config-if)#sw mo trunk
第五步:路由器上启用子接口
Router(config)#int f0/0
Router(config-if)#no shutdown
Router(config-if)#int f0/0.10
Router(config-subif)#encapsulation dot1Q 10 //采用 802.1Q 定义的标签格式,给子接口打上标签,用于和 vlan 10 的用户通信
Router(config-subif)#ip add 192.168.1.10 255.255.255.0 第五步:测试网络的连通性
实验4:使用三层交换机(具有路由功能)实现 VLAN 间通信
对于三层交换机的物理接口配置ip 地址,必须关闭它的二层接口,打开三层接口。
int f0/4
no switchport Ip address
接口封装必须选择封装协议,再修改 trunk 模式
sw trunk encapsulation dot1q
sw mo trunk
**第一步、配置 pc 的 ip 地址
第二步、创建 VLAN
第 三 步 、 接 口 划 入 VLAN**
Switch(config)#int f0/1
Switch(config-if)#sw mo ac
Switch(config-if)#sw ac vlan 10
Switch(config-if)#int f0/2
Switch(config-if)#sw mo ac
Switch(config-if)#sw ac vlan 20
第四步、在三层交换机上配置虚拟的交换接口地址,分别作为VLAN 10 和 VLAN 20 的网关
Switch(config)#interface vlan 10
Switch(config-if)#ip add 192.168.1.254 255.255.255.0
Switch(config-if)#int vlan 20
Switch(config-if)#ip add 192.168.2.254 255.255.255.0
第五步、开启三层交换机的路由功能
Switch(config)#ip routing
实验5:VTP(VLAN Trunking Protocol)作用:同步
VLAN:
第一步:将交换机相联的接口改为 trunk 模式
CLI(config)#int rang f0/1-2
CLI(config-if-range)#switchport mo trunk
第二步:运行 vtp 协议
CLI(config)#vtp domain CCIE // 配置VTP 的域名PS:如果交换机没有配置域名,则会自动同步有域名的交换机的域名
CLI(config)#vtp mode client / CLI(config)#vtp mode server //配置VTP 的模式 客户模式/服务模式
CLI(config)#vtp password cisco //配置vtp 的密码
Devicemode already VTP SERVER //vtp 模式默认为server 模式
第三步:在 server 端创建 VLAN(client 端不能创建 vlan)SER(config)#vlan 10
SER(config)#vlan 20
SER(config)#vlan 30
CLI#show vtp status //查看当前交换机运行的vtp 的信息VTP
Version : 2
Configuration Revision : 3 //每对 VLAN 进行操作一次,revision 号增加一
Maximum VLANs supported locally :255
Number of existing VLANs : 8 //当前交换机存在的 VLAN 个数
VTP Operating Mode : Server // VTP 的模式VTP Domain Name : CCIE VTP 域名
第四步:Transparent 不会同步 server 端的 vlan,只有 client 端才会同步
Showvlan brief //查看当前交换机的 vlan 。
同步规则:
小的修订号的交换机会同步修订号大的的交换机的 vlan
修订号清零的方法
1.将 vtp 的模式改成透明模式
2.修改 vtp 的域名
3.清空配置
路由协议:负责学习从源到目标的最优路径。
被路由协议:负责将数据包从路由协议学习到的最优路由将数据转发出去(IP 协议)。
路由表:路由器转发数据包主要依据是路由表(每个路由器中都保存着一张路由表,表中每条路由项都
指明数据包到某子网或某主机应通过路由器的哪个物理端口发送,然后就可到达该路径的下一个路由器, 或者不再经过别的路由器而传送到直接相连的网络中的目的主机)。
路由:从源到目标的一条路。
要实现路由,路由器必须知道:目的地址,源地址,所有可能的路由路径,最佳路由路径,管理路由信
息。
路由表中的路由信息的来源:
直连路由:
路由器可以自动识别自己接口所配置的 IP 地址所在的网段安装进自己的路由表中,形成一条路由。
静态路由:
需要管理员配置的路由,指明去往目标网段怎么走。
动态路由:
通过动态路由学习。
距离矢量路由协议:RIP(routing information protocol)(120)
链路状态路由协议:OSPF(110) 、ISIS
高级的距离矢量路由协议:EIGRP(90)
边界路由协议:BGP
管理距离:主要用于不同路由协议之间的可信度(路由优先级)
(可信度的范围是:0 到 255 之间 它表示一条路由选择信息源的可信性值.该值越小 可信度越高. 如果值为 0 为最信任 如果值为 255 为最不信任即没有从这条线路将没有任何流量通过)
直连的管理路由(Connected):0 静态路由(Static):1
EIGRP 内部:90 RIP:120
EIGRP 外部:170
静态路由优缺点
优点:
1.对路由器 CPU 没有管理性开销
2.在路由器间没有带宽占用
3.增加安全性
缺点:
1.必须真正了解网络
2.对于新添网络配置繁琐
3.对于大型网络工作量巨大
默认的静态路由,缺省的路由:在没有找到任何匹配项目的情况下使用路由命令格式:
IP route 0.0.0.0 0.0.0.0 出口接口/下一跳 IP 地址 //一般用于企业出口路由器
动态路由协议
1# 距离矢量路由协议:RIP(routing information protocol)
运行动态路由协议 RIP
路由器和路由器之间传输的是路由信息,路由是按照传闻来的。
2# 链路状态路由协议:OSPF
路由器和路由器之间传输的是链路状态,网络中的路由器知道整个网络的拓扑。路由器以自己为源点,计算出一条去往目标网段最优的路径安装进自己的路由表。
RIP 的防环:
收敛时间(convergence time):当网络拓扑发生变化,到整个网络中所有路由器都知道这个变化的时间,就叫收敛时间。
水平分割:接口不会接收到由自身传达出去的路由信息。
毒性逆转:路由器会接收从自身传出去的路由信息,但是标记该路由不可达。
保持失效计时器:保持实效计时器(默认 180s)
当网络中一条链路 down 掉,进入 180s 的抑制时间。在抑制时间内有如下情况:
1,原来的链路恢复,则恢复原来的路由,从新安装进路由表
2,收到一条比原来路径更优的路由,则安装进路由表
3,收到一条比原来路径差一点的路由,但在 180s 内保持稳定,则在 180s 之后,将安装进路由表
触发更新:当路由器的路由表发生变化的时候,发送更新消息
最大跳数:指定最大跳数来防止环路。
RIP 协议指定当路由得跳数达到 16 跳,则认为不可达(最大 15 跳)。
RIP 的配置:
r1(config)#router rip //启用 rip 路由协议
r1(config-router)#version 2 //使用rip 的版本号 2
r1(config-router)#no auto-sunmmary //关闭自动汇总
r1(config-router)#network 192.168.1.0
RIPv2 的基本概述:
应用层协议,使用 UDP 协议传输数据包。
1.rip 以跳数作为度量值(metric),最大为 15 跳。2.rip 以 30s 时间向邻居发送路由更新消息。
3.rip 路由协议可以支持最多 6 条负载均衡。
4.rip 路由协议基于 UDP 520 封装。
5.rip 有两种消息:
请求消息(request):网络刚建好,发送请求消息,请求邻居的路由的更新.
应答消息(response):相应请求消息,承载路由信息(每 30s 周期发送).
6.RIP 计时器:
1# 更新计时器(update timer):周期性的发送路由更新消息(默认 30 秒) 异步更新:为了避免瞬间的流量高峰,采用 15%随机更新(25.5~30s)
2# 无效计时器(invaild timer):路由器判定路由成为失效路由的等待时间(默认 180s) 3# 保持失效计时器(holdtime timer)(180s):
当网络中一条链路 down 掉,进入 180s 的抑制时间。在抑制时间内有如下情况:
1# 原来的链路恢复,则恢复原来的路由,从新安装进路由表。
2# 收到一条比原来路径更优的路由,则安装进路由表。
3# 收到一条比原来路径差一点的路由,但在 180s 内保持稳定,则在 180s 之后,将安装进路由表 。
4# 刷新计时器(flush timer):路由器将无效路由并从路由表删除的时间间隔(240s)。
show ip protocols //查看当前路由器
hostname newname //改的名字
追踪:tracert www.baidu.com 在 TCP/IP 协议栈中,Routed Protocol(IP 协议)工作在网络层,而 Routing Protocol 工作在传输层或者应用层,他们之间的关系为:Routing Protocol负责学习从源到目标的最佳路径 Routed Protocol 根据最佳路径将来自上层的信息封装在IP 包里传输•
路由表:路由器转发数据包的关键是路由表。
路由表中信息的来源:
直连路由 :路由器可以自动识别自己接口所配置 IP 地址所在的网段,并将该网段安装进自己的路由表中,形成一条路由。
静态路由 :手工配置到达目标 IP 地址的路径
动态路由 :通过动态路由协议学习
距离矢量(distancevector)主要有:
RIP(routing information protocol)
IGRP 链路状态(linkstate)
OSPF(开发最短路径优先) IS-IS
EIGRP(高级的距离矢量路由协议)
主机 1 去往主机 2,有多种不同的路径, 根据管理距离选择去往目标主机管理距离: Administrative Distances(AD 值)管理距离主要用于不同路由协议之间的可信度。 可信度的范围是:0 到 255 之间 它表示一条路由选择信息源的可信性值.该值越小 可信度越高。 0 为最信任,255 为最不信任即没有从这条线路将没有任何流量通过。
路由协议的管理距离:
1# 直接相连:0
2# 静态路由:1
3# EIGRP:90(内部)
4# IGRP:100
5# OSPF:110
6# RIP:120
7# EIGRP:170(外部)
注:RIPv1 和 RIPv2 的区别:
1.RIPv1 是有类路由协议,RIPv2 是无类路由协议。
2.RIPv1 不能支持 VLSM,RIPv2 可以支持 VLSM。
3.RIPv1 没有认证的功能,RIPv2 可以支持认证,并且有明文和 MD5 两种认证。
4.RIPv1 没有手工汇总的功能,RIPv2 可以在关闭自动汇总的前提下,进行手工汇总。
5.RIPv1 是广播更新,RIPv2 是组播更新。
6.RIPv1 对路由没有标记的功能,RIPv2 可以对路由打标记(tag),用于过滤和做策略。
7.RIPv1 发送的 updata 最多可以携带 25 条路由条目,RIPv2 在有认证的情况下最多只能携带 24 条路由。
8.RIPv1 发送的 updata 包里面没有 next-hop 属性,RIPv2 有 next-hop 属性,可以用与路由更新的重定。
注:有类路由与无类路由的区别:
1、无类路由协议发送路由更新包的时候携带自己的子网掩码。
2、有类路由协议发送路由更新包的时候不携带路由条目的子网掩码。
实现不同网段之间的相互通讯
第一步:配置 PC 和服务器的 IP 地址和网关
PC0:IP 地址:192.168.1.1 255.255.255.0
网关:192.168.1.1(可以任意定义 但是必须要和地址在同一网段)
PC1:IP 地址:192.168.2.2255.255.255.0
网关:192.168.2.1(可以任意定义 但是必须要和地址在同一网段)
server:IP 地址:172.16.1.2255.255.255.0 网关: 172.16.1.1
第 二 步 : 交 换 机 上 创 建 VLAN
Switch(config)#hostname Sw1 //将交换机命名为 SW1
方法一:
Sw1(config)#vlan 10
Sw1(config-vlan)#name VLAN10 //将 VLAN10 命名为“VLAN10”
方法二
Switch#vlandatabase
Switch(config-vlan)#vlan 10 name VLAN10 //创建 VLAN 10,并将 VLAN10 命名为“VLAN10”
Sw1(config)#vlan 20
Sw1(config-vlan)#name VLAN20
第三步:把接口划入相应的 VLAN
Switch(config)#int f0/1
Switch(config-if)#sw mo access
Switch(config-if)#sw ac vl 10
Switch(config)#int f0/2
Switch(config-if)#sw mo access
Switch(config-if)#sw ac vl 20
Show vlanbrief //查看接口属于哪个 VLAN
第四步:路由器和交换机相联的接口需要承载多个 VLAN.Switch(config)#int f0/0
Switch(config-if)#sw mo trunk
第五步:路由器上启用子接口,作为不同的网关
IP Router(config)#int f0/0
Router(config-if)#no shutdown
Router(config-if)#int f0/0.10
Router(config-subif)#encapsulation dot1Q 10 //打上标签 10
Router(config-subif)#ip add 192.168.1.1 255.255.255.0 //配置子接口的 IP 地址
Router(config-if)#int f0/0.20
Router(config-subif)#encapsulationdot1Q 10//打上标签 10
Router(config-subif)#ip add 192.168.2.1 255.255.255.0 //配置接口的 IP 地址
第五步:测试网络的连通性
PC0:ping192.168.2.1
第六步:配置路由器 IP 地址
Router(config)#hostname R1 //将路由器命名为 R1
R1(config)#intf0/1 //进入 F0/1 接口
R1(config-if)#no sh //开启接口(路由器上接口是默认关闭的,需要手动开启)
R1(config-if)#ipadd 202.101.12.1 255.255.255.0 //配置接口的 IP 地址R2(config)#intf0/0 //进入 F0/0 接口
R2(config-if)#nosh //开启接口(因为路由器上接口是默认关闭的,需要手动开启)
R2(config-if)#ipadd 202.101.12.2 255.255.255.0 //配置接口的 IP 地址
第七步:查看路由器上路由表:
Show IP route
第八步:配置路由器的静态路由
R1:IP router 172.16.1.0 255.255.255.0 202.101.12.2 //基于下一跳(本路由器直连的路由器的接口 IP 地址)
R2: ip route 192.168.1.0255.255.255.0 f0/0 //基于本路由器的出接口
R2: ip route 192.168.2.0255.255.255.0 202.101.12.1 //基于本路由器下一跳
第九步:查看路由表,路由表中有打 S 标记的路由,表示通过静态学习到的路由。
第十步:最后进行 ping 测试,实现不同网段之间的通信。
PC0 :
ping 172.16.1.2
ping :192.168.2.2
Server:
Ping:192.168.1.2 Ping:192.168.2.2
静态路由的配置命令格式:
ip route a.a.a.a b.b.b.b c.c.c.c
a.a.a.a 是需要传送到的远程网络的 ip,
b.b.b.b 是远程网络的子网掩码,
c.c.c.c 是下一跳路由器接口地址
(一)标准 ACL(1-99 1300-1999)检查源 IP 地址,通常允许或者拒绝整个协议。
案例一:不允许 192.168.5.0 网段访问服务器
R2:
access-list 1 deny 192.168.5.0 0.0.0.255 //抓取 192.168.5.0
access-list 1 permit any //默认拒绝所有,放行除了 192.168.5.0 的网段
interface f0/1
iP access-group 1 out //在 F0/1 接口下调用,数据包出去的方向调用。
或者
interface f0/0
ip access-group 1 in //在 F0/0 接口下调用,数据包进的方向调用。
(二)扩展 ACL(100-199 2000-2699)检查源目 IP 地址,可拒绝或者允许协议的端口号。
案例二:不允许 192.168.6.2 访问服务器的 www 服务
R2:
access-list 101 deny tcp host 192.168.6.2 host 172.16.1.2 eq www(80)
access-list 101 permit ip any any //放行其他(因为四层的协议需要三层服务才能传递)。
interface f0/0
ip access-grup 101 in //在 F0/0 接口下调用,数据包的进接口方向调用。
案例三:为了保护服务器,要求外面的用户不可以 ping 通服务器,但服务器可以 ping 向外网
R2:
access-list 101 deny icmp any host 172.16.1.2 echo(ping 命令:由源到目标)echo-replay(ping 回包使用:由目标到源)
access-list 101 permit ip any any interface f0/0
IP access-group 101 in
私有 ip 地址有 3 段:
a;10.0.0.0 - 10.255.255.255 10.0.0.0/8 b;172.16.0.0 - 172.31.255.255 172.16.0.0/12 c;192.168.0.0 - 192.168.255.255 192.168.0.0/16
作用:将内部网络中不合法的 IP 地址转换为合法的 ip 地址连接到公网。
NAT 的几个术语:
内部本地地址:私有 IP,不能直接用于互连网。(NAT 转化之前的 IP 地址)
内部全局地址:用来代替内部本地 IP 地址的,可以用于互联网上的合法的的 IP 地址。(NAT转化之后的 IP 地址)
NAT 的功能
1# 内部地址转化
2# 复用内部的全局地址
3# TCP 负载均衡
4# 解决网络地址重叠
静态 NAT:
实验:
第一步:内网相互 ping 通
第二步:外网配置 ip 地址,让外网可通
第三步:在内网出口路由器配置一条去往外网的的静态默认路由
r1:ip route 0.0.0.0 0.0.0.0 202.101.12.2
第四步:做地址翻译
需求:将内 IP 地址为 192.168.2.2 的服务器 ip 转化为 200.2.2.2 为外网的用户提供服务。定义地址翻译:r1(config)#ip nat inside source static 192.168.2.2 200.2.2.2
命令格式:
ip nat inside source static 内部本地地址内部全局地址定义内部接口和外部接口
r1(config)#int f0/0.10
r1(config-subif)#ip nat inside
r1(config-subif)#int f0/0.20
r1(config-subif)#ip nat inside //将 f0/0.10 f0/0.20 定义为内部接口(内部接口或者外部接口命令,只能敲在有 ip 地址的接口下面)
r1(config)#Int f0/1
r1(config-if)# ip nat outside //将 f0/1 定义为外部接口
在 r2 上指一条回包路由
r2:
ip route 200.2.2.0 255.255.255.0 202.101.12.1
实验步骤:
案例一:
第一步: 内网相互 ping 通
第二步: 外网配置 IP 地址,让外网可通
第三步: 在内网出口路由器上配置一条去往外网的静态默认路由R1 :
ip route 0.0.0.0 0.0.0.0 202.101.12.2
第四步: 作地址翻译
需求:将内网 IP 地址为 192.168.2.2 的服务器IP 转换为 200.2.2.2 为外网中的用户提供服务。1、定义地址翻译
R1(config)#ip nat inside source static 192.168.2.2 200.2.2.2 命令格式;ip nat inside source static 内部本地地址 内部全局地址2、定义内部接口和外部接口
R1(config-subif)#int f0/0.20
R1(config-subif)#ip nat inside //f0/0.20 定义为内部接口(内部接口或者外部接口命令 只能敲在有 IP 地址的接口下面)
R1(config)#int f0/1
R1(config-if)#ip nat outside //将 f0/1 定义成外部接口
第五步:在 R2 上指一条回包路由R2:
ip route 200.2.2.0 255.255.255.0 202.101.12.1
案例二:
第一步:内部服务器只对外提供 tcp 80 服务
R1(config)#ip nat inside source static tcp 192.168.2.2 80 200.2.2.2 8888
第二步:定 NAT 的内部接口和外部接口
r1(config-subif)#int f0/0.20
r2(config-subif)#ip nat inside
r1(config)#int f0/1
r1(config-if)#ip nat outside
静态 NAT 将内部的 IP 地址永久的映射成外部网络中的合法 ip 地址,多用于服务器(内部网络中的服务器需要向外网提供服务,为了安全起见,使用静态 NAT 只对外开发服务器的部分端口)
PAT(Port Address Translation)动态地址转换:
可以将内部网络中的 ip 地址映射到外网的一个 ip 地址的不同端口。第一步:
抓取从主机 192.168.1.0/24 和 192.168.2.0/24 的主机产生的流量R1(config)#access 1 permit 192.168.1.0 0.0.0.255
R1(config)#access 1 permit 192.168.2.0 0.0.0.255
第二步:
定义 NAT 转换
将 ACL 1 定义的主机 IP 借助本路由器接口 f0/1 去访问外网。
r1(config)#ip nat inside source list 1 interfacef0/1 overload //多个端口开放
第三步:
定义内部和外部就接口
r1(config)#int f0/0.10
r1(config-subif)#ip nat inside
r1(config)#int f0/0.20
r1(config-subif)#ip nat inside
查看命令:
r1#show ip nat translations //查看 nat 的映射列表象
r1#clear ip nat translations //清 nat 的映射表
HDLC 和 PPP 串行链路封装协议
数据链路层所定义的串行链路封装协议,Cisco 默认的串行的封装形式为 HDLC,但是为了和其他厂商兼容,串行链路采用的 PPP 协议。
一次完整的 ppp 回话过程包括四阶段: 1# 链路建立阶段
2# 确定链路质量阶段
3# 网络层控制协议阶段
4# 链路终止阶段
PPP 的 CHAP 和 PAP 认证:
1# PAP 认证
有两次握手,首先远端中心节点以明文的方式发送自己的用户名和密码,然后,中心节 点查找本地存放的用户名和密码,如果用户名和密码一致可以建立连接,如果不一致,则不 能建立连接。
当建立连接之后,远端会不断的向中心节点发送自己的用户名和密码。
第一步:r1 和 r2 定义自己的设备名:
r1:ho r1
r2:ho r2
第二步:
r1 和 r2 封装 ppp 配置 ip 地址:
r1:
int s1/0 en ppp
ip add 202.101.12.1 255.255.255.0
no sh
r2:
int s1/0 en ppp
ip add 202.101.12.1 255.255.255.0
no sh
第三步:r2 向 r1 做认证
r1:user r2 pass 222 //定义被认证方的用户名和密码
int s1/0
ppp authentication pap//接口下开启 pap 认证
r2:
Int s1/0
ppp pap sent-username r2 password 222
第四步:
r1 pass 111
int s1/0
ppp authentication pap
r1:
int s1/0
ppp pap sent-username r1 password 111
R1:
username R2 password 222
interface Serial1/0
ipaddress202.101.12.1255.255.255.0
encapsulation ppp
ppp authentication pap
ppp pap sent-username R1 password 111
clock rate 2000000 //在串行接口的 DCE 端 必须要有始终频率的定义,如果设备自动生成需要手动配置
R2:
username R1 password 111
interface Serial1/0
ip address 202.101.12.2 255.255.255.0
encapsulation ppp
ppp authentication pap
ppp pap sent-username R2 password 0 222
2# chap 认 证
建立连接需要三次握手
1# 认证方向被认证方发送时间。
2# 被认证方向认证方询问
3# 接受或者拒绝连接(整个认证中密码是加密的)
一、chap 双向的 chap 认证
r1: //采用 chap 认证(认证双方的密码定义要一致)
hostname r1 //定义设备名
username r2 password cisco //定义用户名和密码
int s1/0
encapsulation ppp //接口封装 ppp
ppp authentication chap //接口下使用认证
r2:
hostname r2
username r1 password cisco
int s1/0
encapsulation ppp
ppp authentication chap
2、chap 的单向认证:r2 向 r1 去认证:
r1:
hostname r1
username r2 pass cisco
int s1/0
encapsulation ppp
ppp authentication chap callin
r2:
hostname r2 int s1/0
encapsulation ppp
ppp chap hostname r2
ppp chap password cisco
四个消息:1# Discovery 2# Offer 3# Request 4# Ack
1.主机发送地址请求消息 discovery(谁可以给我地址)
2.服务器收到地址请求消息,响应请求,回复 offer 消息 (我有地址可以分配)
3.主机收到的服务器 offer 消息,发送 request 消息。 (对多个服务器发送过来的 ip 地址选择,然后请求你自己选中的 ip 地址)
4.服务器收到主机发过来的消息的请求消息,进行 ack 的确认,并且发送地址租用的时长等信息。
DHCP 自动获取 IP 地址
R1(config)#ip dhcp pool ccna //定义 DHCP 地址池的名字为ccna
R1(dhcp-config)#network 192.168.1.0 255.255.255.0 //定义下方的网络段为192.168.1.0/24
R1(dhcp-config)#default-router 192.168.1.1 //主机的网关地址
R1(dhcp-config)#dns-server 218.2.135.1 //DNS 服务器的 IP 地址
R1(config)#ip dhcp excluded-address 192.168.1.1 //保留 192.168.1.1 不被分配
R1(config)#ip dhcp excluded-address 192.168.1.1 192.168.1.5 //保留 1.1- 1.5 不被分配
R5(config)#int f0/0
R5(config-if)#ip address dhcp //R5 请求 IP 地址
DHCP 中继:路由器的接口会隔离广播消息,需要中继向 DHCP 服务器请求 ip 地址
配置:
r1:
int f0/0
ip helper-address 202.101.12.2 //ip 地址是 DHCP 服务器的地址
普通的获取地址:
R2(config)#ip dhcp pool QLB
R2(dhcp-config)#network 202.101.12.0 255.255.255.0
R2(dhcp-config)#dns-server 202.101.12.2
R1(config)#int f0/0 R1(config-if)#no shutdown R1(config-if)#ip address dhcp
R1 通过 DHCP 获得唯一的 ip 地址:
R2:
int f0/0
ip add 202.101.12.1 255.255.255.0
no sh
ip dhcp pool bhb
host 202.101.12.100 255.255.255.0 //定义需要下放的 ip 地址client-identifier 01.cc.0018.b800.00 //请求 ip 地址的主机 mac 地址01.aaaa.bbbb.cccc
路由器获取 IP 地址:
R1(config)#int f0/0
R1(config-if)#ip address dhcp client-id f0/0
协议号:88
组播地址:224.0.0.10
EIGRP 内部管理距离为 90,外部管理距离 170。
Router # show running-config | section router // 查询当前路由器所运行的网关协议
为什么说 EIGRP 是高级的路由协议。
1# EIGRP 中的三张表
2# EIGRP 是一个无类路由协议,支持 VLSM 和 CIDR,可以在任意节点做手工路由汇总
3# 一般情况下 EIGRP 可以保证百分百无环路
4# 在 EIGRP 网络中,当路由改变时,EIGRP 用的触发更新、增量更新的方式,使路由收敛更快
5# EIGRP 使用了适用于大型网络的路由算法“DUAL 算法”,可以在多台路由器之间通过一个并行的方式执行路由的计算
6# EIGRP 集成了依赖于协议的模块(PDM),使 EIGRP 可以支持更多网络类型
7# EIGRP 使用了可靠传输协议(RTP),保证在交换路由时不出错
一、EIGRP 的 11 个特性:
1.高级的距离矢量路由协议
2.快速收敛
EIGRP 独有的算法 DUAL(扩散更新算法)
3.灵活的网络设计
支持 VLSM(可变长子网掩码)
在网络中的任何一个节点(相当于一个路由器)汇总
4.组播更新替代广播更新
组播地址为 224.0.0.10(TTL 为 2)
(RIP 版本一,广播更新 IP 地址 255.255.255.255)
(RIP 版本二,组播更新 IP 地址 224.0.0.9)
5.100%无环路:由 DUAL 算法决定。
6.支持 VLSM 和不连续子网(路由更新数据包中携带掩码)。
7.配置简单。
8.在网络的任何地方支持手工汇总。
9.易于更新(由 DUAL 算法决定)。
10.支持多种网络层协议(如 ip,ipx,apple talk)。
11.可以支持等价和不等价的负载均衡。(EIGRP 是目前唯一支持非等价的负载均衡的路由协议)
二、EIGRP 的三张表:
1# 邻居表:
存放那些本路由器和那些路由器建立了 EIGRP 邻居
邻居接口的 IP 地址和本路由器的接口,唯一确定一个邻居。
查看邻居表 show ip eigrp neighbors
2# 拓扑表
存放本路由收到的路由,从哪些邻居路由器传下来
查看拓扑表 show ip eigrp topology
3# 路由表
存放从源到目的最优路径
查看路由表 show ip route
三、EIGRP 的四个关键技术
1# 依赖于协议模块(PDM 多种路由协议)
可以支持多种网络层协议(IP IPX apple talk)并且有独立的 EIGRP 模块负责相应的路由选择。
2#可靠地传输协议(RTP)
EIGRP 数据包传输具有可靠性和有序性。
3# 邻居发现和恢复
hello 报文周期性的发送,可以发现和恢复邻居关系。对于带宽大于 t1(1.544M)的链路 hello 时间为 5s
对于带宽小于等于 t1(1.544M)的链路 hello 时间为 60s
Holdtime(等待时间)是 3 倍的 hello 时间,(15 秒,180 秒)有利于邻居的恢复。当路由器在 3 倍的时间内没有收到邻居发送过来的hello 数据包,则断绝邻居关系,如果在 3 倍hello 时间内重新收到 hello 数据包,在不断绝邻居关系。
4#扩散更新算法 DUAL
后继路由器失效后向邻居查询有没有可行后继路由器,如果有则安装进路由表,如果没有则 向邻居去查询。
四、DUAL(扩散更新算法)算法的五个概念:
1# FD(feasible distance)可行距离值:从本路由器去往目标网段的最优距离为可行距离。
2# AD(advised distance)通告距离值:本路由器的邻居通告给路由器,他自己去往目标网段的距离。
3# FC(feasible condition)可行性条件:本路由器邻居通告的到达目标网段的距离是否小于本路由器去往相同目标网段的距离,即判断 ad 值是否小于 fd 值。如果小于则满足可行性条件,如果不小于,则不满足可行性条件。
4# FS (feasible successor)可行性后继路由器:满足可行性条件的邻居路由器,则为可行性后继路由器。
5# successor 后继路由器:拥有最优距离的路由将存放进路由表,将通告这条最优路由的邻居路由器叫做后继路由器。
DUAL 是一个有限状态机,用于选择将那些信息存储到拓扑表和路由选择表中。
DUAL 算法当路由器发送 query 报文后,会处于 active 状态,如果长时间不能收到邻居回复的 reply 消息,则会卡在 active 状态。(query 查询 active 活动的)
SIA(stack in active)计时器,去解决长时间收不到 reply 消息的问题。(reply 回答)
五、SIA(stack in active)计时器:
老的 SIA 计时器:
路由器在发出 query 报文之后的 3 分钟内没有收到邻居的 reply 消息,则会重置我们的邻居关系。
新的 SIA 计时器:
路由器在发出 query 报文后的 1.5 分钟内没有收到邻居发送过来的 reply 消息,则发送SIA-query 消息,每隔 1.5 分钟发送一次,一共发送三次,如果再 3 次发送结束之后还没有收到 reply 则重置邻居关系。(6 分钟后重置邻居关系)。
导致处于 SIA 状态的原因:
1# 查询范围过大。
2# 路由器太忙无法应答。
3# 路由之间的链路质量低劣,导致查询报文丢失。
4# 某些单向链路失效。
六、EIGRP 的 5 个数据包:
1# hello 用于邻居的发现和恢复的过程,hello 报文使用组播方式发送,而且使用不可靠的方式发送。
2# updata (路由更新报文)
用于传送路由更新消息,数据包是按需发送。他是以组播的形式发送的,是可靠地数据包。 需要 ack 确认。
3# query (查询报文)
用于 DUAL 算法中,在没有找到可行后继的路由器的情况下,向邻居发送查询报文,询问是否前往目标网段可行后继路由器,以单播或组播的形式发送,是可靠的。
4# reply 在 DUAL 算法中去响应查询报文,以单播可靠发送。
5# ack 用于确认更新,查询,应答,以单播形式发送(是不含任何数据的 hello 包,只包含一个不为零的确认号)。(ack 确认)
对于需要确认的数据报文,如果没有收到相应的确认则重传 16 次,16 次之后重置邻居关系。用 RTO(间隔时间)定义重传数据包之间的间隔时间。
七、EIGRP 建立邻居的过程
1# A 发送 hello 报文给 B。
2# B 发送 hello 报文给 A,同时发送自己的路由更新消息给 A。
3# A 回复 ACK 报文对 B 的 UPdata 报文确认,并将路由消息存放进自己的拓扑表。
4# A 发送自己的路由更新消息给 B。
5# B 发送 ACK 报文对 A 的 UPdata 报文确认,并将路由消息存放进自己的拓扑表。
查看命令:
R1#show ip eigrp neighbors //查看邻居表
R1#show ip eigrp topology //查看eigrp拓扑表
R1#show ip eigrp topology-all-links //查看所有拓扑结构
R1#show ip eigrp interfaces //查看本路由器哪些接口宣告eigrp
八、EIGRP 建立邻居的四个重要条件
1# as 号要一致。
2# k 值要一样——show ip protocols,默认情况下 k1 和 k3 等于 1
3# 认证通过(认证的作用:确保路由从合法的邻居学过来)
4# 在同一个网段
九、EIGRP 五个度量参数:
1# 带宽 2# 时延 3# 可靠性 4# 负载 5# mtu
R1(config)#int e0/1
R1(config-if)#ip add 202.101.12.1 255.255.255.0
R3(config-if)#no sh R1(config)#int loopback 0
R1(config-if)#ip add 1.1.1.1 255.255.255.0
R2(config)#int e0/2
R2(config-if)#ip add 202.101.12.2 255.255.255.0
R3(config-if)#no sh R2(config)#int loopback 0
R2(config-if)#ip add 2.2.2.2 255.255.255.0
R3(config)#int e0/1
R3(config-if)#ip add 202.101.23.3 255.255.255.0
R3(config-if)#no sh R3(config)#int loopback 0
R3(config-if)#ip add 3.3.3.3 255.255.255.0
运行 EIGRP 协议
R1(config)#router eigrp 100 //启用 EIGRP 协议定义 as 号为 100 R1(config-router)#no auto-summary //关闭自动汇总
R1(config-router)#network 202.101.12.1 0.0.0.0 //路由器接口 IP 的精确宣告
R1(config-router)#network 1.1.1.1 0.0.0.0 //路由器接口 IP 的精确宣告
R2(config)#router eigrp 100 R2(config-router)#no auto-summary
R2(config-router)#net 202.101.12.2 0.0.0.0
R2(config-router)#net 202. 101.23.2 0.0.0.0
R2(config-router)#net 2.2.2.2 0.0.0.0
R3(config)#router eigrp 100 R3(config-router)#no auto-summary
R3(config-router)#net 202.101.23.3 0.0.0.0
R3(config-router)#net 3.3.3.3 0.0.0.0
show ip interface brief //查看所有端口的状态信息show int f1/0 //显示端口信息
FD 的度量标准(metric)=(10^7/最小带宽 总时延/10)*256 kbps usec
R1 学到 5.5.5.0/24 的度量值为 161280
EIGRP 的等价负载均衡:
EIGRP 默认支持 4 条负载均衡,最大支持 16 条。
offset-list(偏移列表),可针对具体路由,增加他的度量值。 在 r1 上针对 5.5.5.0/24 的路由实现等价负载均衡:
1,抓取 5.5.5.0/24 的路由
access 1 per 5.5.5.0
2.在 eigrp 进程下使用 offset-list 对路由从 r2 传过来的接口加大度量值
router eigrp 100
offset-list 1 in 2651136 f0/0 //在接口f0/0 的进方向针对路由 5.5.5.0 加大度量值 2651136
偏移列表只能在一个方向是用一次
R1#show run | section ei 筛选 eigrp 的区域
EIGRP 的非等价负载均衡的:
实现非等价负载均衡的条件
1.想参与负载均衡的路径的数目不能超过最大数,默认 4 条
2.想参加负载均衡的路径的 ad 值必须小于最优 fd 值
variance 差异因子;代表一条路径和最优路径差异程度默认值为 1.
3.必须在路由器上配置一个 variance,想参加非等价负载均衡的路径的 fd 必须小于最优的 fd
乘以 variance 数值(想参加 fd <最优 fd*variance)
在 R1 上找到有可行后继路由器的路由,实现非等价负载均衡非等价负载均衡
R1(config)#router ei 100
R1(config-router)#variance 2 //差异因子修改成 2
R1#show ip rout 202.101.34.0 255.255.255.0 //单独查看路由信息
解决 SIA 查询范围过大: 1# 汇总限制查询范围R5(config)#int lo1
R5(config-if)#ip address 172.16.0.1 255.255.255.0 R5(config-if)#exit
R5(config)#int lo2
R5(config-if)#ip address 172.16.1.1 255.255.255.0 R5(config-if)#exit
R5(config)#int lo3
R5(config-if)#ip address 172.16.2.1 255.255.255.0 R5(config-if)#exit
R5(config)#int lo4
R5(config-if)#ip address 172.16.3.1 255.255.255.0 R5(config-if)#exit
R5(config)#router eigrp 100
R5(config-router)#net 172.16.0.1 0.0.0.0
R5(config-router)#net 172.16.1.1 0.0.0.0
R5(config-router)#network 172.16.2.1 0.0.0.0
R5(config-router)#network 172.16.3.1 0.0.0.0 R5(config-router)#exit
EIGRP 做完会总后,会在本路由器产生一条指向 null0 的汇总路由,管理距离为 5。汇总:
int f0/0
ip summary-address eigrp 100 172.16.0.0 255.255.252.0 5 int s0/0
ip summary-address eigrp 100 172.16.0.0 255.255.252.0 5
2# 末节路由器限制查询范围将 eigrp 路由配置为末梢路由器R4(config)#router eigrp 100
R4(config-router)#eigrp stub //R4 只会向邻居通告本地本地直连网段和在本地汇总的路由
EIGRP 的认证:
EIGRP 只支持密文认证,确保路由从合法的邻居学过来。
1.定义 key
R1(config)#key chain ccnp //定义 key-chain 名为 ccnp
R1(config-keychain)#key 1 //定义钥匙名
R1(config-keychain-key)#key-string cisco //定义秘钥为 cisco
在接口下做 EIGRP 的密文认证,调用 key chain
R1(config-if)#ip authentication mode eigrp 100 md5 //采用密文认证R1(config-if)#ip authentication key-chain eigrp 100 ccnp //调用密文认证
R2(config)#key chain ccnp //定义 key-chain 名为 ccnp
R2(config-keychain)#key 1 //定义钥匙名
R2(config-keychain-key)#key-string cisco //定义秘钥为 cisco R2(config)#int f0/0
R2config-if)#ip authentication mode eigrp 100 md5 R2(config-if)#ip authentication key-chain eigrp 100 ccnp
如果设备开启密码加密的服务,看不到可以使用命令–show key chian //读取所定义的秘钥
EIGRP 下放默认路由:
1.重分发静态路由
第一步:
定义一条静态的默认路由(基于出接口)
ip route 0.0.0.0 0.0.0.0 f0/0
第二步:
在 eigrp 进程中充分分发静默认路由
router reigrp 100
redistribute static //重分发静态路由
2.使用 network 0.0.0.0
第一步:
定义一条静态的默认路由(基于出接口的)
ip route 0.0.0.0 0.0.0.0 f0/0
第二步:
在 eigrp 进程下面宣告 0.0.0.0 router eigrp 100
network 0.0.0.0 3.default-network
第一步:
定义一个默认的主类网络
ip default-network 100.0.0.0(a 类)
第二步:
定义一条该主类的基于出接口静态路由ip route 100.0.0.0 255.0.0.0 f0/0
第三步:将该主类在 eigrp 进程下宣告router eigrp 100
network 100.0.0.0
4.接口下全 0 汇总路由
int f0/0
ip summary-address ei 100 0.0.0.0 0.0.0.0
OSPF 的协议号是 89
管理距离为 110
链路状态路由协议TTL=1
协议特性:
快速响应网络变化
在网络变化时发送触发更新
以较低的频率发送定期更新称作链路状态刷新
OSPF 的区域:
骨干区域:区域 0
非骨干区域:非 0 区(非骨干区域通信必须和区域 0 相连)
OSPF 的区域特征:
1.减少路由表的条目
2.将区域内的拓扑变化的影响限制在本地
3.将 LSA(link- state -advanced 链路状态通告)1# 2# 3# 4# 5# 7#扩展限制在区域内4.要去采取层次网络设计
OSPF 路由器的类型:
ABR(area border router)区域边界路由:有一个接口属于区域 0,用于连接区域 0 和其他区域的路由器。
ASBR(autonomous system border router)自治系统边界路由协议:用于连接 ospf 区域和其他路
由协议的路由器。
骨干路由器:至少一个接口与骨干区域相连的路由器。 内部路由器:路由器的所有接口属于同一个区域。
LSA(链路状态广播):LSA 是链接状态协议使用的一个分组,它包括有关邻居和通道成本的信息。
OSPF 的 5 个数据包:
hello 作用:周期发送,可以用来发现邻居,协商参数,保活(keeplive)邻居,确保双向通信,在广播或非广播网络中选举 DR 和 BDR。
DBD(database description 数据库描述报文):携带 LSA 的头部信息。
LSR(link-state request 链路状态请求报文):去请求用于自己的链路数据库没有的 LSA。LSU(link-state update 链路状态更新报文):用于响应 LSR 报文(一个 LSU 报文中只能携带一条 LSA)。
LSACK(link-state Acknowledgment 链路状态确认消息):用于确认路由器收到的 LSA。
R1(config)#router ospf 1 //启用 ospf 协议,定义进程号为 1
R1(config-router)#router-id 1.1.1.1 //定义 ospf 的 router-id 为 1.1.1.1
R1(config-router)#net 202.101.12.1 0.0.0.0 area 1
R1(config-router)#net 1.1.1.1 0.0.0.0 area 1
- 进程号是本地有效,用于区分本路由器的不同 OSPF 进程
- router-id 用于唯一标识本路由器,以 IP 地址形式书写。
OSPF 的 router-id 选举过程:
A:如果定义了 router-id 则使用定义的 router-id:
B:如果没有定义 router-id,则使用本路由器的环回接口 IP 地址最大的 Ip,作为本路由器的 router-id:
C:如果没有环回接口,则使用本路由器物理接口 ip 地址最大的 ip,作为本路由器的router-id。
R2(config)#router os 1
R2(config-router)#router-id 2.2.2.2
R2(config-router)#network 202.101.12.2 0.0.0.0 a 1 //将 12.2 宣告进 ospf 区域 1
R2(config-router)#net 202.101.23.2 0.0.0.0 a 0 //将 23.2 宣告进 ospf 区域 0
R2(config-router)#net 2.2.2.2 0.0.0.0 a 0
查看命令:
show ip os int b //可以查看路由器的那些接口运行了 ospf,以及进程号,区域号和 cost 值等。
OSPF 的三张表:
1.OSPF 邻居表
show ip ospf neighbor //查看 OSPF 邻居表
邻居的 ip 地址和本路由器的接口可以唯一确定一个 ospf 的邻居
2.OSPF 拓扑表(数据库表)
—show ip ospf database //查看本路由器的链路数据库
3.OSPF 路由表
–show ip route //存放前往目标网段的最优路由。
OSPF 建立邻居的必要条件
1# 区域号一致
2# hello 时间要一致修改 ospf 的 hello 时间int f0/0
ip ospf hello-interval 30 //将 hello 时间修改为 30s
show run int f0/0 //单独查看接口配置
3# 认证要通过
4# 末节标识要一致
(OSPF 路由协议定义换回接口为网络的末梢向外通告路由的时候以32 位主机路由的形式通告)
5# MTU(最大传输单元)要一致(MTU 不一致会卡在 exstart 状态)
修改 mtu(默认 1500)值R4(config)#int s1/0 R4(config-if)#mtu 1400
O 代表域内路由 intra 内部
OIA 代表域间路由 inter 之间
Hello 数据包中的几个字段:
Router id
Hello and deal interval * 是 hello 时间的 4 倍neighbors
Area id * 区域号
Router priority 优先级(默认情况接口优先级为 1) DR ip address
BDR ip address Authtication password * Stub area flag *
DR 和 BDR(指定路由器和备份指定路由器)
在多路访问中,路由器只和 DR 和 BDR 建立邻居关系。非 DR 和 BDR 路由器叫 DRother
DRother 和 DRother 之间的邻居关系状态为 2-way
DR 和 BDR 的选举规则(重启进程可以重新选举 DR BDR)
1# 邻居之间是通过交换 hello 数据包选举 DR 和 BDR。
2# 优先级高的为 DR,次高者为 BDR,默认接口优先为 1;如果优先级一样,则通过 router-id 来选举,router-id 大的为 DR,次高者为 BDR。如果优先级为 0,则代表不参加 DR 和 BDR 的选举。
3# DR 和 BDR 选举出来是稳定的,即使后面又有优先的更高的路由器加入也不会抢占
DR 和 BDR 的地位。
案例一:
让 r3 成为 BR,r2 和 r4 不参与 DR 和 BDR 的选举。
R2:
R2(config)#int f1/0
R2(config-if)#ip ospf priority 0
R2#cle ip os process //清理 ospf 进程,让 ospf 网络重新收敛。
R4:
R4(config)#int f0/0 R4(config-if)#ip os priority 0
R4#cle ip os process //清理 ospf 进程,让 ospf 网络重新收敛。
R3#cle ip os process //清理 ospf 进程,让 ospf 网络重新收敛。
OSPF 的两个组播地址:
在广播网络或非广播多路访问中网络中:
1# DRother 使用 224.0.0.6 向 DR,BDR 发送数据包。
2# DR,BDR 使用 224.0.0.5 向 DRther 发送数据包。
OSPF 的 7 个邻居状态:
OSPF 建立邻居关系 4 个过程
1、 OSPF 建立邻接:
1# Down:A 和 B 彼此没有收到对端的 hello 的报文。
2# init :A 向 B 发送 hello 包,其中包含 A 的 router-id,B 收到 A 的 hello 报文,看到 A的 router-id,则将 A 的邻居状态置为 init。
3# 2-way:B 向 A 发送 hello 报文,其中包含 B 自己的 router-id 和 A 的 router-id,A 收到 B
的 hello 报文,看到自己的 router-id,则邻居状态置为 2-way。(形成双向邻接关系)
2、交换信息(DBD 报文):
4# Exstart:A 和B 建立双向通信之后,决定发送空的 DBD 报文,用来协商主从(master/slane)关系,当收到空的 DBD 报文后,则将邻居状态置为 Exstart。(MTU 两边不匹配,会停在 Exstart 状态)
5# Exchange:A 和 B 发送 DBD 报文,同步数据库,当收到对端非空的 DBD 报文后,将邻居置为 Exchange 状态。
3、创建了链路状态数据库(LSR LSU LSACK)
6# Loading:A 和 B 之间的 LSA 存在差异,向对端请求发送 LSR,对端收到 LSR 之后,邻居状态置为 loading。
4、完全邻接(定期发送 hello 报文)
7# Full:A 和 B 的数据库完全同步之后,将邻居状态置为 full(完全邻接关系)。
OSPF 邻居关系:邻居路由器之间可以进行双向的通信则建立邻居关系。
OSPF 邻接关系:OSPF 邻居之间完成 LSA 的同步之后,标志邻接关系建立。
OSPF 的网络类型:
show ip os int f0/0 // 查看接口 f0/0 的信息
在接口模式下面,通过命令:
ip ospf hello-interval //修改 hello 时间。
ip ospf dead-interval //修改空载时间。
1# BROADCAST 广播型网络
默认以太网的 OSPF 网络类型为 broadcast。
Hello 时间为 10s,deadtime 为 40s,需要选举出 DR 和 BDR。可以自动建立邻居
组播地址有两个 224.0.0.5 和 224.0.0.6。
2# point-to-point 点对点网络类型
默认情况下串行链路 PPP 和 HDLC 的网络类型为点对点。
Hello 时间默认 10s,deadtime 为 40s,不需要选举出 DR 和 BDR,可以自动建立邻居。组播地址只有一个 224.0.0.5。
(点对点网络类型和 broadcast 网络类型可以建立完全邻接关系,但(网络类型不匹配)彼此不能传输路由信息)。
3# NBMA 非广播多路访问默认帧中继的网络类型为 NBMA。
Hello 时间为 30s,deadtime 为 120s,需要选举 DR 和 BDR。不可以自动建立邻居,需要手动指邻居。
R2(config)#int f1/0
R2(config-if)#ip os network non-broadcast R3(config)#int f0/0
R3(config-if)#ip os network non-broadcast R4(config)#int f0/0
R4(config-if)#ip os network non-broadcast
R2,R3,R4:不可以自动指邻居,需要手动指邻居。
R2(config)#router os 1
R2(config-router)#neighbor 202.101.234.3 //手动指对端网络端口的 ip 地址
R2(config-router)#neighbor 202.101.234.4
R3(config)#router os 1
R3(config-router)#neighbor 202.101.234.2
R3(config-router)#neighbor 202.101.234.4
R4(config)#router os 1
R4(config-router)#nei 202.101.234.2
R4(config-router)#nei 202.101.234.3
attempt (攻击)邻居状态:仅仅出现在 NBMA 网络,当一台路由器具有成为 DR 或 BDR 的资格的时候,可以将邻居的状态转换为 attempt,介于 down 与 init 之间。
4# point-to-multipoint 点到多点的网络类型自定义
Hello 时间 30s,deadtime 120s
可以自动建立邻居组播地址 224.0.0.5
模拟点到多点的网络类型 R1,R2 。
R1:
R1(config)#int f0/0
R1(config-if)#ip os net point-to-multipoint R2:
R2(config)#int f0/0
R2(config-if)#ip os net point-to-multipoint
5# point-to-multipoint noboardcast 点对多点非广播自定义
Hello 时间为 30s deadtime 时间为 120s。不需要选举 DR 和 BDR
需要手动指邻居。
NBMA 和点到多点(point-to-multipoint )是 RFC 定义,其他网络类型为 Cisco 定义。
OSPF 度量值的计算
Metric=sum(cost) //路由进接口的 cost 值累加
— show ip os int //可以看到 cost 值
Cost=(10^8 / 带宽 BW(bps) 修改 cost 值命令:
int s1/0
ip ospf cost 1 //将接口的 cost 只修改为 1
OSPF 接口认证类型: 密文认证:
R1:
int f0/0
ip os authentication message-digest //采用密文认证
ip os authentication-key 1 MD5 cisco //定义加密的密码key-id 为 1,秘钥为 cisco
R2:
int f0/0
ip os authentication message-digest //采用密文认证
ip os authentication-key 1 MD5 cisco //定义加密的密码 key-id 为 1,秘钥为 cisco
sh cdp nei //可以看出此路由器接口接到对端那个接口
明文认证:
R4(config)#int s1/0
R4(config-if)#ip os authentication-key cisco R5(config)#int s0/0
R5(config-if)#ip os authentication-key cisco
不认证:
ip os authentication null
OSPF 区域认证:
进程下开启区域认证
R3(config)#router os 1
R3(config-router)#area 0 authentication message-digest R3(config-router)#exit
R3(config)#int f0/0
R3(config-if)#ip ospf message-digest-key 1 md5 cisco R4(config)#router os 1
R4(config-router)#area 0 authentication message-digest R4(config-router)#exit
R4(config)#int f0/0
R4(config-if)#ip os me 1 Md5 cisco
OSPF 的几种 LSA
泛洪(Flooding):交换机和网桥使用的一种数据流传递技术,将某个接口收到的数据流从除该接口之外的所有接口发送出去。
1# router LSA(路由链路状态广播)
show ip os database router
谁产生的:区域内的每台路由器。
包含:直连链路的列表以及 cost 值,每条链路的 IP 前缀来标识每条链路。发送者标识:router id
泛洪范围:在该区域内泛洪,会穿越 ABR,还可以描述路由器是否为 ABR 或者 ASBR。
2# network LSA(网络链路状态广播)
show ip os database network
谁产生的:在广播型网络或者 NBMA 网络中的 DR 产生。
包含:连接到该连接的一组路由器列表,包含了链路的子网掩码。 泛洪范围:区域内泛洪,不会穿越 ABR。
3# summary LSA(总结链路状态广播)
sh ip os database summary
谁产生的:ABR 产生
包含:链路的网络号,子网掩码,metric 值
泛洪范围:泛洪到整个 OSPF 区域内,每经过一台 ABR,Advertising Router(通告者)发生变化。
4# asbr-summary LSA(自治系统边界路由器链路状态广播)
show ip os da asbr-summary
谁产生的:ABR 产生的。
包含:向其他区域描述谁是 ASBR,包含 ASBR 的 router-id
泛洪范围:整个 OSPF 区域。每经过一台 ABR,Advertising Route(通告者)r 会发生变化。
5# external LSA(外部链路状态广播)
show ip os database external
谁产生的:ASBR 产生的
包含:描述了 OSPF 区域外部的网络路由。
泛洪范围:整个 OSPF 区域,Advertising Router(通告者)每经过 ABR 不会发生变化。
7# NSSA-LSA(次末节区域链路状态广播)
sh ip os database nssa-external
谁产生的:ASBR 产生的
包含:NSSA 区域外的链路前缀和掩码。
泛洪范围:在本区域内以 7#LSA 的形式存在,经过 ABR 之后,将 7#LSA 转化成 5#LSA 并且通告者发生变化;之后经过 ABR,Advertising Router(通告者不变。
OSPF 的 4 种特殊区域
1# 末节区域(stub 区域)
末节区域不能有 ASBR(不可以在末节区域重分发) 末节区域至少要有一个 ABR末节区域能自动产生一条默认路由,指向 ABR(末节区域可以抑制 4#,5# LSA,自动产生一条 3#的默认路由)。
将区域 1 设为 stub 区域
R1,R2:
Router os 1
area 1 stub
2# 完全的末梢区域(totally-stub 区域)
完全末梢区域会抑制 3#,4#,5# 的 LSA,但是会向完全末梢区域下放一条 3#的默认路由路由表中不会出现 OIA 的明细路由和 OE1 或 OE2 路由)区域内的所有路由器必须配置为末梢属性,ABR 配置成完全末梢属性。将区域 1 变为完全末梢区域
R2:
router os 1
area 1 stub no-summary //在 ABR 上配置
R1:
router os 1
area 1 stub
3# NSSA(not so stub area)
NSSA 区域允许 ASBR。
NSSA 区域内的每一台路由器都配置 NSSA 属性不会自动产生一条默认路由。
会抑制 4#,5# LSA,但是会产生 7#LSA
为了解决 NSSA 区域路由器不能去往其他区域重分发进来的路由,需要在 ABR 上手动配置下放默认路由。
R2:
Router os 1
area 1 nssa default-information-originate
将区域 1 变为 nssa 区域
R1,R2
R1:
int lo0
ip address 172.16.1.1 255.255.255.0
Router os 1
redistribute connected subnets
4# 完全的 NSSA 区域(totally-nssa)
完全的 NSSA 区域内的路由器配置为 NSSA 属性,ABR 配置成完全NSSA 属性。完全的 NSSA 区域会抑制 4#,5#,3# LSA,ABR 会产生 3#的默认 LSA。
将区域 1 变为完全的 NSSA 区域。
R2:
Router os 1
area 1 nssa no-summary
OSPF 的汇总
1# OSFP 域外汇总(汇总 5# LSA): 在 ABR 上 做 区 域 外 的 汇 总 : R4(config)#router os 1
R4(config-router)#summary-address 192.168.0.0 255.255.248.0
2# OSFP 域内汇总(汇总 3# LSA):
模拟:
R3(config)#int lo1
R3(config-if)#ip address 10.1.8.1 255.255.255.0 R3(config-if)#exit
R3(config)#int lo2
R3(config-if)#ip address 10.1.9.1 255.255.255.0 R3(config-if)#exit
R3(config)#int lo3
R3(config-if)#ip address 10.1.10.1 255.255.255.0
R3(config-if)#exit R3(config)#int lo4
R3(config-if)#ip address 10.1.11.1 255.255.255.0 R3(config-if)#exit
R3(config)#router os 1
R3(config-router)#router-id 3.3.3.3
R3(config-router)#net 10.1.8.1 0.0.0.0 area 2
R3(config-router)#net 10.1.9.1 0.0.0.0 area 2
R3(config-router)#net 10.1.10.1 0.0.0.0 area 2
R3(config-router)#net 10.1.11.1 0.0.0.0 area 2 R3(config-router)#exit
在 ABR 上做区域内的汇:
R2(config)#router os 1
R2(config-router)#area 2 range 10.1.8.0 255.255.252.0
OSPF 虚链路
通过虚链路的 LSA 不会老化,hello 包建立邻居之后,hello 包被抑制,不存在 hello 包的周期时间。
1# 解决孤岛区域,区域连接问题
R2:
R2(config)#router os 1
R2(config-router)#area 1 virtual-link 3.3.3.3 R3:
R3(config)#router os 1
R3(config-router)#area 1 virtual-link 2.2.2.2
2# 解决区域 0 被分割的问题
问题:ospf 网络中出现了两个区域 0,彼此之间会抑制 3#LSA,使用虚链路解决区域 0 被分割的问题。
R2:
R2(config)#router os 1
R2(config-router)#area 1 virtual-link 3.3.3.3 R3:
R3(config)#router os 1
R3(config-router)#area 1 virtual-link 2.2.2.2
R3(config)#do sh ip os nei //可以看到多出一条虚链路。
OSPF 下放默认路由
方法一:
R3(config)#ip route 0.0.0.0 0.0.0.0 lo10 //指一条从 ASBR 到外部网络的静态路由。
R3(config)#router os 1
R3(config-router)#default-information originate
方法二:
R3(config)#router os 1
R3(config-router)#default-information originate always
路由重分发
将一种协议的路由拷贝一份传到另一种协议。
种子度量值:
RIP:无限大(infinity)跳数 15 最大,16 为不可达。
IGRP/EIGRP:(infinity)带宽 时延 可靠性 负载 MTU
OSPF:20(除了 BGP 为 1) Cost 值与带宽有关
IS-IS:0
BGP:由路由分发进来的 IGP 协议的度量值决定。
1# 将 eigrp 重分发进
rip router rip
redistribute eigrp 100 metric 2
2# 将 rip 重 分 发 进 eigrp
router eigrp 100
redistribute rip metric 1000 100 255 1 1500 带宽 时延 可靠性 负载 mtu
3# 将 Ospf 重分发进 eigrp
router eigrp 100
redistribute ospf 1 metric 1000 100 255 1 1500
4# 将 eigrp 重分发进 ospf
router os 1
redistribute eigrp 100 subnets
subnets 作用:如果重分发的时候不加 subnets 则掩码和主类掩码不匹配的路由,不能被重分发进 ospf 路由协议。
其他协议重分发进 OSPF 的种子度量值为 20,类型为 OE2。
router ospf 1
redistribute eigrp 100 subnets metric-type 1 metric 60 //重分发进 OSPF 的时候类型改
为 OE1 度量值改为 60.
5# 将 ospf 重分发进 rip。
Router rip
redistribute ospf 1 metric x(1<x<16)
6# 将 rip 重分发进 ospf。
Router ospf
redistribute rip subnets 7# 将 Ospf 重分发进 BGP router bgp 2
redistribute ospf 1 match external internal
R1#ping 172.16.1.1 source 192.168.1.1 // 带 源 ping
R1#ping 192.168.1.1 repeat 1000 // 反复 ping 1000 次
OSPF 路由协议的 OE1 和 OE2 的区别
OE1:其他协议重分发进 OSPF 协议后,Cost 累加。
OE2:其他协议重分发进 OSPF 协议后,Cost 不累加。
OSPF 路由的优先级依次减小。 O > OIA > OE1 > OE2
为了让 ospf 的环回接口向外通告其真实的掩码,将接口网络类型改成 point-to-point
R1(config-if)#int lo0
R1(config-if)#ip os net point-to-point
1# distribute-list 分发列表
案例一:
要求在 R3 的路由表中只能看到 192.168.1.0/24 的路由。
第一步:抓取路由 192.168.1.0/24
R3(config)#access-list 1 permit 192.168.1.0
第二步:是 EIGRP 进程下使用分发列表
R3(config)#router eigrp 100
R3(config-router)#distribute-list 1 in //分发列表调用 acl 定义的路由和对其的操作。
案例二:
要求 r3 看不到 192.168.1.0/24 和 192.168.3.0/24 的路由
R3:
第一步:定义 ACL 抓取路由
access-list 1 deny 192.168.1.0
access-list 1 deny 192.168.3.0 access-list 1 permit any
第二步:
在进程下使用分发列表调用
router eigrp 100
distribute-list 1 in
*对 ACL 的操作
R3(config)#ip access-list standard 1 // 进入标准访问列表 1,在进行添加或删除操作。
*分发列表只能在一个方向调用一次。(in / out)
2# prefix-list 前缀列表
案例一:
要求 r3 上只能看到 192.168.1.0/24 的路由(除本地直连)。
第一步:使用前缀列表抓取路由 192.168.1.0/24
R3(config)#ip prefix-list wscn permit 192.168.1.0/24
第二步:
在 eigrp 进程下调用 prefix-list
R3(config-router)#distribute-list prefix wscn in //使用分发列表调用 prefix-list 定义的对路由的操作策略。
案例二:
要求 R3 上看不到 192.168.1.0/24 192.168.2.0/24 192.168.3.0/24 的路由。
方法一:
第一步:定义路由策略(prefix-list)
R3(config)#ip prefix-list nscn deny 192.168.1.0/24
R3(config)#ip prefix-list nscn deny 192.168.2.0/24
R3(config)#ip prefix-list nscn deny 192.168.3.0/24
R3(config)#ip prefix-list nscn permit 0.0.0.0/0 le 32 //放行所有路由
前缀列表的命令格式:ip prefix name deny|premit 前缀/匹配多少位 ge 掩码大于等于,le 掩码小于等于。
第二步:调用
R3(config)#router eigrp 100
R3(config-router)#distribute-list prefix nscn in
方法二:
使用一条命令拒绝 192.168.1.0-3.0 掩码为 24 位的路由。
第一步:
定义前缀列表
ip prefix-list abc seq 5 deny 192.168.0.0/22 ge 24 le 24 //匹配 192.168.0.0 的前 22 位,掩
码大于等于 24 和掩码小于等于 24 的路由(即掩码为 24 位)。
ip prefix-list abc seq 10 permit 0.0.0.0/0 le 32
第二步:
在 eigrp 进程下调用
Router eigrp 100 distribute-list prefix abc in
用前缀列表分别表示出所有的 A 类,B 类,C 类路由。
R3(config)#ip prefix-list a permit 1.0.0.0/1 ge 8 le 8
R3(config)#ip prefix-list b permit 128.0.0.0/2 ge 16 le 16
R3(config)#ip prefix-list c permit 192.0.0.0/3 ge 24 le 24
案例三:
要求在 R2 上看不到 192.168.1.0/24 的路由使用 ACL 来定义策略
第一步:定义 ACL。
R2(config)#access-list 1 deny 192.168.1.0
R2(config)#access-list 1 permit any
第二步:调用
R2(config)#router ospf 1
R2(config-router)#distribute-list 1 in
要求在 R2 上看不到 172.16.1.0-172.16.4.0/24 的路由,要求使用前缀列表定义策略。
R2(config)#ip prefix-list bca deny 172.16.0.0/21 ge 24 le 24 R2(config)#ip prefix-list bca permit 0.0.0.0/0 le 32
R2(config)#router eigrp 100
R2(config-router)#distribute-list bca in
要求:
1# 在 r2 上进行 eigrp 重分发进 ospf,在 ospf 域内,看不到 172.16.*.0/24(*号为偶数的路由条目);
2# 172.16.1.0/24 的路由类型为 OE1;
3# 172.16.3.0/24 的度量值为 88;
4# 剩下所有 eigrp 路由携带标签 90;
第一步:抓取流量
抓 172.19.*.0/24 的偶数路由
access-list 1 permit 172.16.0.0 0.0.254.0
access-list 2 permit 172.16.1.0
access-list 3 permit 172.16.3.0
第二步:使用 route-map 完成题目的要求
R2(config)#route-map 66 deny 10
R2(config-route-map)#match ip address 1 //定义 route-map 66 拒绝 ACL 1 中所定义的路由。
R2(config)#route-map 66 permit 20
R2(config-route-map)#match ip address 2
R2(config-route-map)#set metric-type type-1 //对于 ACL 2 所定义的路由放行,并且将它的度类型改为类型一。
R2(config)#route-map 66 permit 30 R2(config-route-map)#match ip address 3
R2(config-route-map)#set metric 88 //对 ACL 3 所定义的路由放行,并且将它的度量值改为 88。
R2(config)#route-map 66 per 40
R2(config-route-map)#set tag 90 //对于以上没有匹配到的所有路由打上 TAG 90,并且放行**route-map 和 ACL 一样默认后面拒绝所有。
重分发的时候调用route-map
R2(config)#router os 1
R2(config-router)#redistribute eigrp 100 subnets route-map 66 //在 EIGRP 路由协议重分发进 ospf 协议的时候调用 route-map。
sh ip rou 22.22.22.0 //查看路由 22.22.22.0 详细路由信息。
案例二:
在 ospf 重分发进 eigrp 的时候做如下策略:
1# 在 eigrp 域内的路由,看不到 192.168.*.0/24 的路由,*代表奇数;
2# 使 192.168.8.0/24 的路由携带标签为 666;
3# 其他的路由携带标签 888;
4# 在 R3 的路由表中不允许出现标签为 666 的路由。
第一步:
抓取路由:
access-list 10 permit 192.168.1.0 0.0.254.0
access-list 11 permit 192.168.8.0
第二步:
1# route-map 66 deny 10 match ip add 10
2# route-map 66 deny 20 match ip add 11
set tag 666
3# route-map 66 permit 30
set tag 888
第三步:
在 OSPF 重分发 EIGRP 的时候调用。
router eigrp 100
redistribute ospf 1 metric 1000 100 255 1 1500 route-map 66
第四步:
在 R3 的路由表中不允许出现标签为 666 的路由。
R3(config)#route-map xvh deny 10 R3(config-route-map)#match tag 666
R3(config-route-map)#route-map xvh permit 20 R3(config)#router eigrp 100
R3(config-router)#distribute-list route-map xvh in
被动接口 passive-interface
对于 EIGRP 和 OSPF 协议,配置为 passive-interface 不接收也不发送协议数据包。对于 RIP 协议只接收,不发送协议数据包。
配置方式:
R1(config)#Router os 1
R1(config-router)#passive-interface lo0
R1(config-router)#passive-interface lo1
R1(config-router)#passive-interface lo2
R1(config-router)#passive-interface lo3 或者
R3(config)#router ei 100
R3(config-router)#passive-interface default //将所有接口都变成被动接口
R3(config-router)#no passive-interface f0/0 //开启物理接口
OSPF 的区域过滤 filter-list
要求 ospf 区域 0 的 192.168.8.0-11.0 不可以出现在其他 ospf 域内
第一步:使用前缀列表 prefix -list 抓取路由
R2(config)#ip prefix-list abc deny 192.168.8.0/22 ge 24 le 24 R2(config)#ip prefix-list abc permit 0.0.0.0/0 le 32
第二步:在 ospf 进程下过滤R2(config)#router os 1
R2(config-router)#area 0 filter-list prefix abc out //在区域 0 的出方向进行过滤
路由协议的双向重分发
需求一、RIP 协议的路由器只能看到 RIP 协议的路由
第一步:RIP_L 重分发进 OSPF,打标签 120。
R2(config)#route-map 233 permit 10
R2(config-route-map)#set tag 120
R2(config)#router os 1
R2(config-router)#redistribute rip subnets route-map 233
第二步:ospf 重分发进 RIP_R 只匹配标签为 120 的路由。
R4(config)#route-map 233 permit 10
R4(config-route-map)#match tag 120 R4(config)#router rip
R4(config-router)#redistribute os 1 metric 2 route-map 233 // 在重分发的时候调用route-map
第三步:RIP_R 重分发进 OSPF 标签为 210 的路由
R4(config)#route-map 999 permit 10
R4(config-route-map)#set tag 210
R4(config)#router os 1
R4(config-router)#redistribute rip subnets route-map 999
第四步:OSPF 重分发进 RIP_L 只匹配标签为 210 的路由进入
R2(config)#route-map 999 permit 10
R2(config-route-map)#match tag 210 R2(config)#router rip
R2(config-router)#redistribute os 1 metric 2 route-map 999
需求二、EIGRP 协议内的路由器看不到 RIP 协议传过来的路由
需求三、要求 EIGRP 协议内的路由器看到 OSPF 协议传过来的路由携带标签 666
R3:
第一步:定义 route-map
OSPF 重分发进 EIGRP 拒绝携带标签 210 和 120 的路由
route-map 888 deny 10
match tag 210
match tag 120
OSPF 协议的路由携带标签 666
route-map 888 per 20
set tag 666
第二步:在 OSPF 重分发进 EIGRP 的时候调用 route-map 888 router ei 100
redistribute os 1 metric 1000 100 255 1 1500 route-map 888
第三部:将 EIGRP 重分发进 OSPF route os 1
redistribute ei 100 sub
sh ip ospf int lo0 //查看 lo0 口网络状态。
As 号自治系统(Autonomous System)
RIP 跳数 (15)距离矢量路由协议
组播地址 224.0.0.9 基于 UDP520 TTL = 2
Eigrp 带宽 延时 可靠性 负载 mtu 高级的距离矢量路由协议
组播地址 224.0.0.10
协议号 88 默认跳数 100
TTL = 2
Ospf cast(bw) 链路状态路由协议
组播地址 224.0.0.5
224.0.0.6
协议号 89
TTL = 1 最多承载 1w 调路由ISIS 最多承载 2w 调路由
可以承载 10w 路由以上
基于 TCP 的 179 端口开发的
TTL 值(EBGP=1 IBGP=255(环回接口)) AS 号(1-65535 可用,64512-65531 保留)
特性:
1# 可靠性
基于 TCP。
通过 keepalive 机制保持连接。路由信息发送的精确。
2# 稳定性
只有网络拓扑发生变化或策略变化且到达最小通告时间间隔才通告。
EBGP 通过时间间隔是 30s,IBGP 通告间隔是 5s 。
具有 NSF(不中断转发),优先重启动等特性来支持设备升级(CCIE)。
3# 可扩展性
可处理路由超过 10 万条,证明扩展性很强。灵活的扩展性。
拥有丰富的属性可以对不同路由执行不同策略,能满足各种场景和客户需求,灵活的选路。
R1 和 R2 之间运行 EBGP
R1:
router bgp 1 //启用 BGP 协议,AS 号为 1
no synchronization //默认已经关闭了同步
bgp router-id 11.11.11.11 //定义 BGP 的 router-id
neighbor 202.101.12.2 remote-as 2 //指邻居,EBGP 使用对端的物理接口,对端的 AS 号为 2
no auto-summary //系统默认关闭自动汇总
R2:
router bgp 2
no synchronization
bgp router-id 22.22.22.22
neighbor 202.101.12.1 remote-as 1
R2 和 R4 建立 IBGP 关系
R2 的环回接口和 R4 的环回接口可以相互 ping 通 R2
R2:
router bgp 2
neighbor 4.4.4.4 remote-as 2 //和 R4 建立 IBGP 关系。neighbor 4.4.4.4 update-source lo0 //使用环回 0 口作为有效更新源。
R4:
router bgp 2
bgp router-id 44.44.44.44
neighbor 2.2.2.2 remote-as 2
neighbor 2.2.2.2 update-source Loopback0
R4 和 R5 之间运行 EBGP
R4(config)#router bgp 2
R4(config-router)#nei 202.101.45.5 remote-as 3
R5(config)#router bgp 3
R5(config-router)#bgp router-id 55.55.55.55
R5(config-router)#nei 202.101.45.4 remote-as 2
R5(config-router)#network 5.5.5.0 mask 255.255.255.0
作为 as 的边界路由器,可以宣告自己 IGP 路由表中的任何路由,但是一定要和 IGP 路由表中的路由相匹配。
R2(config)#router bgp 2
R2(config-router)#net 3.3.3.3 mask 255.255.255.255
BGP 的三张表
1# 邻居表
----- sh ip bgp su //查看邻居表
注意:State/PfxRcd 后面的数字代表向邻居传输的路由数目
2# BGP 转发数据库
---- sh ip bgp
从邻居传过来的所有网络包含到达网络的多条路径包含 bgp 路径的多种属性
3# ip 路由表
----- show ip route
存放到达网络的最佳路径
Bgp 的有效更新源
定义:在路由选择更新中使用该地址作为源地址。 默认情况下,有效更新源是我们的物理接口 ip 地址。
在建立 IBGP 邻居关系的时候一般使用环回接口作为有效更新源(环回接口比较稳定)。本端的更新源地址和对端 neighbors 后面的地址要保持一致。
BGP 的四个数据报文:
1# open
包含版本号,AS 号,router-id 保持时间(180s)。
2# keepalive
存活消息,可以确保 bgp 对等体关系的建立,默认 60s 发送一次,如果 hold time 为 0,则不发送 keepalive。
3# updata
包含一条路径消息,多条路径消息需要多个 updata 报文,包含网络的路径属性。
4# notification
当发生错误,检测到错误后发送该消息,立刻关闭 bgp 连接。
BGP 的五个邻居状态
1# idle(空闲)
路由器查找路由表,查找路由是否可达。
2# connect(连接)
路由器查找到路由,并完成 TCP 的三次握手。
3# open sent(发送 open 消息) 发送 BGP 之间的连接参数。
4# open confirm(open 确 认 ) 路由器对连接参数一致性确认。5# established (已建立的)
代表邻居关系已经建立。
BGP 邻居状态处于 Active 的原因
1# 没有邻居的回包路由
2# 邻居的对等体地址配错
3# 对端没有指邻居
4# 错误的 as 号
清理bgp 进程的命令
Cle ip bgp* //断掉本路由器所有 BGP 对等体关系,重新收敛。
Cle ip bgp * soft //让对等体重新发送 updata 报文。
Cle ip bgp 202.101.45.5 //针对 202.101.45.5 重新建立 BGP 对等体关系。
实验:
R1 和 R2 之间使用环回接口建立 EBGP 对等体关系
R1:
router bgp 1
nei 2.2.2.2 remot
2 nei 2.2.2.2 up
lo0
R2:
router bgp 2
nei 1.1.1.1 remot
1 nei 1.1.1.1 up
lo0
此时不可以建立对等体关系
原因:建立对等体关系的 ip 地址不可达解决:
R1:
ip route 2.2.2.0 255.255.255.0 202.101.12.2 R2:
ip route 1.1.1.0 255.255.255.0 202.101.12.1
此时依然不可以建立对等体关系
原因:EBGP 的 TTL 值为 1。
IBGP 的 TTL 值为 255(环回接口)。
解决方法:
将 TTL 值改为多跳
R1:
Router bgp 1
neighbor 2.2.2.2 ebgp-multihop 255 //将 TTL 值改为 255
R2:
Router bgp 1
Neighbor 1.1.1.1 ebgp-multihop 255 //将 TTL 值改为 255
BGP 的防环,IBGP 的下一跳问题:
IBGP 下一跳不变:
对于 IBGP 对等体传输路由的时候会出现下一跳不可达的问题,所以在指 IBGP 对等体的时候把下一跳改为自己:
R2(config)#router bgp 2
R2(config-router)#neighbor 4.4.4.4 next-hop-self
R4(config)#router bgp 2
R4(config-router)#neighbor 2.2.2.2 next-hop-self
EBGP 下一跳改变:
IBGP 的防环:IBGP 对等体学到的路由不会被通告给其他的 IBGP 对等体(水平分割)。
BGP 的同步:
Bgp 不允许从 ibgp 对等体学习到路由直接发送到 ebgp 对等体,除非这些路由已经被 IGP 学到。
默认情况下同步是被关闭的
BGP 解决黑洞问题
1# 打开同步(可以预防黑洞的产生)。
2# 将 BGP 重分发进 IGP(不可取,BGP 路由表数目庞大)
3# IBGP 全网互联(不可取)。
4# 使用 MPLS 解决(多协议标签转发) 配置:
R2(config)#int f1/0
R2(config-if)#mpls ip
R3(config)#int f0/0
R3(config-if)#mpls ip
R3(config)#int f1/0
R3(config-if)#mpls ip
R4(config)#int f0/0
R4(config-if)#mpls ip
BGP 路由属性
1# 公认必选:路由更新消息中必须携带此属性,所有运行 BGP 的设备必须识别它。
Origin (起源):用来描述路由更新消息的来源,i > e > ? 。//? 代表从 IGP 重分发进 BGP的路由条目(incomplete)
As-path :用 AS 来记录路由传输的路径,只用在 EBGP 对等体之间通告路由的时候,AS 号才会附加到 as-path 中。
Next-hop :用来描述到目标网段的下一跳 IP 地址。
2# 公认自选:路由更新消息中可以选择携带该属性,所有运行 BGP 的设备识别该属性。
Local_preference (本地优先级):运行 BGP 的路由器收到去往同一个目的地的多条路径,可以使用本地优先级。本地优先级默认为 100,只能在本 AS 有效,不会传给 EBGP对等体,公认自选属性(本地优先级越大越优先)。
Atomic_aggregate 原子聚合(汇总)
3# 任选可透明传输属性:BGP 设备不要求一定支持该属性,当一台路由器收到该属性的 BGP 路径,即使不识别也会将该属性传送到对端。
Community 团队属性
aggregator 聚合属性
4# 任选非可透明传输属性:BGP 设备不一定要求该属性,当一台路由器收到该属性的 BGP 路径,忽略该路径,并且不会向对端传送。
MED 可以影响数据进入本 as,和 Local_preference 相反,med 值只发送给 ebgp 邻居,MED 值越小越优先。
Originator_id
Cluster_list
Weight(权重值)(Cisco 私有)只本路由器有效,值越大越优先,本地产生的路由 weight
值为 32768,从邻居传过来的为 0 。
BGP 13 条选路原则
1# 优选最高的 weight ,本地有效,默认 32768,邻居过来的为 0。 Cisco 私有
R3:
1.1.1.0 r1
2.2.2.0 r2
调整路由
1.1 1.0 r2
2.2.2.0 r1
第一步:抓取路由
access 1 per 1.1.1.0
access 2 per 2.2.2.0
第二步:针对路由修改
weight 值route-map m1 permit 10
macth ip address 1 // 匹配路由 1.1.1.0
Set weight 1 //将 weight 值修改为 1
route-map m1 permit 20 //放行剩下所有路由
route-map m2 permit 10
macth ip address 2 //匹配路由 2.2.2.0
set weight 100 //将 weight 改为 100
route-map m1 permit 20 //放行剩下所有的路由
第三步:
调用 route-map router bgp 65345
neighbor 202.101.13.1 route-map m2 in //将 r1 向 r3 传路由 2.2.2.0 的 weight 值改为 100
neighbor 202.101.23.2 route-map m1 in //将 r2 向 r3 传路由 1.1.1.0 的 weight 值改为 1
2# 优选最高的 local-preference,默认是 100,在本 AS 内可传递。
1.1.1.0 – r1
2.2.2.0 – r2
调整路由
1.1.1.0 – r2
2.2.2.0 – r1
第一步:抓取路由
access list 1 permit 1.1.1.0
access list 2 permit 2.2.2.0
第二步:针对于路由修改本地优先级
R3(config)#route-map m1 permit 10
R3(config-route-map)#match ip address 1
R3(config-route-map)#set local-preference 200 //针对于路由 1.1.1.0 将本地
优先级修改为 200
R3(config-route-map)#exit
R3(config)#route-map m2 permit 10
R3(config-route-map)#match ip address 2
R3(config-route-map)#set local-preference 300 //针对于路由 2.2.2.0 将本地
优先级修改为 300
R3(config-route-map)#exit
R3(config)#route-map m2 permit 20
第 三 步 : 调 用 route-map
R3(config)#router bgp 65345
R3(config-router)#neighbor 202.101.13.1 route-map m2 in //在R1 将路由2.2.2.0 传给R3 的进方向,将本地优先级改为 300。
R3(config-router)#neighbor 202.101.23.2 route-map m1 in //在R2 将路由1.1.1.0 传给R3 的进方向,将本地优先级改为 200。
3# Originate 起源优先:network(宣告)>redistribute(重分发)>aggregate-address(聚合地址)
4# 优选最短的 AS_PATH ,可以使用 bgp bestpath as-path ignore 这个命令来跳过这一步。
1.1.1.0–r1
2.2.2.0 --r2
调整路由
1.1.1.0–r2
2.2.2.0–r1
第一步:抓取路由
第二步:定义 route-map 修改路由的 as-path route-map M1 permit 10
match ip address 1
set as-path prepend 65001 //针对路由 1.1.1.0 加 as 号 65001
route-map M1 permit 20
route-map M2 permit 10 match ip address 2
set as-path prepend 65002 //针对路由 2.2.2.0 加 as 号 65002
route-map M2 permit 20 第三步:调用 route-map router bgp 65345
neighbor 202.101.13.1 route-map m1 in //在r1 传路由 1.1.1.0 给r3 的时候加as 号 65001
neighbor 202.101.23.2 route-map m2 in //在r2 传路由 2.2.2.0 给r3 的时候加as 号 65002
5# 最小的 origin code (源代码)(IGP(0)>EGP(1)>incomplete(2))
1.1.1.0–r1
2.2.2.0 --r2
调整路由
1.1.1.0–r2
2.2.2.0–r1
第一步:抓取路由
第二步:定义 route-map 修改 origin code route-map M1 permit 10
match ip address 1
set origin egp 65012 //针对于 1.1.1.0 将起源代码改为 e
route-map M2 permit 20
route-map M2 permit 10 match ip address 2
set origin incomplete //针对于 2.2.2.0 将起源代码修改为?
route-map M2 permit 20
第三步:调用 route-map。R3(config)#router bgp 65345
R3(config-router)#neighbor 202.101.13.1 route-map m1 in R3(config-router)#neighbor 202.101.23.2 route-map m2 in
6# 优选最小的 MED(metric 值) (AS 之间交换).
route-map M1 permit 10
match ip address 1
set metric 200000
route-map M1 permit
20 route-map M2
permit 10 match
ip address 2
set metric 300000
route-map M2 permit 20
router bgp 65345
neighbor 202.101.13.1 route-map M1
in neighbor 202.101.23.2 route-map M2 in
7# EBGP 优于 IBGP (在选择过程中,联盟内部和外部没区别)。
8# BGP 优先选择到 BGP 下一跳的 IGP 路径最低的路径。
9# 如果配置了 maximum-paths n (n 在 2-16),负载均衡。
10# 优选最老的 EBGP 路径,以下情况跳过。
①启用了 bgp bestpath compare-routerid。
②多条路径具有相同的 router-id,因为都是从同一路由器收到。
③当前没有最佳路径,通告最佳路径的路由器失效。
11# 优选最低的 BGP router_ID 的路径。
12# 如果多条路径的始发路由器 ID 或 router_id 相同,选 cluster_list 长度最短的。
13# 优选最低的邻居地址的路径。
BGP 汇总
BGP 的 聚 合 :
R3(config)#router bgp 2
R3(config-router)#aggregate-address 172.16.8.0 255.255.252.0
//明细路又不会被抑制。
R3(config-router)#aggregate-address 172.16.8.0 255.255.252.0 summary-only
//只向外通告聚合路由,可以抑制明细路由。
R3(config-router)#aggregate-address 172.16.8.0 255.255.252.0 as-set summary-only
//as-set 让聚合路由携带聚合者这属性,在属性表中添加路由在聚合前经过的 as。
show ip bgp 172.16.8.0 255.255.252.0 //查看聚合者属性
Ebgp 的防环
使用 as_path 当 as-path 列表中出现本 as 号时,则不接受该路由更新。
BGP 下放默认路由
R4(config)#router bgp 3
R4(config-router)#neighbor 202.101.34.3 default-originate //向 R3 下方默认路由。
BGP 的过滤机制
案例 1:
R2 向 R1 传输路由的时候之传送起源于 AS3 的路由第一步:定义列表
R2(config)#ip as-path access-list 1 permit ^3$
第二步:调用
R2(config)#router bgp 2
R2(config-router)#neighbor 202.101.12.1 filter-list 1 out
案例 2:
第一步:定义列表
R2(config)#ip as-path access-list 10 deny ^3$ //拒绝起源于 as3 的路由。
R2(config)#ip as-path access-list 10 permit .* //定义放行剩下所有的.*。第二步:调用
R2(config)#router bgp 2
R2(config-router)#neighbor 202.101.12.1 filter-list 10 out
案例 3:
R4 上拒绝将起源于本 as 的路由传给其他 as。第一步:定义列表
R4(config)#ip as-path access-list 10 deny ^$ //拒绝起源于本 as 的路由。
R4(config)#ip as-path access-list 10 permit .* //放行剩下的所有。
第二步:调用
R4(config)#router bgp 3
R4(config-router)#nei 202.101.34.3 filter-list 10 out
案例 4:
R2 向 R1 只传送 172.16.8.0/22 的路由,其他的拒绝。第一步:抓取路由
R2(config)#ip prefix-list 233 permit 172.16.8.0/22 第二步:调用
R2(config)#router bgp 2
R2(config-router)#neighbor 202.101.12.1 prefix-list 233 out
数据链路层( 二层)
以太网帧格式两种定义:
802.3:
前导码 |
目标MAC 地址 |
源MAC 地址 |
长度 |
数据 |
FCS 校验码) |
byte 8 |
6 |
6 |
2 |
可变长(46-1500) |
4 |
Ethernet II: | |||||
前导码 |
目标MAC 地址 |
源MAC 地址 |
类型 |
数据 |
FCS 校验码) |
Byte 8 |
6 |
6 |
2 |
可变长(46-1500) |
4 |
一个 VLAN = 一个广播域 = 一个逻辑子网
vlan:虚拟的局域网,可以增强网络的灵活性和安全性,可以对网络进行有效的分段。
TRUNK :可以承载多个 VLAN 信息的链路。
交换机的三个功能:
1# 地址学习
2# 帧转发过滤
3# 环路防止
交换机对帧进行 VLAN 标记有两种协议:
ISL(Cisco 私有)和 802.1Q(公用)
ISL:在原始以太网帧的头部加了 26 字节的 ISL 头部,尾部加入了 4 字节的 CRC 码,没有破坏原始帧.最大支持 1024 个 vlan。
802.1Q:在原始帧源 MAC 后面(中间还有类型)加 4 个字节 TAG 标记位,对 VLAN 进行标记{前两个字节标记着以太网的类型(3bit 代表优先级,1bit 代表令牌环标记,12bit 的vlan_id)},公有协议,破坏了原始帧.最大支持 4094 个 VLAN。
校园网的三层架构
1# access(接入层)
2# distribution(汇聚层)
3# core(核心层)
VLAN ID 的范围:(0-4095)
1# 0 4095 系统保留不能被使用。
2# Vlan 1 正常使用,默认所有借口属于 vlan 1(不可以删除)。
3# 2-1001 正常使用,用于以太网,可以自由修改。
4# 1002-1005 正常使用,默认用于 FDDI 和令牌环型网,不能删除。
5# 1006-1024 保留,系统使用。
6# 1025-4094 扩展,用于以太网,自由修改。
7# 2-1001.1025-4094 可以正常使用。
1、本征vlan (Native VLAN)
本征 vlan 在 trunk 传输中不打标签修改本征 vlan 的命令
int f0/3
switch trunk native vlan 99 //修改本征 vlan 为 99.
Trunk 链路的两端本征 vlan 要一致。
2、DTP 协议(动态中继协议 dynamic trunking protocol)
作用:用于接口协商 trunk(交换机自动协商指定交换机之间的链路是否形成 trunk) DTP 定义了 5 种接口模式:
1# Access // 用于连接 pc,永远不能成为 trunk
2# On // 无条件成为 trunk
3# Dynamic desirable // 可以发送 DTP 协议,愿意成为 trunk
4# Dynamic auto // 可以接收 DTP 协议,愿意成为 trunk
5# Nonegotiate // 已经成为 trunk,但不发送 DTP 消息
3、一般情况直接将交换机的接口模式改为trunk,关闭DTP 协议
int f0/3
switchport nonegotiate
4、在trunk 链路中限制 vlan 的传输
int f0/3
switch trunk allowed vlan 1 20 99 //trunk 只传输 vlan1 20 99 的数据show int trunk //查看 trunk 接口
STP(spanning-tree)生成树协议
当网络为了解决单链路故障,在交换网络中有了冗余设备。 网络冗余之后容易出现以下问题:
1、广播风暴(交换机对广播数据包是泛洪处理)
2、重复的数据帧
3、Mac 地址表不稳定
一、生成树的选举过程:
1# 选出一个根桥。(网络中桥 ID 最小的为根桥)桥 ID(8Byte)=桥优先级(2Byte) 桥mac(6Byte))
sh spanning-tree //查看交换机生成树
优先级:32768 配置:
Mac 地址:0000.0CC8.432B
sw2#sh spanning-tree Address 0001.63D6.026A
Sw3#sh spanning-tree Address 0000.0CC8.432B
2# 在每个非根网桥上选举出根端口(根端口到根桥花销最小)
(花销相同的情况下由发送者的根端口和桥 ID 决定) 根端口用来收 BPDU 的。
路径代价(IEEE 修订):
连接速率 代价
10Gbps 2
1Gbps 4
100Mbps 19
10Mbps 100
端口 ID = 端口优先级 端口号
3# 在每段上选举出一个指定端口(优选发送桥 ID 小的,优选发送端口 ID 小的,根桥上的端口每个都是指定端口,用于向非根桥发送 BPDU)
4# 非指定端口或非根端口被阻塞掉(block)
二、BPDU(bridge protocol data unit)网桥协议数据单元
BPDU 每 2s 发送一次
Switch(config)#spanning-tree vlan 1 priority 0 //将 vlan1 的优先级改为 0
1# 802.1D 定义的 stp,所有 vlan 使用一个生成树协议 (RFC 定义)
2# PVST 是每 vlan 配一个 stp(cisco 定义)
Cisco 设备优先级 4bit 12bit 48bit
优先级 sys-id-ext(VLAN ID) MAC 地址
Cisco 设备调整优先级必须是 4096 的倍数
三、交换机调整根网桥,可以通过调整优先级。
案例:让 SW3 成为 VLAN1 的根。(Cisco 的默认优先级是 32768 VLAN ID)
方法一:
spanning-tree vlan 1 root priority 0 (1-10 可以调整 1-10)
//将 vlan1,vlan2 优先级修改为 0。
方法二:
spanning-tree vlan 1 root secondary //将生成树的优先级修改为 28672。spanning-tree vlan 1 2 root primary(必须是 4096 的倍数)//在默认优先级 32768 的基础上减少了 2 倍的 4096 具体 primary 的优先级为多少,有自己的洪运算。
四、STP 协议的交换机的 5 种端口状态
Disable:禁用,不参与生成树,不会去转发数据。
Blocking:阻塞状态,参与生成树,不参与帧转发,能监听流入的 BPDU,不能学习 mac 地址。
Listening:可以决定根桥,选择根端口,指定端口和非指定端口。不参与帧的转发,能监 听 BPDU,能决定根网桥,不能学习 MAC 地址。
Learning:学习状态,准备参与帧的转发,能够学习 MAC 地址,但不能参与帧的转发。
Forwarding:可以转发数据帧,能够学习 MAC 地址。
五、生成树端口从BLK 到 FWD 的转换时间
直接故障:从 BLK 到 FWD 的转换时间为 30s(15s 15s) 优质 BPDU(根不变)
间接故障:从 BLK 到 FWD 的转换时间为 50s(20s 15s 15s) 劣质 BPDU(根网桥发生变化的 BPDU)
增强型的STP(PVST )
1# 优化 portfast //针对于交换机连接 pc 或者服务器的接口,可以优化 30s 转发延时,进入 Forwarding 状态。
方法一:
int f0/3(接入模式的端口) spanning-tree portfast
方法二:
配置模式下,将所有接口模式为 access 的端口变为快速转发端口。
spanning-tree portfast default
2# uplinkfast
用于解决直接故障,从 blocking 到 forwarding 状态的 30s 的收敛时间被优化。
当交换机的 RP(根端口)小时候重新选举 RP,需要 30s 时间uplinkfast 可以优化 30s 的时间。
配置模式:
Spanning-tree uplinkfast
3# backbonefast
用于解决间接故障,从 blocking 到 forwarding 状态50s(20S 15S 15S)可以优化前面的 20s
时间。
配置模式:
Spanning tree backbonefast
802.1W 定义 RSTP
Cisco rapid-pvst(快速的 VLAN 生成树)
1# 快速生成树的端口角色:
STP 的端口角色:
根端口(RP),指定端口(DP),非指定端口,只有根端口和指定端口才能出于 forwarding状态。
RSTP 的端口角色:
1# Root port 根端口 forwarding
2# designated port 指定端口 forwarding
3# backup port 备份端口 备份指定端口,备份端口出现在“自环”中,当 DP 消失之后,可以节省 30s 时间,立即替代 DP。
4# Alternate port 替代端口 (替代的根端口)当根端口消失后,立即成为根端口,节 省 30s 时间。
5# Edge port 边界端口(用于连接 pc 或服务器)可以节省 30s 的时间,但是对于我们的快速生成树必须要指定边缘端口。
配置模式:
spanning tree portfast edge default //定义边缘端口为快速转发端口
2# 快速生成树的端口状态
Discard (disable blocking listening,不能学习 mac 地址)
Learnning(可以学习 mac 地址,不能转发数据)
Forwarding (可以学习 mac 地址,能转发数据)
根端口,指定端口,边缘端口,状态处于 forwarding 状态。替代端口,备份端口处于 discard 状态。
3# 修改生成树的模式为快速生成树
配置模式:Spanning tree mode rapid-pvst
一、Rstp 的链路类型(rstp link type):
1# p2p 点对点(交换机与交换机相连的链路)
2# shared 共享型(交换机与集线器相连的链路)
二、快速生成树的原因
1# 快速生成树多了备份端口,替代端口,边缘端口。
2# 快速生成树拓扑发生变化的时候比 STP 收敛快。
3# 快速生成树有 P/A 机制,在新增的链路中能够快速的选举出跟端口和指定端口。
三、快速生成树的P/A 机制
1# 当链路中产生了一条新的链路,被选作 DP 的端口,会向对端发送 proposal 置位的 BPDU
2# 当收到 proposal 置位的 BPDU,该网桥将自己的所有的端口置位 SYN(同步)
*Edge 端口算是 SYN
*之前被 block 的端口也算是 SYN
*之前处于 dp 或者 rp 的端口 block,处于 SYN 状态
3# 当所有的端口处于 SYN 状态之后,则交换机向上游交换机发送 proposal 的交换机发送
agreement bpdu,端口立即改变自己的状态。可以快速的让 DP/RP 或者 AP,BP 得到快速的确认。
802.1s 定义
Mstp 是将多个 vlan 放入一个实例(instance),每个实例维护一颗树Mstp 的优先级将之前的 VLAN_ID 变为实例号.
Bridge ID= 优先级 instance number mac address
1# MSTP 分类:
CST:互联各个 MST 区域,并维护一个单独的生成树,这个区域可能包含着不属于任何区域的 802.1d 的交换机。
IST:mst 区域内的生成树,维护和计算该 mst 区域的内的 stp,特殊的 IST 为实例 0,该 IST 为该区域的 MST 的外界表现。
默认的所有的 vlan 是属于实例 0.
2# MSTP 的配置:
Spanning-tree mode mst //将生成树模式改为 MST Spanning-tree mst configuration //进入 MST 的配置域名Name QLB //定义域名 QLB
Revision 2 //定义修订号为 2
Instance 1 vlan 1-500 //将 vlan1-500 加入实例 1
Instance 2 vlan 501-1000 //将 vlan501-1000 加入实例 2
3# 多协议生成树调整优先级:
Spanning tree mst 0-1 root primary //将该交换机调整为实例 0 1 的主根。Spanning tree mst 2 root secondary //将交换机调整为实例 2 的备份根。或
Spanning-tree mst 0-1 priority 0 //将实例 0 1 的优先级调整为 0
spanning-tree mst 2 priority 4096 //将实例 2 的优先级调整为 4096
链路聚合:
1# LACP
IEEE 802.3ad 定义的链路聚合协议最多可以支持 16 条链路的捆绑Lacp 可以链路捆绑成功的组合Active 和 active
Active 和 passive Sw1:
Int rang f0/1-3 Sw tr en dot Sw mo tr
Channel-protocol lacp
Channel-group 12 mode active / passive Sw2:
int rang f0/1-3 Sw tr en dot Sw mo tr
Channel-protocol lacp Channel-group 21 mode active
查看命令:Show etherchannel summary // 查看链路的状态
2# PAPG(cisco 私有)
Pagp 链路捆绑成功的的组合:最多支持 8 条链路捆绑。desirable 和 auto
desirable 和 desirable Sw1:
int rang f0/1-3 Channel protocol pagp
Channel-group 12 mode desirable / auto Sw2:
int rang f0/1-3 Channel protocol pagp
Channel-group 21 mode desirable
3# 自动捆绑以太链路
Sw1:
int rang f0/1-3
Channel-group 12 mode on Sw2:
int rang f0/1-3
Channel-group 21 mode on
以太链路捆绑成功的的条件(二层实现负载均衡的条件):
1# 物理介质要一致,单双工的速率匹配
2# 如果封装了 trunk,封装协议要一致(802.1Q 和 ISL)
3# 如果没有封装 trunk 要在同一个 vlan
4# 封装的端口要连续
5# Lacp 和 pagp 不兼容
基于 UDP 1985 端口组播地址 224.0.0.2
R3 R5 模拟冗余的网关路由
1# 虚拟的 mac 地址为:0000.0c07.ac group ID 2# 冗余网关维护的 IP 要一致
3# 抢占默认是关闭的
4# 稳定的状态为 active 和 standby 5# 处于 active 的状态的路由优先转发
6# 可以适用于以太接口和 SVI(Switch Virtual Interface)
配 置 :
R3(config)#int f0/0
R3(config-if)#standby 1 ip 192.168.1.254 R5(config)#int f0/0
R5(config-if)#standby 1 ip 192.168.1.254
HSRP 有 6 个状态:
1# Initial 初始化
2# Learn 学习
3# Listen 倾听
4# Speak 宣讲
5# Standby 备用
6# active 活动
active 状态的选举原则:
先比较优先级,优先级大的优先成为 active(默认优先级 100) 如果优先级一样,比较接口的 ip 地址,ip 地址大的成为 active。
将 R3 的优先级调整比 R5 大:
R3:
int f0/0
Standby 1 priority 110 //将优先级调整为 110,此时依然由 R5 转发。
开启 R3 的抢占: R3(config)#int f0/0
R3(config-if)#standby 1 preempt //开启抢占
R3(config)#int f0/0
R3(config-if)#standby 1 track s1/0 //追踪是 s1/0 接口的状态
追踪(track)4.4.4.0/24 是否可达:
R3(config)#track 100 ip route 4.4.4.4 255.255.255.0 reachability(可达性) R3(config)#int f0/0
R3(config-if)#standby 1 track 100 //追踪路由 4.4.4.0/24 路由的可达性,如果不达优先级默认减 10。
R3:
Access 1 deny 4.4.4.0 Access 1 permit any Router eigrp 100
Distribution 1 in //测试 4.4.4.0/24 路由的可达性, 如果不可达优先级默认减 10.
1# 协议的组播地址 224.0.0.18
2# 协议号 112
3# 虚拟的 MAC 地址为:0000.5e00.01 group id
4# 抢占默认开启
5# 默认优先级为 100
6# 稳定的状态:master backup(master 转发者,backup 备份)
VRRP 有三种状态
Initialize 初始化
Backup 备 份
Master 转 发 者
VRRP 的配置
sh run int f0/0 //查看接口下的配置
R5:
ip address 192.168.1.5 255.255.255.0
vrrp 1 ip 192.168.1.254
vrrp 1 authentication md5 key-string cisco R3:
ip address 192.168.1.3 255.255.255.0
vrrp 1 ip 192.168.1.254
vrrp 1 priority 101
vrrp 1 authentication md5 key-string cisco
vrrp 1 track 100 //定义的追踪号
clear arp-cache //ARP 缓存清除命令
抢占是默认关闭的,优先级为 100(用于选择 AVG)
基于三种方法的负载均衡:
1> host-dependent:根据不同主机的源 MAC 地址进行平衡;
2> round-roin:轮询方式,即每响应一次 ARP 请求,轮换一个地址,默认即为这种方式;
3> weighted:根据路由器的权重分配,权重高的被分配的可能性大; 1# AVG(active virtual gateway)活动虚拟网关
Avg 给每个成员分配虚拟 MAC 地址
可以应答 ARP 请求,给每个主机分配不同的 MAC 地址,达到负载均衡
2# AVF(active virtual forwarder)活跃虚拟转发者负责转发用户的数据
组播地址 224.0.0.102
基于 UDP 3222 端口。
R3:
int f0/0
glbp 1 ip 192.168.11.254
R3(config-if)#glbp 1 load-balancing //三种方法负载均衡
R3(config-if)#glbp 1 weighting ** //设置权重值
R5:
int f0/0
glbp 1 ip 192.168.11.254
到这里呢,Cisco网络方面的内容就差不多了,大家抽空把知识,实验巩固一下,整体过一遍,这样构建一个思路体系对学习,还是之后面试工作都会有帮助。
唠叨唠叨大家好,我是花生,感谢人才们的点赞,收藏和评论,下期再见了!