当前位置: 首页 > Linux学院 > 桌面应用 > 网络应用 > 使用Linux上的网络设备模拟真实网络

使用Linux上的网络设备模拟真实网络

2013-12-18 14:44 来源:IBM 作者:夏文超 人气指数: 我要评论

在提供 IaaS 服务的云计算环境中,每个用户都能得到一个虚拟的计算机,而这些虚拟机器以密集的方式运行在后台服务器集群中。虚拟机的一个特点是提供给用户类似于物理机 器的体验,而现实世界中的物理机器能通过各种网络拓扑结构组网。如何在虚拟环境中方便快捷地创建和现实中一样的网络,成为一个新的挑战。

图 1.物理网络映射问题例子

物理网络映射问题例子

图 1 为一个网络映射问题的例子。图中左边是现实世界中一个常见的网络环境:四台 PC 通过各自的物理网卡组成了两个子网,两个子网中的 PC 默认情况下是不能通讯的,也就是说他们被物理隔离了。图 1 的右边显示了虚拟化环境下的情景,四个虚拟机同时运行在一个物理主机上,并且需要象图 1 左边的真实环境一样划分出两个子网并隔离。如何才能做到这一点,或者说如何简单方便的创建出和图 1 左边部分类似的网络环境,成为虚拟化里必须要解决的一个问题。

虚拟化环境中模拟网络的主要方法

为方便理解,本文把虚拟化环境中模拟现实网络的方法分为两种:使用传统网络技术,或使用虚拟化网络扩展技术。传统网络技术主要指在虚拟化技术流行以前,现 实世界中已经存在的以太网络,包括传统 IP 网络、802.1Q VLAN 网络,对它们 Linux 已经有良好支持,用户可以配置这些 Linux 设备以完成对现实网络的模拟。虚拟化网络扩展技术主要指为应对云计算与虚拟化环境带来的挑战而新出现的网络技术,包括 802.1Qbg 和 802.1Qbh 网络。

虚拟化环境中网络模型说明

图 2 本文使用的网络模型说明

图 2 本文使用的网络模型说明

为方便阅读,上图列出了本文将使用的网络元素。图中左列表示现实世界中存在的网络元素,分别为电脑终端、二层交换机、路由器、网关、支持 802.1Q VLAN 的交换机、三层交换机、物理网卡、支持 Hairpin 模式的交换机。图中中列为虚拟化环境中的元素,分别为虚拟机,Linux Bridge、Linux 路由表、Linux iptables、Host 主机。棕色虚线框表示以太网广播域,黑色虚线框表示物理捆绑关系。图中右列为 Linux 系统里的网络设备模型,分别为 TAP 设备、VETH 设备、工作在 VEPA 模式的 MACVLAN 设备、工作在 Bridge 模式的 MACVLAN 设备、工作在 Passthrough 模式的 MACVLAN 设备、SRIOV 的虚拟 VF 设备、VLAN 设备,下文将有对它们的简介。

使用传统网络技术模拟现实网络

Linux Host 侧使用的网络元素简介

Linux 主要使用以下三种设备模型:Bridge、TAP、VETH、VLAN。Bridge 设备是基于内核实现的二层数据交换设备,其作用类似于现实世界中的二级交换机。TAP 设备是一种工作在二层协议的点对点网络设备,每一个 TAP 设备都有一个对应的 Linux 字符设备,用户程序可以通过对字符设备的读写操作,完成与 Linux 内核网络协议栈的数据交换工作,在虚拟化环境中经常被模拟器使用。VETH 设备是一种成对出现的点对点网络设备,从一段输入的数据会从另一端改变方向输出,通常用于改变数据方向,或连接其它网络设备。VLAN 设备是以母子关系出现的一组设备,是 Linux 里对 802.1.Q VLAN 技术的部分实现,主要完成对 802.1.Q VLAN Tag 的处理。

模拟传统以太网

图 3 .现实世界中的传统以太网络 A

图 3 .现实世界中的传统以太网络 A

上图为一个典型的传统以太网结构:5 个终端机器通过各自的网卡连接接入层的交换机,交换机再通过汇聚端口连接第二级交换机,进而接入作为网关的路由器,路由器通过 NAT(Net Address Translate)转发数据到外界网络,从而构成一个封闭但是可以连接外网,并且只占有一个公共 IP 的私网环境。由于所有的终端都在同一个二级交换机下,根据以太网协议,二层的广播报文将在整个网络内传遍,构成了潜在的广播风暴风险。类似的网络结构广泛存在于公司、小区、家庭用户中。

图 4 .虚拟网络 A_V0

图 4 .虚拟网络 A_V0

上 图所示为虚拟化情况下,对网络 A 的一种比较准确的模拟。四台虚拟机通过 TAP 设备连接到接入层 Bridge 设备,接入层 Bridge 设备通过一对 VETH 设备连接到二级 Bridge 设备,主机通过一对 VETH 设备接入二级 Bridge 设备。二级 Bridge 设备进一步通过 Linux 路由表,IP Tables 与物理网卡形成数据转发关系,最终和外部物理网络连接。此图中的元素与网络 A 中的元素近乎一一对应,Bridge 相当于现实世界中的二层交换机,VETH 设备相当于连接 Bridge 的网线,虚拟机看到的网络和网络 A 的物理机一样,广播域包括所有虚拟用户终端。但在通常情况下,虚拟机不一定需要二级的 Bridge 同时存在,它仅仅需要数据的转发功能,因此为了提高效率一般改变虚拟网络配置只保留最核心的功能。

图 5 .虚拟网络 A_V1

图 5 .虚拟网络 A_V1

上 图为虚拟化环境中一种常用的网络配置,对比网络 A_V0 有如下变化:不再一一映射网络 A,省去二级 Bridge,省去 VETH 设备。这种情况下,虚拟机仍然能通过虚拟网关上网,只不过探测不到二级 Bridge 的存在。由于效率较高,这种一级 Bridge 加 NAT 的网络被选为 Libvirt 的默认虚拟网络。图中的 Bridge 设备总是连接有一个 MAC 为 52:xx:xx:xx:xx:xx 的 TAP 设备,原因是 Linux 内核里 Bridge 的实现有一个缺陷:当加入的设备 MAC 为最小 MAC 时,MAC 学习会打断 Bridge 的工作,因此事先创建一个 MAC 值很小的设备 51:xx:xx:xx:xx:xx 绕过此问题。图中由于存在两个子网(192.168.1.0 网段与 192.168.2.0 网段),因此使用了两个 Bridge 设备以区分出两个广播域,和网络 A 产生了区别,这在没有 802.1Q VLAN 的情况下不可避免。

大家感兴趣的内容
小伙伴最爱的新闻
小伙伴还关注了以下信息
小伙伴关注的焦点

小伙伴都在关注的热门词

新服 缤纷活动 航海世纪 芈月传 暗黑道具 萌乐网 苹果发布会 最新谍照 三国令 剑雨江湖 怎样修炼战骑 页游 怎样修炼伙伴 木甲世界 仙侠道2 推黑科技 页游模式 武圣试炼场 街机玩法 蓝月传奇 个人BOSS玩法 哥们网 九阴绝学 仗剑出鞘 全新模式 范伟打天下 全新元神玩法 七大神兵简介 新手攻略 跑腿任务 门派五行 城战礼包 页游界 泥石流 傅园慧 经典网页游戏 耐玩 盘点 玉石攻略 提升角色 大黑 实装属性 神兵攻略 问鼎莽荒 莽荒纪 手持神兵 土豪梦 万世 开学清单 财富赚不停 天书世界 大黑游戏 资源战场 ppwan 天问 激战 全国大战 雄霸一方 新增宠物技能 绝对小能手 花千骨 三尾章鱼 风色轨迹 双枪手 弑之神 缤纷好礼 惊喜六重连 帮会 中秋福利 自制月饼 九阴真经 玩家 五周年纪念 纪念银币 名动三界 新服资料片 画江山 勇战妖魔 邪恶势力 上古降魔 老司机玩法 坐骑揭秘 黑科技 竞技场攻略 铁血皇城 披风玩法 书剑恩仇录 装备强化攻略 野外BOSS玩法 全网曝光 赤壁传说 半回合制国 ACT 奇珍商城 热血战歌 传奇宝藏抽奖 打开方式 门徒 门徒获取玩法 三大萌宠简介