01
PART
开篇点题
网络第一篇文章:IT全栈-网络01-其实网络“很简单”,通过对比现实世界中案例“发快递”和网络世界中案例“文件传输”,为读者建立了基本的“网络体系”。
网络第二篇文章:IT全栈-网络02-网络基础知识,在网络第一篇文章的基础上进一步介绍网络基础知识(网络分层模型、MAC和IP基础知识、ARP|MAC|路由表知识、HUB|交换机|路由器工作原理、常见网络设备和传输介质、数据传输中解封包过程),让读者具备“初级网络工程师”相关知识。
本文是网络第三篇文章,重点介绍网络进阶知识,让读者具备“中级网络工程师”相关知识。
02
PART
网络二|三层重点理解
A
现实世界中二|三层现象
情况介绍
- 员工A1-A3和员工AGW属于营业部A;员工AGW是营业部A中的领导
- 员工B1-B3和员工BGW属于营业部B;员工BGW是营业部B中的领导
- 营业部AB分别是两个不同的部门
本部门沟通(二层)
- 假设现在有部门内部员工沟通需求(即营业部A中员工A1和A2沟通)
- A1直接去找A2;A2知道A1是本部门兄弟,热情接待积极响应,还留下来一起吃饭探讨人生
跨部门沟通(三层)
- 假设现在有跨部门沟通需求(即营业部A和营业部B相互沟通合作)
- 营业部A的员工A1直接去找营业部B的员工B1,会发生什么情况呢?(a.B1脾气不好,不搭理你 b.B1脾气好,告诉A1“这事我决定不了,建议你去找我领导BGW问问”;如果A1真的直接去找BGW大概率是不搭理你,BGW会想:你谁啊?你领导AGW干嘛去了?)
- 跨部门沟通正确姿势:A1和他领导AGW沟通好,由AGW转给BGW;BGW收到后再和B1沟通后再答复
B
网络世界二|三层现象
情况介绍
- 营业部A中:3主机+1交换机+1路由器
- 营业部B中:3主机+1交换机+1路由器
- 营业部AB分别是两个不同的部门
本部门沟通(二层)
- A1找A2沟通,本部门兄弟直接走二层
- A1如何确定A2是本部门兄弟呢?(a.A1的IP:192.168.1.1 掩码:255.255.255.0,通过IP和掩码能判断出本部门兄弟的IP范围为:192.168.1.0-255,掐头去尾后为192.168.1.1-254,192.168.1.0为本部门网络地址,192.168.1.255为本部门广播地址 b.A1的IP:192.168.1.2,在本部门兄弟IP范围192.168.1.1-254内 c.A1确认A2是本部门兄弟)
跨部门沟通(三层)
- A1找B1沟通,跨部门需要走三层
- A1如何确定B1是外部门兄弟呢?(a.A1的IP:192.168.1.1 掩码:255.255.255.0,通过IP和掩码能判断出本部门兄弟的IP范围为:192.168.1.0-255,掐头去尾后为192.168.1.1-254,192.168.1.0为本部门网络地址,192.168.1.255为本部门广播地址 b.B1的IP:192.168.2.1,不在本部门兄弟IP范围192.168.1.1-254内 c.A1确认B1是外部门兄弟)
- A1找B2b168.com要走三层,那怎么走呢?(a.A1找本部门领导(路由器A接口地址192.168.1.254;A!怎么知道谁是他领导呢?通过网关来确认,网关就是他领导) b.路由A查路由表发现找B1要先找路由器B(路由器B接口地址192.168.3.2) c.路由器B收到请求后查询路由表通过192.168.2.254接口再找到B1)
备注:以上知识在网络第二篇文章:IT全栈-网络01-网络基础知识中有详细介绍,鉴于此知识非常重要故本文再回顾一遍。
C
现实|网络世界二|三层总结
- 二层:任意两个人或者主机可以直接相互沟通且无需领导介入,则属于二层沟通
- 三层:任意两个人或者主机有相互沟通需求且必须领导介入,则属于三层沟通
- 现实世界中领导容易理解,网络世界中主机的领导即网关。
- 广播域:同一个部门属于一个广播域,领导隔离广播域(同一个部门内部畅所欲言,跨部门你不能对人家说三道四;现实实现世界中领导会叮嘱你别乱说,网络世界中路由器直接把你畅所欲言的广播包丢弃)
03
PART
网络二层进阶
A
网络场景1---最基础的网络
上图网络特点:
- 设备单点(路由器A故障影响互联网访问;交换机A故障影响内网访问)
- 链路单点(a.交换机A与路由器A之间链路故障影响互联网访问 b.主机与交换机A之间链路故障影响主机网络接入)
- 接入主机数量有限(取决于交换机A网口,一般一个交换机端口为16-48口)
- 一个广播域(192.168.1.0/24)
小问题:如何解决交换机A端口不足问题?
B
网络场景2---引入交换机级联
上图网络特点:
- 解决了交换机A端口不足问题(交换机ABC级联扩展端口数量)
- 设备单点(路由器A故障影响外网访问;交换机ABC故障影响内网访问)
- 链路单点(a.交换机A与路由器A之间链路故障影响互联网访问 b.主机与交换机ABC之间链路故障影响主机网络接入 c.交换机ABC之间链路故障影响主机网络接入)
- 链路带宽不足(交换机AB|AC|BC之间流量大于他们之间的带宽时,会引发链路拥塞)
- 一个广播域(192.168.1.0/24)
小问题:
- 如何解决交换机ABC之间链路单点问题?
- 如何解决交换机链路带宽不足问题?
C
网络场景3---引入xstp
上图网络特点:
- 解决了交换机ABC之间链路单点问题(3种选择:a.下策:平时红色线缆两头都断开,交换机ABC之间链路任一点故障后两头都人工接入 b.中策:平时红色线缆一头接入一头断开,交换机ABC之间链路任一点故障后断开端人工接入 c.上策:平时红色线缆两头都接入,交换机ABC之间链路任一点故障后交换机自动恢复---此时ABC交换机形成了二层环路,需要引入xstp破环)
- 设备单点(路由器A故障影响外网访问;交换机ABC故障影响内网访问)
- 链路单点(a.交换机A与路由器A之间链路故障影响互联网访问 b.主机与交换机ABC之间链路故障影响主机网络接入)
- 链路带宽不足(交换机AB|AC|BC之间流量大于他们之间的带宽时,会引发链路拥塞)
- 一个广播域(192.168.1.0/24)
网络二层不能有环路,如果有环路必须要想办法破环:
- 二层环路危害:形成广播风暴,交换机CPU被打爆
- 二层破环思路:物理设计无环和运行破环协议xstp
D
网络场景4---引入链路捆绑
上图网络特点:
- 解决了交换机ABC之间链路带宽不足问题(ABC交换机之间连接多条物理线路,多条物理线路逻辑上捆绑为一条;即解决了链路单点也解决了链路带宽不足)
- 设备单点(路由器A故障影响外网访问;交换机ABC故障影响内网访问)
- 链路单点(a.交换机A与路由器A之间链路故障影响互联网访问)
- 一个广播域(192.168.1.0/24)
小问题:如何解决交换机单点和主机链路问题?
E
网络场景5---引入交换机虚拟化(堆叠|M-LAG)
上图网络特点:
- 解决了交换机端口不足|交换机ABC之间链路带宽不足问题|链路单点问题|交换机设备单点问题,并从设计上避免环路
- 设备单点(路由器A故障影响外网访问)
- 引入的技术包括:交换机堆叠|M-LAG|端口聚合|Linux-bond|xstp(尽管无环,但是xstp仍建议开启)
- 一个广播域(192.168.1.0/24)
小问题:主机接入越来越多,网络会出现什么问题呢?
F
网络场景6---引入交换机虚拟化(VLAN)
在网络场景5中,接入主机越来越多会遇到什么问题呢?
- 广播风暴问题(把网络掩码由24变为16也可以增大主机接入数量,但是会导致广播域太大引入广播风暴问题)
- 主机接入数量正确的解法是:新增新网段(每一个网段都是独立的一个广播域,可以限制广播域太大导致广播风暴问题)
小问题:如果没有VLAN技术,那怎么办呢?
如果没有VLAN技术,那么新增网段只能采用上图连接拓扑。上图特点如下
- 物理交换机与网段死绑定(主机移动位置受限),不灵活
- 路由器接口消耗多(每个网段都需要1-2个路由器接口;如果网段很多,则路由器成本高昂)
上图为大量主机采用VLAN技术的解决方案
- 物理交换机与网段灵活绑定(主机移动位置不受限)
- 路由器接口消耗少(多个网段可以共用1-2个路由器接口)
G
网络设备之:管理平面|控制平面|数据平面
可以把交换机路由器理解为交通的十字路口(底层基础设施)
- 管理平面:负责设备的管理和监控,即网管相关功能(关注交换机路由器整体和端口状态及健康情况)
- 控制平面:制定各种转发规则并下发给数据平面(规则可以理解为交规)
- 数据平面:依据控制平面下发的规则进行数据转发(可以把数据平面理解为十字路口执勤的交警;交规不是交警制定的,交警只是机械的执行交规而已)
上图为冯诺依曼计算机体系结构;任何电子设备,其底层本质上都无法脱离上图本质(智能手机|智能电视|网络设备等)。这个是IT人最基本的认知观念和要透彻理解的基础。前面文章讲解过此知识点,由于太重要,本文再次强调一下。
H
交换机级联
交换机级联说明:
- 用途:解决单个交换机端口不足(如上图,单个交换机48口;如果接入主机大于48级联可以解决)
- 级联场景下,交换机的管理平面|控制平面|数据平面各自相互独立(可以简单理解为:多个物理交换机逻辑上合并为一个大交换机,但是交换机之间的地位是平等的)
I
交换机端口聚合
交换机端口聚合说明:
- 用途:解决设备之间带宽不足(如上图,假设单链路带宽1G,如果主机与交换机|交换机与交换机之间流量大于1G会导致流量拥塞)
- 端口聚合场景下,交换机的管理平面|控制平面|数据平面各自相互独立(交换机之间的地位是平等的)
- 端口聚合分为两种情况:手工聚合|LACP
- 手工聚合情况下,交换机两侧端口参数完全由手工配置和保证正确,聚合后带宽为链路数量*单链路带宽
- LACP聚合由交换机两边相互协商端口参数,LACP链路模式为M:N(M条活动链路+N条备份链路),带宽为M*单链路带宽;活动链路故障后,备份链路自动顶上
- 负载分担策略为:源目MAC|IP等
备注:上图中主机侧要配置网口绑定(linux下网卡绑定用bond,windows也有自己的网口绑定方法}
J
交换机堆叠|M-LAG
交换机堆叠|M-LAG说明:
- 用途:交换机堆叠|M-LAG解决交换机单点故障(如上图,任意一个交换机故障不会影响主机接入;级联和链路聚合无法解决交换机单点故障问题)
- 交换机级联|堆叠|M-LAG对比,见下图
数据中心后续M-LAG逐步替换堆叠,原因如下
- 交换机堆叠|M-LAG都可以解决交换机单点故障
- 交换机堆叠缺点:升级困难(如交换机OS升级,操作过程复杂且容易出问题)+故障处理复杂(虽然厂家宣称主交换机故障后会切换到从交换机,有时候会有各种问题)
- M-LAG完美的规避了交换机堆叠的确定:升级容易+故障处理简单(两个交换机还是各自独立)
- 交换机堆叠有点像集权制(多个交换机合并为一个逻辑交换机,所有交换机听从主交换机指挥,主交换机故障后会偶发切换不成功);M-LAG有点像协商机制(多个交换机地位平等,相互协商保证数据平面一致)
K
交换机xstp
物理链路成环的优缺点分析:
- 上图交换机ABC物理链路连接成环
- 优点:链路冗余(假设上图中无红色链路,那么交换机AB之间链路故障,则交换机A失去连接;交换机BC之间链路故障,则交换机C失去连接;现在交换机ABC物理链路成环,则支持交换机AB|交换机BC|交换机AC任意一条链路故障,交换机ABC仍可以访问网络)
- 缺点:广播风暴导致交换机CPU被打爆和网络瘫痪(如交换机A7发送一个ARP广播包导致从交换机A红色和蓝色链路分别发出,然后又从交换机A红色和蓝色链路分别收到然后继续发出;一个数据包最终变成百上千万数据包)
- 既想利用物理链路成环的优点又要规避缺点,怎么办呢?此时xstp协议就是来解决这个问题的。
如上图,交换机ABC物理链路成环且有2个VLAN(分别为VLAN1和VLAN2)
- 运行stp|rstp情况下,VLAN1和VLAN2只能走AB和AC物理链路;BC链路浪费(此处假设BC链路阻塞)
- 运行mstp情况下,VLAN1走AB和AC物理链路,VLAN2走AB和BC链路
- mstp相比stp|rstp没有浪费BC链路
- 其实mstp相比stp|rstp也很简单(stp|rstp所有VLAN不区分,全部走固定链路;mstp把VLAN进行了区分,不同的VLAN集合走不同的链路)
可以思考一下:mstp情况下,5个LVAN怎么走?
L
交换机VLAN
假设一个公司有:财务|技术|销售三个部门,无VLAN情况下
- 财务|技术|销售三个部门在同一个二层广播域(存在广播域太大问题)
- 接入主机数量不能太多
假设一个公司有:财务|技术|销售三个部门,有VLAN情况下
- 财务|技术|销售三个部门各在一个二层广播域(相当于把一个大的广播域隔离为三个小的广播域)
- 可以接入很多的主机数量
VLAN补充小知识:
- VLAN相当于把一个物理交换机逻辑上划分为多个交换机
- 交换机端口模式分为:access和trunk接口
备注:其实除了access和trunk之外,还有hybird口(华为特有)。
M
二|三层交换机
二|三层交换机的区别:
- 交换机通过MAC表进行数据帧转发(工作在二层,称为二层交换机)
- 路由器通过路由表进行数据包转发(工作在三层)
- 当把三层路由器的一部分功能(动态路由协议|路由转发等)下放到二层交换机,则此时称为三层交换机
备注:可以简单理解为:三层交换机=二层交换机功能+路由器功能,此描述只是便于大家理解,严格意义上来说并不严谨。
04
PART
网络三层进阶
A
三层要解决的问题
现实世界中,从A地到B地怎么办?
- 查导航(需要提供出发地+目的地)
- 路上开车遇到岔路口要看路标
那网络世界中,从A地到B地怎么办呢?其实和现实世界非常类似
现实世界和网络世界对比
- 现实世界中的"导航地图"等同于网络世界中"网络拓扑图"
- 现实世界中的"路标"等同于网络世界中的"路由表"
那网络世界中,从A地到B地怎么办呢?其实和现实世界非常类似
B
"地图"和"路标"怎么形成的呢?
现实世界中的地图和路标是由“专业测绘公司“提供底层基础数据绘制形成的;那么网络世界中的地图和路标是如何形成的呢?
链路状态路由协议的两个特点
- 生成地图(网络拓扑图)
- 生成路标信息(路由表)
备注:RIP和BGP不生成网络拓扑信息,只生成和传递路标信息(RIP为第一代网络路由协议,目前已基本上淘汰)
C
AS概念
AS概念:
- AS中文翻译过来是“自治系统”
- AS是一个路由器|三层交换机集合
- 同一AS由同一机构或者组织管理
- 同一AS执行相同的路由管理策略
- 不同AS之间互相不信任,但是还要相互有条件的联通
备注:可以把AS100理解为:美国,AS200理解为中国
D
AS内部路由协议:ISIS&OSPF
AS内部两大主流路由协议ISIS和OSPF概述
- 生成网络拓扑图
- 生成路标信息(路由表)
E
AS之间路由协议:BGP
AS内部运行路由协议统称为IGP(ISIS|OSPF),AS之间运行路由协议统称为EGP(BGP)
- AS内部路由协议之间传递:系统拓扑+路由表
- AS之间路由协议之间传递:路由表
备注:其实这个可以理解,同一AS内部相互信任(当然要能看到网络拓扑),不同AS之间相互不信任(只告诉你的信息够用即可,太多细节没必要告诉你)
F
路由协议分类
OSI和TCP/IP是两个不同的组织。网络发展初期,百家争鸣百花齐放,每家组织都想主导和把控网络的发展。OSI提出了OSI七层模型,TCP/IP提出了TCP/IP四层模型。最终的发展是TCP/IP胜出,但是OSI的七层模型也非常有借鉴和学习意义。后期大家学习ISIS路由协议,对此理解会更加深入。
05
PART
二|三层设备简介
A
二层常见设备:交换机
B
三层常见设备:路由器
特别说明:交换机端口类型比较单一(绝大部分都是以太网),路由器接口类型比较丰富(以太网|串口等)
C
设备分类:盒式|框式
上图为:盒式交换机
上图为:框式交换机
盒式|框式对比:
- 盒式:扩展困难+硬件单点(如引擎),通常用于接入
- 框式:扩展便捷+硬件冗余(如引擎),通常用于汇聚或核心
06
PART
数据中心网络进化史
A
第一代:xstp+vrrp
B
第二代:堆叠(istack|css)
C
第三代:m-lag|vpc和vxlan
给读者留三个问题:
- 数据中心三代网络之间的差异和优缺点?
- 数据中心南北|东西向流量相关知识?
- 额外扩展一点:虚拟机迁移限制有哪些?
以上问题,后续系列文章解答