Osi七层参考模型
应用层:实现人机交互的界面
表示层:编码 解码 加密 解密
会话层:建立 维持 终止会话进程
传输层:通过端口号区分不同服务,数据分段
网络层:通过ip地址进行逻辑寻址 路由器
数据链路层: 媒介访问控制层 MAC
逻辑链路层 llc 为上层提供fcs校验
物理层:定义电气电压接口规范光学特性
Tcp面向连接体现在三次握手
- 序号(sequence number);Seq序号,占32位,用来标识从TCP源端想目的端发送的字节流,发起方发送数据对此进行标记。
- 确认号(acknowledgement number);Ack序号;占32位,只有ACK标志为1时,确认序号字段才有效,Ack=Seq+1.
- 标志位(Flags);共6个,即URG,ACK,PSH,RST,SYN,FIN等,具体含义如下:
URG;紧急指针(urgent pointer)有效。
ACK;确认序号有效。
PSH;接受方应该尽快将这个报文交给应用层。
RST;重置链接。
SYN;发起一个新连接。
FIN;释放一个链接。
特殊IP地址
1,127.0.0.1 - 127.255.255.255 ---- 环回地址
2,255.255.255.255 ---- 受限广播地址 ---- 受路由器的限制 --- 只能作为目标IP使用
3,主机位全1 --- 192.168.2.X/24 --- 192.168.2.255 --- 直接广播地址 --- 只能作为目标IP使用
4,主机位全0 --- 192.168.2.X/24 --- 192.168.2.0 -- 网段 -- 网络号
5,0.0.0.0 --- 1,代表没有IP。2,代表任意IP。
6,169.254.0.0/16 --- 自动私有地址
VLSM --- 可变长子网掩码 ---- 子网划分
CIDR --- 无类域间路由 ---- 汇总可变长子网掩码---取相同去不同
RIP
RIP(Routing Information Protocol)是距离向量型的一种路由协议,广泛用于LAN。
4.1.广播路由控制信息
RIP将路由控制信息定期(30s一次)向全网广播,由于可能丢包,因此RIP规定等待5次,如果等了6次(180S)仍未收到路由信息,才会真正关闭连接。
过程:
1).30S一次,将自己所知道的路由信息广播出去。
2).将已知的路由信息经过一跳之后继续广播。
3).以此类推,逐步传播路由信息。
4.2.根据距离向量确定路由
RIP基于距离向量算法决定路径,距离的单位为“跳数”,跳数是指所经过的路由器的个数。RIP希望尽可能少通过路由器将数据包转了到目标IP地址。根据距离向量生成距离向量表,再抽出较小的路由生成最终的路由控制表。
4.3.使用子网掩码时的RIP处理
RIP虽然不交换子网掩码信息,但可以用于使用子网掩码的网络环境。采用RIP进行路由控制的范围内必须注意两点:
1).因IP地址的分类而产生不同的网络地址时
2).构造网络地址长度不同的网络环境时
4.4.RIP中路由变更时的处理
RIP的基本行为可归纳为如下两点:
1).将自己所知道的路由信息定期进行广播
2).一旦认为网络被断开,数据将无法流过此路由器,其他路由器也就可以得知网络已经断开。
不过,这两点不论哪种方式都存在一些问题。
————————————————
RIP:路由信息协议 距离矢量协议
存在V1/V2/NG(下一代IPV6专用)
基于UDP520端口工作;使用跳数作为度量;更新方式:30s周期更新、触发更新
周期更新--保活 取代确认 优先级100;支持等开销负载均衡;
V1和V2的区别:
- V1有类别协议,不携带子网掩码,不能区分子网划分和汇总;
V2无类别协议,携带子网掩码,进行VLSM和子网汇总,不支持超网;
- V1广播更新--255.255.255.255 V2组播更新--224.0.0.9
- V2支持手工认证
破环机制:
- 水平分割 -- 从此口进,不从此口出--直线拓扑中防环;最主要的作用是在MA网络中避免重复流量; MA网络--多路访问访问 -- 一个网段的节点数量不限制
- 触发更新-- 毒性逆转水平分割
- 最大跳数 --- 15跳 16跳为不可达
- 抑制计时器;
配置命令:
V1配置:
[r1]rip ?
INTEGER<1-65535> Process ID
[r1]rip 启动时可以定义进程号;默认为进程1; 仅具有本地意义
[r1-rip-1]version 1 选择版本1;
宣告:1、激活--被选中接口可以收发rip的信息 2、共享路由--被选中接口的网段可以共享给本地的所有邻居;
[r1-rip-1]network 1.0.0.0
[r1-rip-1]network 12.0.0.0
[r1-rip-1]network 172.16.0.0
[r1-rip-1]network 192.168.1.0
切记:RIP宣告时,只能宣告主类网段;
[r2]display ip routing-table protocol rip 查看某种协议产生的路由条目
V2的配置:
[r1]rip ?
INTEGER<1-65535> Process ID
[r1]rip 启动时可以定义进程号;默认为进程1; 仅具有本地意义
[r1-rip-1]version 2 选择版本2;
宣告:1、激活--被选中接口可以收发rip的信息 2、共享路由--被选中接口的网段可以共享给本地的所有邻居;
[r1-rip-1]network 1.0.0.0
[r1-rip-1]network 12.0.0.0
[r1-rip-1]network 172.16.0.0
[r1-rip-1]network 192.168.1.0
【2】 RIP的扩展配置
- RIPV2的手工汇总 -- 在更新源路由器上,所有更新发出的接口上配置
[r1]int g0/0/1
[r1-GigabitEthernet0/0/1]rip summary-address 1.1.0.0 255.255.252.0
汇总网段
- RIPV2的认证
邻居间收发的RIP消息中进行身份核实口令添加;同时华为在接口开启认证后,所有rip的信息将被加密传输
[r1]interface g0/0/1
[r1-GigabitEthernet0/0/1]rip authentication-mode md5 usual cipher 123456
两两直连的邻居间,认证口令和模式必须完全一致;
- 沉默接口(被动接口) -- 仅接收不发送路由协议信息;只能用于连接用户终端的接口;
不能用于直连路由器邻居的接口,否则邻居间将无法共享路由信息
[r1]rip 1
[r1-rip-1]silent-interface GigabitEthernet 0/0/0
- 加快收敛
RIP计时器 30s更新 180s失效 180s抑制 300s刷新
适当的修改计时器,可以加快协议的收敛速度;修改时,全网所有运行rip的设备建议一致;维持原有倍数关系;且不易修改的过小;
[r1]rip 1
[r1-rip-1]timers rip 30 180 300 抑制计时器不修改
- 缺省路由 -- 在边界路由器上定义缺省源头信息后,将向内网发布缺省路由;之后内部路由器将自动生成缺省路由指向边界路由器方向; 边界路由器指向ISP的缺省路由,依然需要手写;
[r3]rip
[r3-rip-1]default-route originate
静态的扩展配置:
- 负载均衡:当访问相同目标,具有多条开销相似路径时;可以让设备将流量拆分后延多条路径同时传输;起到带宽叠加的作用;
- 环回接口-- 创建后,可用于路由器测试TCP/IP协议组件是否能够封装与解封装
[r1]interface LoopBack ?
<0-1023> LoopBack interface number
[r1]interface LoopBack 0
[r1-LoopBack0]ip address 1.1.1.1 24
同时,可用于实验环境中,模拟连接PC终端的用户接口,来减少实际设备成本需求;
- 手工汇总
若路由器需要访问多个连续子网,且具有相同的下一跳;可以将这些网段进行汇总计算;之后仅编写到达汇总网段路由即可;---节省路由表条目数量
- 路由黑洞
汇总地址中包含了,网络内实际不存在的网段时;让将导致流量有去无回;浪费链路资源;
建议合理的ip地址规划(便于无黑洞汇总),尽量精确汇总;
- 缺省路由 -- 一条不限定目标的路由,代表所有网段;路由器查表时在查询完本地所有的直连、静态、动态路由后若依然没有可达路径,才使用该条目;
[r1]ip route-static 0.0.0.0 0.0.0.0 12.1.1.2
- 空接口
当路由黑洞与缺省路由相遇时,将必然出现环路;
在黑洞路由器上,配置一条到达汇总网段的空接口路由;空接口及丢弃流量;来避免环路的产生;
[r1]ip route-static 1.1.0.0 22 NULL 0
- 浮动静态
不同方式产生到路由表中条目,其优先级不同;直连=0 静态=60
优先级取值范围 0-255 越小越好;
[r1]ip route-static 100.100.100.0 24 13.1.1.2 preference ?
INTEGER<1-255> Preference value range
[r1]ip route-static 100.100.100.0 24 13.1.1.2 preference 61
访问相同目标,具有多条路径时;将加载优先级最小到表中使用;若优先级相同将同时加表(负载均衡); 因此修改部分路由的优先级,可以实现静态备份的效果;
VLAN:虚拟局域网
交换机和路由器协同工作后,将一个广播域逻辑的分割为多个;
配置思路:
- 交换机上创建vlan
- 交换机上的各个接口划分到对应的vlan中
- Trunk(中继)干道
- VLAN间的路由 --- 路由器的子接口(单臂路由) 多层交换机的SVI
配置命令:
- 交换机上创建 VLAN的编号由12位二进制构成; 0-4095;其中1-4094可用;
默认交换机存在vlan1;且所有接口默认存在vlan1;
[sw1]vlan 2
[sw1-vlan2]q
[sw1]vlan 3
[sw1-vlan3]q
[sw1]vlan batch 4 to 10
[sw1]vlan batch 11 to 20 25 to 30
- 交换机上的各个接口划分到对应的vlan中
[sw1]interface Ethernet0/0/1 单独将某个接口划分到对应的vlan
[sw1-Ethernet0/0/1]port link-type access 先将该接口修改为接入模式
[sw1-Ethernet0/0/1]port default vlan 2 再将该接口划分到对应的vlan中
批量的将多个接口划分到同一个vlan
[sw1]port-group group-member Ethernet 0/0/3 to Ethernet 0/0/4
[sw1-port-group]port link-type access
[sw1-port-group]port default vlan 3
- trunk 干道 不属于任何一个vlan,承载所有vlan流量转发;可以标记(封装)识别(解封装)不同vlan的标签;
VLAN ID压入到数据帧中的标准 --- 802.1q(dot1.q)
[sw1]interface e0/0/5
[sw1-Ethernet0/0/5]port link-type trunk 将接口修改trunk模式
[sw1-Ethernet0/0/5]port trunk allow-pass vlan 2 to 3
注:默认华为交换机仅允许VLAN1通过;需要定义允许列表
[sw2-Ethernet0/0/3]port trunk allow-pass vlan all 允许所有vlan通过
- 路由器子接口
[router]interface g0/0/0.1 创建子接口
[router-GigabitEthernet0/0/0.1]dot1q termination vid 2 定义其管理的vlan
[router-GigabitEthernet0/0/0.1]ip address 192.168.1.254 24
[router-GigabitEthernet0/0/0.1]arp broadcast enable 开启子接口ARP功能
[router-GigabitEthernet0/0/0.1]q
[router]interface g0/0/0.2
[router-GigabitEthernet0/0/0.2]dot1q termination vid 3
[router-GigabitEthernet0/0/0.2]ip address 192.168.2.254 24
[router-GigabitEthernet0/0/0.2]arp broadcast enable
Ospf:开放式最短路径优先协议
无类别链路状态igp协议;周期更新(30min)+触发更新;链路状态协议的更新量随着网络范围的扩展指数性的上升,因此ospf协议为了在中大型网络中工作,需要结构化的部署-区域划分、合理ip地址规划;组播更新--- 224.0.0.5 224.0.0.6
【1】ospf的5种数据包:
Hello 邻居的发现,关系的建立;周期(10s)的保活 携带rid
Dbd 数据库描述包;本地数据库目录
Lsr 链路状态请求
Lsu 链路状态更新
Lsack 链路状态确认
Lsa -链路状态,具体一条一条路由信息或拓扑信息;但它不是一个包,是被lsu数据包来携带;
【2】Ospf的7个状态机:
Down :一旦接收到的hello 包,进入下一个状态机
Init 初始化: 一旦接收到的hello包中,存在本地的rid,进入下一个状态
2way 双向通讯: 邻居关系建立的标志
关注条件:
Exstart 预启动: 使用不携带目录信息的DBD包,进行主从关系的选举;rid大为主,优先进入下一个状态;解决了目录共享时的无序;
Exchange 准交换:使用携带目标信息的dbd包,共享本地数据库目录;
loading加载:查看完邻接的dbd信息后,对比本地,然后基于本地未知的lsa进行查询;
使用lsr 向对端查询,对端使用lsu来传输这些lsa信息,本地收到后需要
lsack来进去确认;
Full :邻接关系建立的标志; 意味着邻接间,数据库同步(一致)
【3】ospf的工作过程
启动配置完成后,邻居间开始收发hello包;hello包中将携带本地及本地所有已知邻居的rid;之后生成邻居表;邻居间需要关注是否可以成为邻接的条件;若不能建立为邻接,将保持为邻居关系,仅hello包周期保活即可;
若可以建立邻接关系;将使用DBD进行本地数据库目录的对比;之后基于对比的结果,使用LSR/LSU/LSack来获取本地未知的LSA信息;使邻接关系间数据库(lsdb)完成同步(一致),生成数据库表;
之后本地基于lsdb,使用spf算法,生成有向图—>最短路径树——>计算本地到达所有未知网段的最短路径,将其加载到本地路由表中;收敛完成;
收敛完成后,邻居和邻接关系间均hello每10s保活;每30min一次邻接关系间周期数据库比对,保障一致;
结构突变:
- 新增网段
- 断开网段
- 无法沟通 --- dead time 为hello time的4倍;在4次周期内未收到对端的hello包,将断开与其的邻居关系;删除通过该邻居计算所得路由;
lsdb:链路状态数据库 – 所有lsa的集合
【4】基础配置
[r1]ospf 1 router-id 1.1.1.1 启动时可以定义进程号、RID;默认进程1,RID--格式为IPV4地址,全网唯一; 手工--》环回接口最大数值--》物理接口最大数值
[r1-ospf-1]
宣告;
1、激活-- 可以收发ospf的信息
2、被选中接口的拓扑信息可以共享给邻接
3、区域划分
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[r1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
ospf在宣告时,需要使用反掩码,来匹配宣告的地址范围
区域划分规则:
- 星型结构 --- 编号0骨干区域(中心),大于0为非骨干区域(分支)
非骨干区域必须直连骨干区域;
2、必须存在ABR --- 区域边界路由器 两个区域间互联的设备
启动配置完成后,邻居间收发hello包;建立邻居关系,生成邻居表:
[r2]display ospf peer 查看邻居关系
[r2]display ospf peer brief 查看邻居简表
邻居关系建立后,关注条件;匹配失败,保持为邻居关系,仅hello包周期保活;匹配成功可以建立为邻接(毗邻)关系;邻接关系间,将使用DBD/LSR/LSU/LSack来获取本地未知的LSA信息;完整本地的LSDB (数据库表);
[r2]display ospf lsdb
当数据库同步完成后;本地基于SPF算法,将数据库转换为有向图,再将有向图转换为树型结构;之后基于树形结构,以本地为起到到达所有未知网段的最短路径,加载到路由表中;
<r1>display ip routing-table protocol ospf 查看ospf路由
优先级为10;度量为cost值 ; cost值=开销值
Ospf cost = 参考带宽/接口带宽 默认参考带宽为100M
ospf优选cost值之和最小,为最佳路径;若两条链路cost值之和相同,等开销负载均衡;
若接口带宽大于参考带宽,cost为1;将可能导致选路不佳;建议修改默认的参考带宽:
[r1]ospf 1
[r1-ospf-1]bandwidth-reference ?
INTEGER<1-2147483648> The reference bandwidth (Mbits/s)
[r1-ospf-1]bandwidth-reference 1000
切记:若修改参考带宽,全网需修改的一致;
【5】扩展配置
- DR/BDR选举
邻居成为邻接关系的条件;与网络类型有关;
网络类型:
点到点--在一个网段内只能存在两个节点 -- 串线链路
MA--多路访问-在一个网段内的节点数量不限制;不是当下连接了几个节点;而是该网络类型允许最终连接多个节点;--以太网
点到点网络邻居关系直接成为邻接关系;在MA网络中,将进行DR/BDR选举;在一个网段中仅DR/BDR与其他路由器为邻接关系;非DR/BDR之间为邻居关系;
选举规则:
- 先比较该网段所有参选设备接口的优先级,越大越优;
默认优先级为1;取值范围0-255,0标识不参选
- 若所有参选者优先级相同,比较参选设备的RID,数值大优;
干涉选举:
- DR优先级最大,BDR次大 -- 切记ospf的选举是非抢占性的;故在修改完优先级后,需要所有路由器重启OSPF进程;
[r2]interface GigabitEthernet 0/0/0
[r2-GigabitEthernet0/0/0]ospf dr-priority 3 修改接口优先级
<r1>reset ospf process 重启ospf进程
Warning: The OSPF process will be reset. Continue? [Y/N]:y
2、DR优先级修改为最大,BDR次大;其他设备修改为0;无需重启进程
- 区域汇总 --- OSPF协议不支持接口汇总;只能在ABR上将a区域拓扑计算所得路由,共享给B区域时进行汇总;
[r2]ospf 1
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]abr-summary 1.1.0.0 255.252.0.0
R2为一台连接区域0和其他区域的ABR;以上操作为,R2将通过区域0学习到的拓扑计算所得的路由,传递给其他区域时进行汇总,汇总网段1.1.0.0/22
- 被动接口(沉默接口)--仅接收不发送路由协议信息;用于连接用户终端的接口,不得用于连接邻居路由器的接口,否则无法建立邻居关系;
[r2]ospf 1
[r2-ospf-1]silent-interface GigabitEthernet 0/0/0
- 认证 -- 接口认证 在直连邻居或邻接的接口上配置,保障更新的安全
[r1-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cipher 123456
模式、编号、密码要求邻居间一致
- 加快收敛
邻居间计时器 10s hello time 40s dead time
邻居间,修改本端的hello time,本端的dead time自动4倍关系匹配;但ospf中邻居间的hello time和dead time必须完全一致,否则无法建立邻居关系;
[r1]interface GigabitEthernet 0/0/0
[r1-GigabitEthernet0/0/0]ospf timer hello 5
- 缺省路由 --- 边界路由器上配置后,将自动向内网下放一条缺省路由,之后内网设备将自动生成缺省路由指向边界
[r4]ospf 1
[r4-ospf-1]default-route-advertise always
ACL访问控制列表:
作用:
- 访问控制 --- 在路由器流量进或出的接口上,匹配流量产生动作---允许、拒绝
- 定义感兴趣流量 --- 抓取流量,之后给到其他的策略,让其他策略进行工作;
匹配规则:
至上而下逐一匹配,上条匹配按上条执行,不再查看下条;cisco系默认末尾隐含拒绝所有;华为系末尾隐含允许所有;
分类:
- 标准 --- 仅关注数据包中的源ip地址
- 扩展 --- 关注数据包中的源、目标ip地址,目标端口号或协议号
配置命令:
【1】标准 --- 由于标准ACL仅关注数据包中的源ip地址;故调用时必须尽量的靠近目标;
避免对其他流量访问的误删;
编号2000-2999 为标准列表编号,一个编号为一张表;
[r2]acl 2000
[r2-acl-basic-2000]rule deny source 192.168.1.3 0.0.0.0
[r2-acl-basic-2000]rule deny source 192.168.0.0 0.0.255.255
[r2-acl-basic-2000]rule deny source any
动作 源ip地址
源ip地址需要使用通配符来匹配范围;通配符和反掩码的区别,在于通配符可以0与1穿插书写;
ACL定义完成后,必须在接口上调用方可执行;调用时一定注意方向;一个接口的一个方向上只能调用一张表;
[r2]interface GigabitEthernet 0/0/1
[r2-GigabitEthernet0/0/1]traffic-filter ?
inbound Apply ACL to the inbound direction of the interface
outbound Apply ACL to the outbound direction of the interface
[r2-GigabitEthernet0/0/1]traffic-filter outbound acl 2001
【2】扩展列表配置 --由于扩展ACL 源、目ip地址均关注,故调用时尽量靠近源;尽早处理流量;
[r1]acl 3000 扩展列表编号 3000-3999
[r1-acl-adv-3000]rule deny ip source 192.168.1.3 0.0.0.0 destination 192.168.3.2 0.0.0.0
源ip地址 目标ip地址
源、目ip地址位置,使用通配符0标记一个主机,或使用反1标记段,或使用any均可
【3】使用扩展列表,同时关注目标端口号;
目标端口号:服务端使用注明端口来确定具体的服务;
ICMPV4 -- internet控制管理协议 -- ping
Telnet -- 远程登录 明文(不加密) 基于tcp,目标端口23;
条件:1、被登录设备与登录设备网络可达
2、被登录设备进行了telnet服务配置
[r1]aaa
[r1-aaa]local-user panxi privilege level 15 password cipher 123456
[r1-aaa]local-user panxi service-type telnet
创建名为panxi的账号,权限最大,密码123456;该账号仅用于telnet 远程登录
[r1]user-interface vty 0 4
[r1-ui-vty0-4]authentication-mode aaa 在vty线上开启认证
[r1]acl 3001
[r1-acl-adv-3001]rule deny tcp source 192.168.1.10 0 destination 192.168.1.1 0 destination-port eq 23
拒绝192.168.1.10 对192.168.1.1 访问时,传输层协议为tcp,且目标端口号为23;
[r1-acl-adv-3002]rule deny icmp source 192.168.1.10 0 destination 192.168.1.1 0
仅拒绝192.168.1.10 对192.168.1.1的ICMP访问
IPV4地址中,存在私有与公有IP地址的区别:
公有:具有全球唯一性,可以在互联网通讯,需要付费使用
私有:具有本地唯一性,不能在互联网通讯,无需付费使用
私有ip地址:
10.0.0.0/8 172.16.0.0/16-172.31.0.0/16 192.168.0.0/24-192.168.255.0/24
NAT网络地址转换: 边界路由器上--连接外网的公有ip地址所在接口配置
边界路由器上,对进、出的流量进入源或目标ip地址的修改;
一对一 一对多 对多对 端口映射
一对多:多个私有ip地址对应同一个公有ip地址 PAT端口地址转换
先使用ACL定义可以被转换的私有ip地址范围
[r2]acl 2000
[r2-acl-basic-2000]rule permit source 192.168.0.0 0.0.255.255
[r2]int g0/0/2 公网所在接口;acl2000列表中关注的私有ip地址,通过该接口转出时,其源ip地址修改为该接口公有ip
[r2-GigabitEthernet0/0/2]nat outbound 2000
一对一的配置:
连接公网的接口配置
[r2-GigabitEthernet0/0/2]nat static global 12.1.1.3 inside 192.168.1.10
公有 私有
端口映射:
[r2-GigabitEthernet0/0/2]nat server protocol tcp global current-interface 80 inside 192.168.1.10 80
Warning:The port 80 is well-known port. If you continue it may cause function failure.
Are you sure to continue?[Y/N]:y
外部访问该接口ip-12.1.1.1且目标端口号为80时,将被修改为192.168.1.10目标端口80;
[r2-GigabitEthernet0/0/2]nat server protocol tcp global current-interface 8888 inside 192.168.1.20 80
外部访问该物理接口ip-12.1.1.1 且目标端口为8888时,将被修改为192.168.1.20 目标端口80;
多对多配置:
[r1]nat address-group 1 12.1.1.3 12.1.1.10 先定义公有ip地址范围
[r1]acl 2000 再定义私有ip地址的范围
[r1-acl-basic-2000]rule permit source 172.16.0.0 0.0.255.255
最后在连接公网的接口上配置多对多
[r1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1
私有 公有
[r1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat 一对一(多个一对一)