抽象网络设备的原理及使用 网络虚拟化是 Cloud 中的一个重要部分。作为基础知识,本文详细讲述 Linux 抽象出来的各种网络设备的原理、用法、数据流向。您通过此文,能够知道如何使用 Linux 的基础网络设备进行配置以达到特定的目的,分析出 Linux 可能的网络故障原因。 Linux 抽象网络设备简介 和磁盘设备类似,Linux 用户想要使用网络功能,不能通过直接操作硬件完成,而需要直接或间接的操作一个 Linux 为我们抽象出来的设备,既通用的 Linux 网络设备来完成。一个常见的情况是,系统里装
在上一篇文章中我们概括了k8s集群网络大致包含哪些方面,包括服务在网络中的负载均衡方式(iptable和ipvs),以及underlay和overlay的组网。在这里我们介绍宿主内的容器网络,当然我们还是以docker环境为例,介绍docker宿主环境中的容器网络。
使用Linux上的网络设备模拟真实网络 随着云计算技术的发展,如何以类似物理网络的方式分割虚拟网络成为热点,物理网络也引入了更多支持虚拟化的网络技术,使得问题更加复杂。本文将阐述在 Linux 上如何模拟出传统网络及支持虚拟化技术的网络 ,并介绍其原理。 虚拟化环境中的网络问题 在提供 IaaS 服务的云计算环境中,每个用户都能得到一个虚拟的计算机,而这些虚拟机器以密集的方式运行在后台服务器集群中。虚拟机的一个特点是提供给用户类似于物理机器的体验,而现实世界中的物理机器能通过各种网络拓扑结构组网。如何在
使用Linux上的网络设备模拟真实网络 随着云计算技术的发展,如何以类似物理网络的方式分割虚拟网络成为热点,物理网络也引入了更多支持虚拟化的网络技术,使得问题更加复杂。本文将阐述在 Linux 上如何模拟出传统网络及支持虚拟化技术的网络 ,并介绍其原理。 虚拟化环境中的网络问题 在提供 IaaS 服务的云计算环境中,每个用户都能得到一个虚拟的计算机,而这些虚拟机器以密集的方式运行在后台服务器集群中。虚拟机的一个特点是提供给用户类似于物理机器的体验,而现实世界中的物理机器能通过各种网络拓扑结构组网。如何在虚拟
在 Macvlan 出现之前,我们只能为一块以太网卡添加多个 IP 地址,却不能添加多个 MAC 地址,因为 MAC 地址正是通过其全球唯一性来标识一块以太网卡的,即便你使用了创建 ethx:y 这样的方式,你会发现所有这些“网卡”的 MAC 地址和 ethx 都是一样的,本质上,它们还是一块网卡,这将限制你做很多二层的操作。有了 Macvlan 技术,你可以这么做了。
在上一篇文章中我们介绍了linux network namespace,linux bridge device,linux veth device,以及docker宿主环境中的容器网络。在这里我们主要结合实际例子,来看一下宿主环境中的容器网络。
Linux 中的 veth 是一对儿能互相连接、互相通信的虚拟网卡。通过使用它,我们可以让 Docker 容器和母机通信,或者是在两个 Docker 容器中进行交流。参见《轻松理解 Docker 网络虚拟化基础之 veth 设备!》。
前言: 对于作者这种没有在通信设备方面工作经验的人来说,理解网桥还是挺困难的。 二层之上的数据处理,协议分层,都是相对容易一些(尽管TCP协议复杂的一塌糊涂),毕竟在linux的协议栈代码中,逻辑层次都很清晰。 然后网桥却不同,它是一个二层逻辑。同时,它又不是一个具体的设备(具体的设备,有连接的物理的port口,插入网线就能通数据)。 在虚拟化场景下,虚拟机需要发送、接受数据,和外部交互,就需要有这样的设备。所以有必要深入了解一下网桥的具体的工作原理。 分析: 1,concept 网上的很多说法,网桥类
命令brctl主要运用于 Linux 网桥配置,Linux网关模式下将有线LAN和无线LAN共享网段实现局域网内互联;
在计算机网络中,TUN与TAP是操作系统内核中的虚拟网络设备。不同于普通靠硬件网路板卡实现的设备,这些虚拟的网络设备全部用软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能。
今天我们接着上节课介绍的 Linux 网络知识,继续来学习它们在虚拟化网络方面的应用,从而为后续学习容器编排系统、理解各个容器是如何通过虚拟化网络来协同工作打好基础。
前言 网络虚拟化相对计算、存储虚拟化来说是比较抽象的,以我们在学校书本上学的那点网络知识来理解网络虚拟化可能是不够的。 在我们的印象中,网络就是由各种网络设备(如交换机、路由器)相连组成的一个网状结构,世界上的任何两个人都可以通过网络建立起连接。 带着这样一种思路去理解网络虚拟化可能会感觉云里雾里——这样一个庞大的网络如何实现虚拟化? 其实,网络虚拟化更多关注的是数据中心网络、主机网络这样比较「细粒度」的网络,所谓细粒度,是相对来说的,是深入到某一台物理主机之上的网络结构来谈的。 如果把传统的网络看作「宏观
本文档描述了在 Linux bridge 上 iptables 和 ebtables filter 表如何进行交互操作的。
当你在个人电脑或服务器上运行 Linux 时,有时需要识别该系统中的硬件。lspci 命令用于显示连接到 PCI 总线的所有设备,从而满足上述需求。该命令由 pciutils 包提供,可用于各种基于 Linux 和 BSD 的操作系统。
Evth-pair就是一对的虚拟设备接口,他们都是成对出现的,一段连着协议,一段彼此相连.正因为这个特性,evth-pair 充当一个桥梁,连接各种虚拟网络设备。
Docker Overlay 网络是一种用于跨主机通信的虚拟网络。它使用 VXLAN 技术将多个 Docker 主机上的容器连接到同一个网络中,使它们可以在不同的主机之间进行通信。在本文中,我们将深入探讨 Docker Overlay 网络的实现原理和底层原理。
使用 virt-manager 创建 KVM 虚拟机,方法比较简单,由于篇幅有限,大家可以查阅相关资料自行了解。
前面几篇文章介绍了 tap/tun、veth-pair,今天这篇来看看 Bridge。
在学习 Kubernetes 网络模型的过程中,了解各种网络组件的作用以及如何交互非常重要。本文就介绍了各种网络组件在 Kubernetes 集群中是如何交互的,以及如何帮助每个 Pod 都能获取 IP 地址。
Kubernetes 环境中,很多时候都要求节点内核参数开启 bridge-nf-call-iptables:
Kubernetes 网络模型的核心要求之一是每个 Pod 都拥有自己的 IP 地址并可以使用该 IP 地址进行通信。很多人刚开始使用 Kubernetes 时,还不清楚如何为每个 Pod 分配 IP 地址。他们了解各种组件如何独立工作,但不清楚这些组件如何组合在一起使用。例如,他们了解什么是 CNI 插件,但是不知道它们是如何被调用的。本文就介绍了各种网络组件在 Kubernetes 集群中是如何交互的,以及如何帮助每个 Pod 都获取 IP 地址。
Linux Bridge 和物理网络一样,虚拟网络要通信,必须借助一些交换设备来转发数据。因此,对于网络虚拟化来说,交换设备的虚拟化是很关键的一环。 上文「网络虚拟化」已经大致介绍了 Linux 内核为了满足网络虚拟化的要求,实现了一套虚拟交换设备——Bridge。本文重点介绍下 Bridge 的加强版——Open vSwitch(OVS),并从 Bridge 过渡到 OVS 的缘由讲起,让大家有个全面的认识。 借助 Linux Bridge 功能,同主机或跨主机的虚拟机之间能够轻松实现通信,也能够让虚拟机
如今服务器虚拟化技术已经发展到了深水区。现在业界已经有很多公司都迁移到容器上了。我们的开发写出来的代码大概率是要运行在容器上的。因此深刻理解容器网络的工作原理非常的重要。只有这样将来遇到问题的时候才知道该如何下手处理。
01 PART 传统vlan示意图 上图信息如下 一个交换机,包含两个VLAN:vlan10和vlan20 vlan10包含端口1|2|3,端口模式为access vlan20包含端口4|5|6,
Linux 的 网桥 是一种虚拟设备(使用软件实现),可以将 Linux 内部多个网络接口连接起来,如下图所示:
CL210考试环境 笔者在今年5月份参加了OpenStack CL210培训。但是对培训过程中实验环境的网络拓扑当时没有弄明白,后来看了一些资料,总算有了大概的了解。 书上实验的拓扑图见上图。乍一看
本文为笔者阅读大量文档和做实验的心得。本文不包含任何认证考试解密内容,如想系统性学习红帽OpenStack,请联系红帽公司培训部门。
A namespace wraps a global system resource in an abstraction that makes it appear to the processes within the namespace that they have their own isolated instance of the global resource. Changes to the global resource are visible to other processes that are members of the namespace, but are invisible to other processes. One use of namespaces is to implement containers. (摘录自Linux man page中对namespace的介绍)
当我们有要在某两台设备之间的链路上人为增加一定的时延,丢包,损伤的需求时,最简易的方法是在两台设备之间加入一台 Linux 服务器,分别与两个设备直连,服务器上作为一个纯二层 bridge 透传报文;同时使用Linux操作系统中的流量控制器TC(Traffic Control)用于Linux内核的流量控制来实现对于链路流量增加时延,丢包及损伤。
Docker Bridge 网络是 Docker 默认使用的网络类型之一,它允许多个容器在同一主机上通过虚拟网桥进行通信。在本文中,我们将深入探讨 Docker Bridge 网络的实现原理。
当你在个人电脑或服务器上运行 Linux 时,有时需要识别该系统中的硬件。lspci 命令用于显示连接到 PCI 总线的所有设备,从而满足上述需求。
在使用Bridge网络时,Docker会为每个容器创建一个虚拟网卡(veth pair),一个端口连接到容器内部,另一个端口连接到宿主机上的网桥设备(br0)。每个容器会被分配一个唯一的MAC地址和IP地址,这些地址由Docker内部的IPAM(IP Address Management)模块管理。
硬盘是大家都很熟悉的设备,一路走来,从HDD到SSD,从SATA到NVMe,作为NVMe SSD的前端接口,PCIe再次进入我们的视野。作为x86体系关键的一环,PCIe标准历经PCI,PCI-X和PCIe,走过近30年时光。其中Host发现与查找设备的方式却一脉沿袭,今天我们先来聊一聊PCIe设备在一个系统中是如何发现与访问的。
编者按:众所周知在Linux系统中PID、IPC、Network等都是全局性的资源,任何的修改和删减都会对整个系统造成影响,这也是为什么KVM之类的虚拟化技术需要模拟一个完整成主机系统的原因。但是,在Linux NameSpace中这些PID、IPC、Network等都不再是全局性的资源,基于NameSpace的虚拟化技术是内核级别的虚拟化,具有敏捷、安全、资源轻消耗等优点。在云计算的信息化建设中,计算资源和存储资源的虚拟化已经做的非常好并且具有丰富的解决方案。但是网络的虚拟化的技术还在逐步成熟的过程中,在
一.前言 由于OpenStack Neutron项目本身的高度复杂性和抽象性,加之我仅作为一名初学者,其理解能力有限。因此这里,阐述的仅是凤毛麟角而已,其目的是帮助、引导和我一样对Neutron又敬又畏的朋友们!如果本文中出现纰漏和错误,恳请指正。接受教育,本身也是一种学习。 📷 在这里,需要指出的是,本文仅从宏观角度而言,起一个引导、抛砖引玉的作用。 ——即实现Neutron的整体原理是什么。 好了,下面让我们一起踏上Neutron这条不归之路吧! 二.Neutron架构 Neu
一.前言 由于OpenStack Neutron项目本身的高度复杂性和抽象性,加之作为一名初学者,其理解能力有限。因此这里,阐述的仅是凤毛麟角而已,其目的是帮助、引导和我一样对Neutron又敬又畏的朋友们!如果本文中出现纰漏和错误,恳请指正。接受教育,本身也是一种学习。 在这里,需要指出的是,本文仅从宏观角度而言,起一个引导、抛砖引玉的作用。 ——即实现Neutron的整体原理是什么。 二.Neutron架构 Neutron项目共由约1千多个文件构成(k版)。 # tree -l 1 neutron/ 3
“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络——也就是广播域。广播域,指的是广播帧(目标MAC地址全部为1)所能传递到的范围,亦即能够直接通信的范围。严格地说,并不仅仅是广播帧,多播帧(Multicast Frame)和目标不明的单播帧(Unknown Unicast Frame)也能在同一个广播域中畅行无阻。
在上一篇文章里我们介绍了k8s集群中flannel vxlan overlay网络的创建,这在里我们基于上一篇文章中的例子,来介绍在flannel vxlan overlay网络中pod到pod的通讯。
首先,bridge是一个虚拟网络设备,所以具有网络设备的特征,可以配置IP、MAC地址等;其次,bridge是一个虚拟交换机,和物理交换机有类似的功能。
特别说明:本文于2015年基于OpenStack M版本发表于本人博客,现转发到公众号。因为时间关系,本文部分内容可能已过时甚至不正确,请注意。
使用docker时,如果想从局域网访问容器,比较常用的方式是将容器的网络模式设置为host模式,或者使用端口映射。但如果想部署多个应用并使用相同的端口,前面这两种方式就不适用了。
在前几期,我们提到,在Linux下,可以利用IO虚拟化技术为虚拟机添加一个完全虚拟或半虚拟的网卡或磁盘,也可以将物理设备直通给虚拟机,还可以将支持SR-IOV的网卡等设备一虚多,并将虚拟化的设备给虚拟机使用。
Vagrant是一个构建和管理虚拟机的工具,使用Vagrant可以非常方便的构建、启动、关闭或者复制多个相同的虚拟机环境
在上一篇文章里我们介绍了k8s集群中flannel udp overlay网络的创建,这在里我们基于上一篇文章中的例子,来介绍在flannel udp overlay网络中pod到pod的通讯。
一篇文章围绕一张图,讲述一个主题。不过这个主题偏大,我估计需要好几篇文章才能说得清楚。
为了使虚拟机与外部进行网络通信,需要为虚拟机配置网络环境。KVM虚拟化支持Linux网桥、Open vSwitch网桥等多种类型的网桥。如图所示,数据传输路径为"虚拟机 -> 虚拟网卡设备 -> Linux网桥或Open vSwitch网桥 -> 物理网卡"。
我们有个闲置的USB无线适配器(WIFI适配器),而我们的ISP路由器却是有线的。怎样把我们的家庭NAS服务器变成无线访问点(WAP),在不用买额外的WPA盒子的情况下,在Debian或Ubuntu系统下使用无线设备访问到它?
领取专属 10元无门槛券
手把手带您无忧上云