Flannel

https://github.com/coreos/flannel UDP Backend 启动流程 Vxlan Backend 启动流程 Read more

CNI (Container Network Interface)

https://github.com/containernetworking/cni CNI plugin 大部分参数通过环境变量设置 Plugin 执行流程 Mock Plugin 为了更好的理解cni plugin的基础,这里创建一个mock plugin来测试 mock.conf 这里只设置必要的属性,cni会通过stdin获取配置 mock.go mock plugin只是为了测试不分配任何资源,所以这里简单的打印下输出 mock_test.go 测试同样使用 Ginkgo (BDD-stylec测试框架) 内置 Plugin Bridge Read more

RAN(无线接入网)发展趋势

随着虚拟化、开源、智能、云原生等的不断发展与成熟,每一个依靠技术服务的公司、组织都能从中看到巨大的潜在空间以市场。此篇文章我们主要了解下运营商里RAN的发展趋势,我们先了解下RAN(Radio Access Network)在整个运营商网络里的位置。如图:T-1,红框所示 图:T-1(来源:https://www.cisco.com/c/zh_cn/solutions/service-provider/5g_index.html) 无线接入方式 通常我们在说的3G/4G/5G是指无线蜂窝网络接入技术,RAN的一种实现方式,其他的接入方式包括WI-FI、卫星等 RAN 组织发展 Open vRAN Open vRAN 是2018年2月由Cisco启动的开放虚拟化无线接入(vRAN)计划,希望加速开放虚拟运行(vRAN)解决方案的可行性和采用,并确保它们扩展到更广泛的网络体系结构中,ASOCS和Radisys的加入带来了并各自带来独特的资产。 ASOCS的虚拟基站技术将传统的基站转化为以软件为中心的解决方案,提供所有基站层和功能的完全虚拟化。ASOCS正在与运营商合作,以支持向5G迁移的全网络虚拟化,同时实现xRAN、TIP和ONAP等开放接口。 Radisys公司的MobilityEngine™5G软件套件是业界第一个上市的5G软件套件,专注于下一代节点(gNB)、5G用户设备(UE)和5G核心网络(CN),提供3GPP版本15兼容的gNB。该解决方案支持虚拟运行部署,从而提高了CPU效率,并为NFV基础设施提供了10倍的整体性能改进。它支持在网络边缘出现的5G服务,并支持将网络切片作为MEC架构的一部分,以支持新的用例、提高操作效率和降低成本。 TIP RAN Telecom Infra Project是2016年由Facebook、Intel、诺基亚、德国电信和SK电信联合成立,其使命是分解软件和硬件,其成员包括500多家互联网公司、电信运营商、厂商和系统集成商。TIP 的无线接入网络(RAN)计划目的是将简化的、灵活的、高效的RAN技术应用于商业部署。 TIP致力于利用基于软件的设计和开放架构的优点提高基础设施的效率和灵活性。目前RAN下有6个项目组(OpenRAN,OpenRAN 5G NR,OpenCellular,CrowdCell,vRAN FrontHaul 和 Wi-Fi),每个项目小组专注于一个特定的用例,以改进RAN设备,使其更加灵活和敏捷,共同的目标是提高部署、操作和维护RAN基础设施的整体效率。 ORAN ORAN(OPEN RAN)是由中国移动、美国AT&T、德国电信、日本NTT DOCOMO以及法国Orange五家于2018年2月在西班牙巴塞罗那举行的2018GTI国际产业峰会上宣布成立,以开放,智能为核心原则构建基于虚拟网络、白盒硬件和标准化接口基础上的RAN系统,目前成员已经扩展至20多家大的电信企业包括中国电信,中国联通、韩国的SK和KT、Verizon、Sprint、Telefonica等 O-RAN规范工作被划分为9个技术工作组,所有工作组都在技术指导委员会(TSC)的监督下针对特定领域展开工作,并且对所有成员和贡献者开放,9个工作组分别为处理以下特定问题: 针对每一个工作组具体的工作细节,可以在ORAN的官网o-ran.org查到详细的说明。 O-RAN 架构图(来源:o-ran.org) 趋势预测 原文:科技云瞰 Read more

Bidirectional Forwarding Detection (BFD)

介绍 网络上的介绍文章已经比较详细所以此文只做整理和简要说明: BFD不仅可以检测直连链路(“单跳”)的故障,还可以检测非直连链路(“多跳”)的故障,还可以与多种功能进行联动,如与接口状态、静态路由、RIP路由、OSPF路由、IS-IS路由、BGP路由、VRRP等,在检测到故障后,上送到对应的上层应用模块进行快速处理。如与接口状态联动时会把相应的接口状态由Up转为Down;与路由联动可以使这些路由模块进行重新拓扑计算,实现快速网络收敛;与VRRP联动时可以快速切换到备用线路上。 http://www.h3c.com/cn/d_200804/603261_30003_0.htm (BFD简介,h3c BFD 白皮书) https://wenku.baidu.com/view/95fd7bf9f90f76c661371a37.html (华为BFD白皮书) https://www.youtube.com/watch?v=iv-vubxkhTI (Control 与 Echo package 简介) https://blog.csdn.net/kaoa000/article/details/52586778 (更详细一点的分析) Tips BFD为上层应用(OSPF、MPLS、BGP 等)提供快速检测支持 BFD peer之间协商echo的发送频率(指定mills等) BFD Echo报文采用UDP封装,目的端口号为3785,目的IP地址为发送接口的地址,源IP地址由配置产生(配置的源IP地址要避免产生ICMP重定向 BFD控制报文采用UDP封装,目的端口号为3784,源端口号在49152到65535的范围内 标准参考 https://tools.ietf.org/html/rfc5880 (Bidirectional Forwarding Detection (BFD)) https://tools.ietf.org/html/rfc5881 (Bidirectional Forwarding Detection (BFD) for IPv4 and IPv6... Read more

BGP(Border Gateway Protocol )

介绍 AS AS号码划分为公有AS和私有AS,公有AS的范围是1-64511,私有AS范围是64512-65534;公有AS只能用于 互联网,并且全球唯一,不可重复,而私有AS可以在得不到合法AS的企业网络使用,可以重复。很显然,因为 私有AS可以被多个企业网络重复使用,所以这些私有AS不允许传入互联网,ISP在企业用户边缘,需要过滤掉 带有私有AS号码的路由条目。 BGP路由器之间的数据传输使用了TCP协议,端口号为179,并且指的是会话的目标端口号为179,而会话源端口 号是随机的。 一个配置了BGP进程的路由器只能称为BGP-Speaker,当和其它运行了BGP的路由器形成邻居之后,就被称为BGP -Peer,一个路由器运行BGP后,并不会主动去发现和寻找其它BGP邻居,BGP的邻居必须手工指定 一台BGP路由器运行在一个单一的AS内,在和其它BGP路由器建立邻居时,如果对方路由器和自己属于相同AS, 则邻居关系为internal BGP (iBGP),如果属于不同AS,则邻居关系为external BGP (eBGP)。BGP要求eBGP邻 居必须直连,而iBGP邻居可以任意距离,但这些都是可以改变的。 在BGP形成邻居后,最开始会交换所有路由信息,但是之后都采用增量更新,也就是只有在路由有变化时才更 新,并且只更新有变化的路由。 BGP建立邻居后,会通过相互发送类似hello包的数据来维持邻居关系,这个数据包称为Keepalive,默认每60秒 发送一次,hold timer为180秒,即到达180秒没有收到邻居的Keepalive,便认为邻居丢失,则断开与邻居的 连接。 BGP之间建立邻居,需要经历如下几个过程: Idle—BGP进程被启动或被重置,这个状态是等待开始,比如等于指定一个BGP peer,当收到TCP连接请求后, 便初始化另外一个事件,当路由器或peer重置,都会回到idle状态。 Connect—检测到有peer要尝试建立TCP连接。 Active—尝试和对方peer建立TCP连接,如有故障,则回到idle状态 OpenSent— TCP连接已经建立,BGP发送了一个OPEN消息给对方peer,然后切换到OpenSent状态,如果失败, 则切换到Active状态。 OpenReceive— 收到对方peer的OPEN消息,并等待keepalive消息,如果收到keepalive,则转到Established 状态,如果收到notification,则回到idle状态,比如错误或配置改变,都会发送notification而回到idle状 态。 Established— 从对端peer收到了keepalive,并开始交换数据,收到keepalive后,hold timer都会被重置, 如果收到notification,就回到idle状态。... Read more

RIP(Routing Information Protocol)

介绍 RIP(Routing information Protocol)是应用较早、使用较普遍的内部网关协议(Interior Gateway Protocol,简称IGP),适用于小型同类网络,是典型的距离向量(distance-vector)协议。文档见RFC1058、RFC1723。 RIP通过广播UDP报文来交换路由信息,每30秒发送一次路由信息更新。RIP提供跳跃计数(hop count)作为尺度来衡量路由距离,跳跃计数是一个包到达目标所必须经过的路由器的数目。如果到相同目标有二个不等速或不同带宽的路由器,但跳跃计数相同,则RIP认为两个路由是等距离的。RIP最多支持的跳数为15,即在源和目的网间所要经过的最多路由器的数目为15,跳数16表示不可达。 有关命令 任务 命令 指定使用RIP协议 router rip 指定RIP版本 version {1|2}1 指定与该路由器相连的网络 network network 💡 1.Cisco的RIP版本2支持验证、密钥管理、路由汇总、无类域间路由(CIDR)和变长子网掩码(VLSMs) 💡 2.开启RIP协议需要在每一台路由器上开启,同事声明自己所有的网络(network x.x.x.x) 实例 允许主机通过172.16.2.2访问拓扑内网络(因为R4上声明了172网络,所以R2和R3会学习到相关路由) 在主机上添加到10.0.0.0的路由即可:(不需要是删除一面影响vpn等使用) 💡 window:route add 10.0.0.0 mask 255.0.0.0 172.16.2.2 Read more

OSPF(Open Shortest Path First)

介绍 OSPF(Open Shortest Path First)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。与RIP相对,OSPF是链路状态路有协议,而RIP是距离向量路由协议。 链路是路由器接口的另一种说法,因此OSPF也称为接口状态路由协议。OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由表。 文档见RFC2178。 有关命令 全局设置 任务 命令 指定使用OSPF协议 router ospf process-id1 指定与该路由器相连的网络 network address wildcard-mask area area-id2 指定与该路由器相邻的节点地址 neighbor ip-address 实例 标准参考 https://zh.wikipedia.org/wiki/开放式最短路径优先 (维基) https://tools.ietf.org/html/rfc2328 (OSPF Version 2) Read more