
Network
文章平均质量分 90
yeasy
Make the world better!
展开
-
大规模系统的可控思路
任何系统增大到一定规模,面临的根本问题之一便是可控性(controlability)。规模较小时,可控性通常并非瓶颈,此时可通过操作系统节点进行直接管理。但随着规模逐渐增大,可控性复杂度将成为系统能否扩展的关键制约。要处理可控性复杂度,有两个基本思路:解耦控制和自发控制。解耦控制最简单的思路是将控制平面从系统的数据平面和管理平面剥离。解耦出的控制平面,可以构造统一接口进行操作,复用控制逻辑。以赶羊群为例,如果直接控制每只羊的前进将非常困难,但是给每只羊都拴上绳子(解耦出控制平面),直接原创 2021-12-15 08:15:00 · 784 阅读 · 0 评论 -
网络流量监测技术概述
监控指标延迟(Latency)丢包率(Packet Loss)吞吐量(Throughput)链路使用率(Link Utilization)可用性(Availability)测量手段主动 vs 被动单点 vs 多点网络层 vs 应用层镜像 vs 采样主机端 vs 交换节点流量抓取协议镜像/SPAN把被监控端口的流量复制一份,发送到特定目的端口。某些硬件原创 2015-01-25 15:20:03 · 9154 阅读 · 0 评论 -
IPsec 和 NAT 的冲突问题详解
背景IPsec 协议可以用来在 IP 层提供校验和加密等安全特性。基于 IPsec 的 VPN 已经成为 site-site 模式下高可靠连通方案的首选。NAT 最初是为了解决地址不足的问题,它将 NAT 网关后的实际地址隐藏起来,对外呈现一个外部地址,通常包括基于地址的映射(设备负责将内外地址进行对应和替换)和基于端口(通常外部为同一地址,根据到达端口的不同替换为内部不同的地址和原创 2015-03-25 17:04:42 · 14708 阅读 · 1 评论 -
OpenStack中的Security Group实现
【注】Security Group在openstack中起到很重要的作用,它直接保护租户的vm。但不恰当的配置也容易导致各种莫名其妙的问题。理解Security Group的实现,有助于理解OpenStack的设计理念和解决各种网络问题。最新版pdf也可以从这里下载。----------------------------------------------------------原创 2014-03-20 13:39:32 · 7939 阅读 · 5 评论 -
Docker 使用 OpenvSwitch 网桥
Docker 默认使用的是 Linux 自带的网桥实现,实际上,OpenvSwitch 项目作为一个成熟的虚拟交换机实现,具备更丰富的功能。个人认为,将来 Docker 必然会选择 OpenvSwitch 作为其默认网桥实现。有兴趣的同学欢迎通过如下的步骤来尝鲜。环境在 Ubuntu 14.04 系统中进行测试。操作流程也适用于 RedHat/CentOS 系列系统,但少数命令和配原创 2015-01-09 15:23:07 · 21403 阅读 · 1 评论 -
Libvirt/KVM 中的网络模式
NAT默认方式。虚拟机获取一个私有 IP(例如 192.168.122.0/24 网段的),并通过本地主机的 NAT 访问外网。创建一个本地网桥 virbr0,包括两个端口:virbr0-nic 为网桥内部端口,vnet0 为虚拟机网关端口(192.168.122.1)。brctl showbridge name bridge id STP enabled inte原创 2015-02-13 15:34:50 · 15658 阅读 · 1 评论 -
网络虚拟化中的 offload 技术:LSO/LRO、GSO/GRO、TSO/UFO、VXLAN
先来看三个缩写到底具体代表什么:Large Segment Offload (LSO),TCP segmentation offload (TSO), 以及Generic Segmentation Offload (GSO)。首先来看LSO。我们知道计算机网络上传输的数据基本单位是离散的网包,既然是网包,就有大小限制,这个限制就是MTU(Maximum Transmission Uni原创 2014-02-14 16:42:11 · 18103 阅读 · 1 评论 -
从 Kubernetes 谈容器网络
Pod首先,Kubernetes 中的基本单元是 Pod,而非 Docker 容器。Pod 是一组共享了下面资源的容器: 进程命名空间 网络命名空间 IPC 命名空间 UTS 命名空间简单的讲,一个 Pod 是一个小型的“虚拟机”,里面运行若干个不同的进程,每个进程实际上就是一个容器。Kubernetes 要干的事情是要把这些 Pod 给互相连接起来,是不是联想到了原创 2015-06-10 16:54:06 · 8729 阅读 · 2 评论 -
网络大数据分析 -- 使用 ElasticSearch + LogStash + Kibana 来可视化网络流量
简介ELK 套装包括 ElasticSearch、LogStash 和 Kibana。 其中,ElasticSearch 是一个数据搜索引擎(基于 Apache Lucene)+分布式 NoSQL 数据库;LogStash 是一个消息采集转换器,类似 Syslog,可以接收包括日志消息在内的多种数据格式,然后进行格式转换,发送给后端继续处理;Kibana 是一个 Web 前段,带有强大原创 2015-04-28 10:35:03 · 17266 阅读 · 1 评论 -
Linux 中的网桥技术
这里集中讨论的是 Linux 上的网桥功能实现,软件实现主要包括 Linux Bridge,MacVLan/MacVTap 和 OpenvSwitch。硬件实现主要是 SR-IOV。基本上,越硬件实现功能越简单,性能越好。Linux Bridge最经典的网桥实现,基本上参考一个传统硬件交换机的功能来实现,自学习转发表,支持 STP。物理网卡可以绑定到 LB 上,通过混杂模式原创 2016-02-24 10:18:49 · 2876 阅读 · 0 评论 -
网关高可用协议:HSRP、VRRP、GLBP、CASP
网络中网关设备负责完成大部分的高级处理,因此网关设备的高可用十分重要。常见的高可用协议包括 HSRP、VRRP、GLBP、CASP。基本原理都是在一个组里面选出一个主节点,拿到虚的网关 IP 和 虚 MAC。这些协议也可以提供 IP 节点的高可用保护。HSRP全称是 Hot Standby Routing Protocol,Cisco 家 98 年公开的专利协议,在 RFC 228原创 2016-03-28 16:43:25 · 4911 阅读 · 0 评论 -
网络科学的魅力
半个世纪前,互联网早期的设计者们在讨论网络设计原则时,一定无法想象到几十年后,与信息科技毫无关系的物流行业,也会演化出了惊人的相似结构。互联网体系架构的基础原则包括三个:报文格式:报文格式十分灵活可扩展,支持多种类型报文,支持不同长度报文,报文上标记点对点地址。转发设备无需额外修改。路由协议:根据优化目标的不同,可以有多种路由协议,它们彼此可交互,构成全球网络的路由表。存储转发:无连接...原创 2019-01-19 15:37:02 · 983 阅读 · 0 评论 -
网络技术正当革命时
计算机网络自诞生之后,面向的应用场景主要包括局域网、广域网两大类。在各种环境中,通过层级结构将局域网连接起来,形成一个网络的网络,即所谓的互联网。无论什么网络,唯一的事实标准就是 TCP/IP 协议栈以及围绕这个协议栈的各种管理和应用技术,即便后来推出的 IPv6、CCN、SDN 等网络技术,都没有完全超出这个范畴。所以,看起来基于 TCP/IP 的修修补补在相当长的一段时间里满足了各种场景下对于原创 2015-01-13 23:11:47 · 1396 阅读 · 0 评论 -
OpenStack VM DHCP problem with Quantum? Guideline and real case
Today, OpenStack draws many eyeballs in deploying cloud-computing environments.When using OpenStack in practical scenarios, there will be numbers of detailed evils. One notorious bug is that boote原创 2013-11-14 10:22:10 · 1685 阅读 · 0 评论 -
深入理解OpenStack中的网络实现
剖析OpenStack中网络实现的一些细节,对于理解本后的设计理念和目标很有帮助。完成0.1版本,最新版可以从github下载。原创 2014-02-27 10:49:56 · 2572 阅读 · 0 评论 -
easyOVS 发布 v0.2
如果你是云计算专家,是否觉得在OpenStack中查询网络信息,特别端口信息需要通过若干命令的配合,十分不便。如果你是SDN专家,是否觉得诸如OpenvSwitch这样的工具虽然功能强大,但操作起来着实麻烦。如果你想尝试一些智能一些的工具,可以看看https://github.com/yeasy/easyOVS。easyOVS几大特性:1、支持对输入命令的智能识别和纠错。原创 2014-04-03 11:00:19 · 2297 阅读 · 0 评论 -
OpenStack中网络模块(Neutron)的代码分析
目前已经完成了一大半,到了0.4原创 2014-05-19 16:08:37 · 2463 阅读 · 0 评论 -
网络天然是大数据的,大数据天然是网络的
The network is naturally bigdataing, while bigdata is inherently networking.--yeasy@blog用英文表达似乎更加准确一些。计算机科学发展了半个世纪,而网络的出现极大推动了计算机相关技术的爆发式进步。计算机或网络领域所研究的典型问题,往往都是追求高性能、精确、准确,而大数据技术则往往提供一原创 2014-05-22 11:00:12 · 1243 阅读 · 0 评论 -
OpenStack 中的neutron-server启动过程
neutron-server是neutron的核心组件之一,负责直接接收外部请求,然后调用后端相应plugin进行处理。其核心启动过程代码主要在neutron.server包中。__init__.py文件中包括一个main()函数,是WSGI服务器开始的模块,并且通过调用serve_wsgi来创建一个NeutronApiService的实例。然后通过eventlet的greenpool原创 2014-07-22 11:11:47 · 3032 阅读 · 0 评论 -
一张图理解AMQP
原创 2014-07-09 14:30:43 · 1438 阅读 · 0 评论 -
OpenStack Neutron中的dhcp agent实现
更多具体内容请参考https://github.com/yeasy/tech_writing/blob/master/OpenStack/OpenStack%20Neutron%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%90.pdf更多具体内容请参考https://github.com/yeasy/tech_writing/blob/master/OpenStack原创 2014-07-10 19:52:51 · 3487 阅读 · 0 评论 -
修改OpenStack中的vlan tag
在OpenStack中,用户网络的隔离可以用vlan、gre或者最新的vxlan来支持。原创 2014-08-22 11:10:47 · 4398 阅读 · 0 评论 -
虚拟机网络接入技术
随着云计算技术的发展,跟传统的服务器上直接跑应用相比,服务器上运行虚机,虚机里面跑应用的场景已经越来越普遍。这种情况下,网络往往成为最关键的性能瓶颈,特别是不同虚机之间的高速网络流量如何进行有效的交换。要解决大流量交换的问题,基本上有两套简单思路,一个是软交换,即放在服务器里面,让软件来实现,典型的代表有各种虚拟交换的解决方案,例如OpenvSwitch。另外一个是流量对服务器原创 2014-09-10 10:35:34 · 2350 阅读 · 0 评论 -
网卡虚拟化技术:VMDq和SR-IOV
在上文(http://blog.youkuaiyun.com/yeasy/article/details/39178187)中提到了虚机网络流量的接入交换问题。本文来谈谈虚机跟服务器物理网卡的交互问题。通常情况下,一个服务器上跑几十个虚机,对计算和网络的需求是很惊人的。前者促生了当下的多核技术发展,后者则不能简单的用多网卡来实现。试想,每个虚机如果都需要10G的交换能力,服务器要配置几十块物理网卡原创 2014-09-10 10:45:32 · 15296 阅读 · 0 评论 -
数据中心核心网络技术一览
主机内二层转发(即服务器内虚机间转发)基于本地软件交换机交换VMWare 方案,通过服务器上软件交换机(如 Linux 网桥、OpenvSwitch)来实现。主要问题是对服务器性能有消耗。802.1Qbh BPE(Bridging Port Extend)已终止。Cisco 主导,数据层面为 PE(Port Extender)。802.1BRCisc原创 2015-01-21 13:18:58 · 5188 阅读 · 0 评论 -
理解网络元素
这里谈的网络,是以互联网为代表的计算机网络。现实的网络要远比人们想象的复杂,无论是从拓扑结构还是底层设备上。理想的网络模型,交换设备(各层的交换机、路由器、网关)连通主机,而在实际中,还存在大量的其他类型的盒子,比如负载均衡、防火墙、IDS,等等等等。在云计算数据中心网络中,各类带有复杂功能的盒子更多,更杂乱。那么,如何理清各种盒子(网络元素)对于正确理解网络本身就十分重要。原创 2013-11-14 10:17:23 · 2506 阅读 · 0 评论