网络基础知识

1. 以太网和交换机基础

 1.1 以太网介绍
  分布型信息包交换网络
  1.1.1 冲突域
  一个局域网内多台主机同时发送信号导致冲突的范围
  1.1.2 广播域
  多台主机组合成的一个区域网络
  1.1.3 CSMA/CD
  避免数据信号冲突的一种协议
  1.1.4 半双工/全双工
  单车道/双车道的道理
  1.1.5 自协商
  通信双方协商通信的协议,以双方优先级低的网口作为数据通信方式。
 1.2 以太网桢结构
  1.2.1 MAC地址
  物理地址,每块网卡具有唯一的地址,长度为48位,前2位为广播和本地地址,中间22位为厂商的注册地址,最后24位为厂商分配的网卡地址
  1.2.2 以太网桢格式
  有两种数据桢封装协议:IEEE802.3 和 Ethernet II,IEEE802.3类型:
  1. 前导码(7字节):每个分组的开头提供5Mhz的时钟信号,让接收设备能够跟踪到来的比特流;
  2. 桢起始位置分隔符(1字节):值为10101011,检测为数据开头;
  3. 目的地址(6字节,6*8=48位MAC地址)
  4. 源地址
  5. 长度(2字节):桢有多长,标注在这里
  6. 802.2报头和数据(46 - 1500字节)
  7. FCS桢校验序列(4字节):检查完整性
 1.3 交换网络基础
  1.3.1 以太网交换机
  1.3.2 交换机3种转发行为
  1. 泛洪:广播
  2. 转发:单播
  3. 过滤:有两种,一种是单播,即根据MAC地址表转发,一种是转发的端口是收到的端口,这种就丢弃
  1.3.3 交换机转发原理
  通过通讯录转发,这个通信录叫MAC地址表,每条记录会被记录一定时间,超时会被删掉,收到数据包后查看MAC地址表转发到哪里,判断是广播、单播还是丢弃;
  
2. STP生成树协议

 这个名字寓意网络像树一样生长,不会有环路
 2.1 作用及工作原理
  2.1.2 结构:根桥(Root Bridge)、根端口(Port)、指定端口(Designated Port)、替代端口(Alternate Port)、路径开销(Path Cost)
  2.1.3 目的:达到裁剪冗余环路的目的,同时实现链路备份和路径优化;
  2.1.4 信息交换:交换机之间通信为信息交互单元,称为BPDU(桥协议数据单元),是一种二层报文,目的MAC是多播地址:01-8-C2-00-00-00
  2.1.5 STP工作过程:选举根桥(桥ID最小为根桥)、从根桥连到表的交换机为指定端口,选择连到根桥最大的带宽选为根端口,循环这个过程到网路边缘,指定端口和根端口进入转发状态,其它端口为堵塞状态,STP BPDU包会定时从各个网桥的指定端口发出,维护链路的状态;
  2.1.6 5中端口状态:禁用、侦听、学习、转发、阻塞
  2.1.7 缺陷:收敛速度,
  2.1.8 华为设备上配置命令:
  默认开启,禁止命令为:stp disabled
  查看状态:dis stp
  修改STP模式:stp mode mstp/rstp/stp
  修改桥优先级:stp priority 0-61440
  修改端口优先级:inter g0/0/1 然后配置:stp port priority 0-240
  修改端口开销......其它,baidu上都有教程
  
3. VLAN虚拟局域网

 3.1 作用:分组处理;
 3.2 原理:实际是对MAC地址表的划分,每一个vlan对应一张MAC地址表,通过将物理端口划分到不同VLAN中,实现广播域的隔离;
 3.3 桢格式(802.1q):在桢中插入一个标签Tag(4个字节),每个字节:
  1.TPID:2字节,标志这是802.1q标签的桢,固定值是0x8100;
  2.PRI:3bit,表示桢优先级,值范围0-7,值越大优先级越高;
  3.CFI:1bit,表示MAC地址是否经典式,0为以太网桢,1表示FDDI桢和令牌网桢;
  4.VLAN ID:12bit,取值范围0-4095,0、4095是保留的;
 3.4端口类型:Access、Trunk、Hybird
  Access:只能属于一个vlan,用于同一个vlan
  Trunk:用在交换机之间,交换不同vlan的桢
  Hybird:混合Access和Trunk,tagged一般用了vlan交换机之间的级联,untagged则用于连接PC
 3.5 划分:基于端口【一般情况下】、MAC地址、子网、网络层协议
  
4. IP基础

 4.1 IP报文
  1. 版本(4bit):IPV4或IPV6;
  2. 报头长度(4bit):整个ip报文报头长度,值最小为5,最大为15,报头长度计算为值*32bit;
  3. 优先级和服务类型(8bit):指出如何处理整个报文;
  4. 总长度:(16bit):这个报文分组的总长度,包括数据部分;
  5. 标志位(3位):不要分组;
  6. 分段偏移(13bit):报文太大,需要分片,这里用于接收后的重组;
  7. 存活时间(8bit):后发展成位跳数;
  8. 协议(8bit):用的是什么ip协议
  9. 报头校验和(16bit)
  10. 源IP(32bit)
  11. 目的IP(32bit)
  12. 选项
  13. 数据
 4.2 IP地址
  1. 32位,4个8位组组成,例如 192.168.1.1
  2. IP地址结构:网络号 + 节点号
  3. 私有地址:
   A类:10.0.0.0 - 10.255.255.255
   B类:172.16.0.0 - 172.31.255.255
   C类:192.168.0.0 - 192.168.255.255
  4. 子网掩码:32位组成,主要用来区分网络号,IP地址与子网掩码做与运算得到网络号
  5. 子网划分:将已有的大段的IP地址划分成多个网络号相同的子网
  
6.ARP

 6.1 工作原理:只知道对端IP地址,需要询问对端MAC地址信息,通过这个协议获取对端的MAC地址
 6.2 ARP报文:ARP请求和ARP应答
    6.3 ARP工作原理:
     1.在发送数据前,设备会先查找ARP缓存表,如果缓存表中存在对方设备的MAC地址,则直接采用该MAC地址来封装帧,
  然后将帧发送出去。如果缓存表中不存在相应信息,则通过ARP来获取。
  2.主机1通过发送ARP Request报文来获取主机2的MAC地址。
  由于不知道目的MAC地址,因此ARP Request报文内的目的端MAC地址为0。
  3.ARP Request是广播数据帧,因此交换机收到后,会对该帧执行泛洪操作。
  4.所有的主机接收到该ARP Request报文后,都会检查它的目的端IP地址字段与自身的IP地址是否匹配。
  主机2发现IP地址匹配,则会将ARP报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中。
  5.主机2通过发送ARP Reply报文来响应主机1的请求,此时主机2已知主机1的MAC地址,因此ARP Reply是单播数据帧。
  6.交换机收到该单播数据帧后,会对该帧执行转发操作。

7.TCP与UDP

 7.1 TCP报文格式:
  1. 源端口(16bit)
  2. 目的端口(16bit)
  3. 序列号(32bit):发送端发送多少数据的数
  4. 确认序列号(32bit):接收端确认收到多少数据
  5. 报头长度(4bit):同ip报头那个字段
  6. TCP标志位:
  1. URG:紧急指针,只有这里被设置,紧急指针字段才会填充数据;
  2. ACK:确认标志位,用于确认接收到报文;
  3. PSH:被设置时,TCP报文不进入缓冲区,需要提交给应用层尽快处理;
  4. RST:重建标志位,需要重新建立TCP会话;
  5. SYN:建立连接标志位,需要建立TCP会话;
  6. FIN:断开TCP会话;
  7. 窗口尺寸(16bit):最大为65535,TCP处理者根据自身处理能力调整窗口大小;
  8. 检验和(16位)
  9. 紧急指针:用于紧急处理TCP的控制数据;
  10. 选项
  11. 数据
 7.2 TCP会话建立和终止:
  三次握手和四次握手(SEQ为序列号),例如主机A与B
  1. 三次握手(建立):1.A->B 【SEQ=0,CTL=SYN】,2.B->A 【SEQ=0,ACK=1(SEQ+1),CTL=SYN,ACK】,3.A->B 【SEQ=1,ACK=1,CTL=ACK】
  2. 四次握手(终止):1.B->A 【SEQ=101,ACK=301,CTL=FIN】,2.A->B 【SEQ=301,ACK=102,CTL=ACK】,3.B->A 【SEQ=301,ACK=102,CTL=FIN】,4.A->B 【SEQ=102,ACK=302,CTL=ACK】
 7.3 TCP的确认和重传:
  例如主机A与B
  1. 确认:1.A->B:SEQ=1369,400字节;2.B->A:ACK SEQ=1769;3.A->B:SEQ=1769,500字节;4.B->A:ACK SEQ=2269;5.A->B:SEQ=2269 800字节;6.ACK SEQ=3069;7.A->B:SEQ=3069
  2. 重传:等待超时,重传发送的数据
 7.5 UDP
  7.5.1 特性:
  1. 属于无连接协议
  2. 提供有限的错误检查
  3. 尽力而为的传输方式
  4. 不具备数据恢复功能
  7.5.2 UDP报文格式:
  1. 源端口
  2. 目的端口
  3. 长度
  4. 校验和
  5. 数据

8.IP路由基础

  路由有两个基本功能:路由决策和报文转发;
 8.1 路由协议概述:
  路由表的路由通常可以分为以下三类:
  1. 通过链路层协议发现的路由,也称直连路由,不需要配置;
  2. 手工配置的静态路由;
  3. 动态路由协议发现的路由,RIP、EIGRP、OSPF、IS-IS、BGP
  华为设备查询路由协议:display ip routing-table
 8.2 路由选路原则
  1. 最长匹配原则:当路由器收到转发报文,会匹配路由表,目的IP地址与表中掩码字段做与运算,匹配最长的网络前缀所在的端口转发;
  2. 路由优先级:每种协议的优先级都不一样,最高是直连路由,OSPF为10、IS-IS为15,静态路由60,RIP为100,在华为设备中;
  3. 路由开销:路由到目的地的代价,会受延迟、带宽、调数、最大传输单元等影响,路由开销最小为最优路由,放入路由表中;
  
9. RIP【距离矢量路由协议】

 9.1 目的:自动地更新网络,尽快地收敛网络地变化,动态维护一个路由表,完成路由决策的功能;
 9.2 使用Bellman-Ford算法,通过UDP的520端口完成IP层面更新和维护路由表;
 9.3 两种类型报文:请求报文和响应报文;
 9.4 RIPv2报文格式:
  1. 命令:requset还是response
  2. 版本号:v1还是v2
  3. 地址族标识
  4 路由标记:
  5. IP地址:路由的前缀
  6. 子网掩码
  7. 下一条:网络转发的地址
  8. 度量值:跳数计数
 9.5 防环机制:水平分割、毒性反转、触发更新
  1. 水平分割:路由器从某个接口学到的路由,不会从该接口再发回给邻居路由器
  2. 毒性反转:路由器从某接口学到路由后,如果从收到路由的原接收接口发回给邻居路由器,将该路由的跳数设置为16即不可达
  3. 触发更新:一条路由的度量值发生变化,回触发发送更新消息,不用等待周期更新计时器超时,这样加快网络的收敛
  
10.OSPF

 10.1 OSPF基本原理
  1. 自治系统(AS):在ospf网络中,只有在同一AS中的路由器相互交换链路状态信息,所有的ospf路由都维护一个相同的链路状态数据库LSDB
  2. 链路状态(Link-State):包括IP地址和子网掩码、接口类型、链路的花费以及链路上的邻居
  3. 邻居关系(Neighbor):ospf路由器启动后,会通过ospf接口向外发送hello报文发现邻居,收到hello报文的ospf路由器会检查报文所定义的参数,如果双方一致就会形成邻居关系
  4. 邻接关系(Adjacency):指两台路由器之间允许直接交换路由更新数据,共享链路状态信息,并不是所有邻居都可以邻接关系,只有成功交换DD和交换LSA之后才行
  5. 区域(Area):在一个AS可以划分不同区域,区域用与实现层次结构设计
   一组网段的集合,划分区域缩小LSDB规模,减少网络流量,每个区域都有自己的LSDB,Area 0 成为骨干区域,负责在非骨干区域间发布由区域边界路由器汇总的路由信息,避免区域路由间环路
  6.OSPF有三张重要的表项,OSPF邻居表、LSDB表和OSPF路由表;    1.内部路由器(IR)
   2.区域边界路由器(ABR)
   3.骨干路由器(BR)
   4.AS边界路由器(ASBR)
  6. 花费(Cost):每条链路都有一个cost,根据链路带宽计算
 10.2 OSPF报文类型
  1. hello报文【建立邻居表】
  2. DD(Database Description,数据库描述)报文【建立LSDB】
  3. LSR(LinkState Request,链路状态请求)报文
  4. LSU(LinkState Update,链路状态更新)报文
  5. LSAck(LinkState Ackownledgment,链路状态应答)报文
  LSA(LinkState Advertisement):链路状态通告,交换并保存整个网络的链路状态信息,构建整个网络的拓扑结构,并生成链路状态数据库LSDB,然后OSPF路由器根据自身的LSDB,利用spf算法路由算法独立计算出达到任意目的地的路由信息
 10.3 DR与BDR
  1. 在一个AS系统中,都有一个指定路由器和一个备份指定路由器,通过hello协议选举产生,用来代表本网络的网络路由宣告,只允许DR、BDR与其他OSPF路由器建立邻接关系,其它连接他们的OSPF路由器为DRother,这些不允许建立邻接关系
 10.4 多区域OSFP
  1. 规定非骨干区域必须与骨干区域直接相连
     2. 减少LSA在单个区域内泛洪的量
     3. 减少OSPF路由表,减小路由表的规模
    11.总结:步骤:1.建立邻居关系、2.通告链路状态信息、3.计算路径、4.形成路由表

11. Vlan间路由

  1. 多臂路由实现VLAN间通信【不常用,太浪费路由器接口,一个接口一个vlan网关】;
  2. 单臂路由实现VLAN间通信【单个路由器接口做子接口,子接口使用802.1q绑定vlan Tag】;
   缺点:会造成单点故障
  3. 三层交换机实现VLAN间通信;
   配置vlan接口地址,实现在三层交换上创建网关
  
12. 链路聚合

 12.1:指多条具有相同一台链路捆绑在一起形成逻辑链路,华为称为Eth-Trunk
 12.2:好处:冗余链路、增加带宽、分担负载、节约成本
 12.3:条件:成员加入时,默认时hybird接口,不能配置任何业务和静态MAC地址
 12.4 链路聚合模式:
  1. 手工负载分担:默认情况下,eth-trunk使用这种方式。过程:创建eth-trunk,将接口加进来,配置允许通过的vlan:port trunk allow-pass vlan xx xx xx
  2. LACP:Link Aggregation Control Protocol 链路聚合控制协议,主要解决手动链路聚合无法检测的链路层故障、链路错连等故障;
  1. 工作原理:配置eth-trunk,mode 选择LACP模式,通过链路聚合控制协议数据单元LACPDU进行信息交互,两端会协商一个主动端,根据系统优先级,然后协商生成活动链路和备用链路,根据接口优先级
  2.LACP模式分类:二层链路聚合和三层链路聚合,三层模式一般用在汇聚层至核心层使用
     12.4 堆叠、集群
  1.堆叠(iStack)::多台支持堆叠特性的交换机通过堆叠线缆连接在一起,从逻辑上变成一台交换设备,作为一个整体参与数据转发
  2.集群(Cluster Switch System,CSS ):将两台支持集群特性的交换机设备组合在一起,从逻辑上组合成一台交换设备

  


13. NAT

 13.1 基本工作原理:主要用与私网地址访问公网地址时,进行的地址转化,公网地址回应时,根据NAT映射表,将数据包转发给私网地址
 13.2 NAT的实现:
  1. 静态一对一方式【应用场景少】
  2. NAT服务器:地址映射的意思,服务器将服务发布到公网,将IP和端口映射到公网IP,外网通过访问这个公网ip,nat映射到私网服务器上
  3. 动态NAT:公网地址池来做NAT
  4. Easy NAT:单个公网ip利用访问控制列表来控制哪些内部主机可以进行地址转换访问外网
  
14.广域网:

 14.1. PPPoE:PPP over Ethernet,以太网的ppp协议
  1. 为什么用ppp这个协议,主要是利用PPP协议的计费和认证
  2. 报文格式:IP数据被PPP报文封装,PPPoE封装了PPP报文,PPPoE封装在以太网桢里面;PPPoE有Ver域、Type域、Code域、Session ID域、Length域 + PPP报文
 14.2 企业连接广域网
  1. PPPoE光纤拨号,运营商会安装光猫,可以配置光猫是路由模式还是桥接模式,桥接要自己的防火墙、路由器、上网行为管理拨号
  2. 专线,直接给固定的IP地址,配置网关、掩码、dns即可
  
15.网络安全

 15.1 ACL 访问控制列表
  1. 工作原理:对包进行分类,主要用在流量控制,主要原理有两块:1.对报文进行匹配,2.对匹配的报文进行动作处理,主要动作有Permit和Deny;
  2. 工作流程:报文匹配规则id,id从上到下,5、10、15....如果匹配不到,默认是deny的
  3. 分类:基本和高级、基于接口、二层、自定义、基于MPLS的ACL
   3.1 基本ACL通过IP包中的源IP地址、分片标记和时间段信息对IPv4报文进行分类,从而实现过滤网络流量。通常用acl-number 2000-2999来创建,然后rule permit/deny xxx(网络地址)
   3.2 高级比基本高级在可以匹配端口、协议,通常用acl-number 3000-3999
 15.2 AAA 认证、授权、计费
  1. 最常用使用Radius协议或HWTACACS协议来实现AAA
  2. 一般应用:一般控制访问网络都是在防火墙开启认证授权,这种可以与域控联动,通过弹出网页输入域账号登录上网