企业级网络基础架构

 

Underlay和Overlay

Underlay——底层网络

  • 路由技术:不同网络之间通信
  • 交换技术:网络内部、局域网之间通信

Overlay——叠加层网络

  • 隧道技术:各种封装协议;跨广域网站点之间通信、用户远程接入;通信安全,业务迁移问题
  • 软件定义网络SDN:整合各种组网技术;采用集中控制,转控分离思想

Overlay和Underlay网络的区别?Overlay在大几层?你说Overlay网络重要,那为什么需要Underlay网络?

https://www.cnblogs.com/fengdejiyixx/p/15567609.html

Overlay 网络是建立在另一个计算机网络之上的虚拟网络,所以它不能独立出现,Overlay 底层依赖的网络就是 Underlay 网络,这两个概念也经常成对出现。Underlay网络就是传统IT基础设施网络,由交换机和路由器等设备组成,借助以太网协议、路由协议和VLAN协议等驱动,它还是Overlay网络的底层网络,为Overlay网络提供数据通信服务Underlay 网络是专门用来承载用户 IP 流量的基础架构层,它与 Overlay 网络之间的关系有点类似物理机和虚拟机。Underlay 网络和物理机都是真正存在的实体,它们分别对应着真实存在的网络设备和计算设备,而 Overlay 网络和虚拟机都是依托在下层实体使用软件虚拟出来的层级。Underlay 网络性能优于 Overlay 网络**。

VXLAN协议是目前最流行的Overlay网络隧道协议之一,它也是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,采用L2 over L4(MAC-in-UDP)的报文封装模式,将二层报文用三层协议进行封装,可实现二层网络在三层范围内进行扩展,将“二层域”突破规模限制形成“大二层域”。

  • 虚拟化环境(例如 OpenStack)中的网络限制较多,比如不允许机器之间直接通过二层协议访问,必须要带有 IP 地址这种三层的才能去做转发,限制某一个机器只能使用某些 IP 等。在这种被做了强限制的底层网络中,只能去选择 Overlay 的插件,常见的有 Flannel-vxlan, Calico-ipip, Weave 等等;
  • 物理机环境中底层网络的限制较少,比如说我们在同一个交换机下面直接做一个二层的通信。对于这种集群环境,我们可以选择 Underlay 或者路由模式的插件。Underlay 意味着我们可以直接在一个物理机上插多个网卡或者是在一些网卡上做硬件虚拟化;路由模式就是依赖于 Linux 的路由协议做一个打通。这样就避免了像 vxlan 的封包方式导致的性能降低。这种环境下我们可选的插件包括 clico-bgp, flannel-hostgw, sriov 等等;
  • 公有云环境也是虚拟化,因此底层限制也会较多。但每个公有云都会考虑适配容器,提升容器的性能,因此每家公有云可能都提供了一些 API 去配置一些额外的网卡或者路由这种能力。在公有云上,我们要尽量选择公有云厂商提供的 CNI 插件以达到兼容性和性能上的最优。比如 Aliyun 就提供了一个高性能的 Terway 插件。 Overlay和Underlay网络的区别?Overlay在大几层?你说Overlay网络重要,那为什么需要Underlay网络?

路由

静态路由协议

动态路由协议

  • BGP邻居:BGP基于TCP179端口。建立邻居后才能传递路由;基于as确定iBGP/eBGP。
  • BGP路由表:BGP自己本身有个路由表,用来存放接收到的所有路由及其属性,只有可优化的路由才能被装入路由表/被传递。
  • BGP防环机制:IBGP防环机制引入水平分割。收到的iBGP路由不转给其他iBGP对等体;eBGP使用as-path防环。
  • 路由反射器:解决水平分割问题的方式之一,除了非客户和非客户其他ibgp对等体的路由都会被传递;fullmesh需要n(n-1)/2个peering
  • BGP传递路由:1.IBGP之间传递路由,下一跳不变;2.联邦的IBGP/LBGP互相传递路由,下一跳不变;3.EBGP之间传递路由,下一跳改变;4.从ibgp邻居收到的路由不会传递给ibgp邻居(水平分割)
  • 选路原则:13条选路原则,满足前8条可以负载,但还是会选出最优路由

交换

  • 交换机:连接局域网(LAN)中多个终端并使其能相互通信的设备
  • vlan:虚拟LAN,vlan可以分割广播域
  • IEEE802.1Q:在以太帧插入字段标识vlan,被用来区分二层流量
  • STP:为冗余拓扑计算无环路径
  • 链路聚合(LACP/PAGP):将多条链路逻辑上当一条链路处理,带宽翻倍,默认按源mac负载
  • 堆叠(VSS/VSU/STACK):将多台交换机组合并从逻辑上当作一台运行;转发端口翻倍,控制面逻辑上只有一个;升级更新麻烦

隧道技术

隧道:通过封装来抽象underlay网络,达到逻辑上简化网络结构的目的。

  • GRE:通用路由封装; 优点:1.支持多协议。2.支持组播支持多点隧道mGRE。3.可部署Qos。 缺点:1.无加密机制。2.没有协商,探活机制,排错难。3.MTU没有问题
  • IPSEC:IP安全。 优点:1.安全,有协商机制。 缺点:1.不支持组播/只支持IP。2.无法配置QoS/路由协议。
  • IPIP:最简单的IP网络承载IP报文
  • VxLAN/NVREE:解决大二层问题,解决vlan id不够的问题;vni可标识1600多万lan ,NVGRE对负载均衡支持不好
  • MPLS/MPLS VPN:运营商专线技术,MPLS用于高速转发;MPLSvpn采用vrf,MP-BGP等技术用标签区分VPN
  • CAPWAP:无线接入点的控制和配置协议,UDP5246/5247分别封装管理AP的控制报文和无线数据流量,主要用于无线AC-AP组网。

企业级网络基础架构

网络设计关心什么

传统需求

  • 连通性
  • 高可用
  • 安全性(物理安全,应用安全)
  • 服务质量
  • 可维护性

特殊业务需求

  • 低延迟(证券)
  • 高可用(网关冗余,硬负载)
  • 高带宽(大数据)
  • 安全(金融)

局域网

三级网络架构

  • 核心层:高速转发。
  • 汇聚层:汇聚接入交换机,为核心分担一部分流量。
  • 接入层:终端接入。 优点:稳定可靠,适用场景多。 缺点:故障域大(STP);带宽浪费(可优化);不适合快速变化的大型网络。

二级网络架构LEAF/SPINE

  • 脊SPINE:高速转发
  • 叶LEAF:终端接入
  • 优点:拓展性好,按需扩容 带宽利用率高 缺点:布线多
  • BGP三层全互联是leaf&spine网络的一种实现
  • Leaf Spine只适合用于DC

广域网

广域网传输技术

  • 裸光纤WDM (物理层专线) 特点:带宽无限制;缺点:非常贵
  • SDH/MSTP二层专线TDM 特点:用户自己维护网络
  • MPLS三层专线 特点:运营商灵活维护路由
  • 公网传输 特点:成本低,开通快,不稳定

  • IPsecVPN 兴趣包是静态的,多分支互通需要手动配置
  • mGRE(动态多点vpn) HUB:负责收集并发放隧道下一跳消息; 为spoke提供NHRP解析 SPOKE:分支机构,向HUB注册NHRP下 一跳消息
  • mgrevpn特点 支持组播、动态路由协议 分支机构之间可以之间建立隧道 通信 可以用ipsec加密

排错

现代网络模型参考OSI设计的,排错参考OSI模型分层

image

发送icmp回显请求如果成功说明三层可达 ping不通的三层原因一般是路由不可达或流量过滤

ping

  • icmp重定向
  • icmp目标主机不可达
  • icmp请求回显超时

tracert/tracepath/traceroute

  • 发送icmp回显请求,ttl分别为1,2,3…收到TTL超时消息,就可以知道经过的设备,如果路径中显示*说明设备没有回程路由或者有安全设置不返回icmp信息

telnet/tcping/curl

  • 尝试访问一个端口,可以检测端口开放状态。端口不通的4层原因一般是服务没起或防火墙/安全组过滤。

抓包工具TCPDUMP/WIRESHARK

网络稳定性若是保证

  • 选用可靠的设备,规范的综合布线,打造稳定的基础网络;
  • 对网络进行约束,上网行为管理;避免病毒,p2p下载。
  • 有效的网络监控,对网络的主干线路进行速率监控。

应用系统中常见的网络故障有哪些,如何去分析和解决这些问题

  • 病毒问题:遭遇DOOs对网络形成波动。或者是大规模的丢包。断网,或者是网络地址被欺骗
  • 线路回路:会形成网络频繁的中断,甚至完全中断
  • 设备老化:高温。粉尘,不稳定电压等因素都会形成设备的不稳定。不少时候重启设备就恢复正常。
  • 地址冲突:网络配置错误会直接形成重要设备的网络中断。

web网站访问缓慢排查思路

  • 服务器状态:负载状况,CPU,网络,内存,日志是否作切割。若是单台服务器性能受限,能够调整为分布式架构,LB数 据库分库分表索引等。
  • DB响应慢:检查慢查询日志,show processlist查看当前DB状态,看哪些请求停留较多;代码中记录SQL执行时间;分析SQL性能,考虑是否优化索引,或者分库分表,增长缓存;检查磁盘IO;查看binlog的写入速率。
  • 前端问题:减小HTTP请求;页面设计不佳。