Linux 中的网桥技术

原创 2016年02月24日 10:18:49

Linux Bridge

最经典的网桥实现,基本上参考一个传统硬件交换机的功能来实现,自学习转发表,支持 STP。

物理网卡可以绑定到 LB 上,通过混杂模式将所有包转发到 LB 上,LB 按照传统二层交换机功能进行转发。

LB 也支持 Vlan 隔离,以及常见封装协议。

MacVLan

首先,不要被名字误导,其实跟 vlan 没啥关系。

在一个物理网卡 ethX 上可虚拟出多个 MacVLan 设备,系统看到的是类似 xxx@ethX 命名格式的虚拟网卡。相对网桥来说更加轻量级。

每个 MacVLan 设备拥有不同的 mac 地址和 IP 地址,只有匹配到某个 MacVLan 设备的地址的流量才会发给该设备,模拟 vlan 隔离效果。

创建方式(忽略 mac 地址则会自动随机创建):

#  ip li add link eth0 macvlan0 address 9a:cb:eb:26:a7:8d type macvlan mode bridge

一共支持四种模式:VEPA、Private、Bridge 和 Passthrough。前三种都是参考 EVB 标准。

VEPA (Virtual Ethernet Port Aggregator)

默认模式,需要外部交换机支持 VEPA/802.1Qbg。多个虚拟机指定同一个接口(例如 eth0),通过该接口连接到外部的物理网络。本地之间的访问需要先绕到外部的物理(也可以配置为软交换机)交换机,然后由外部交换机进行转发,再绕回来。是 EVB标准的一种。

注:VEPA/802.1Qbg,即需要外部交换机支持 Reflective Relay,或者发夹(Hairpin)模式,即从一个接口发上来的流量还能扔回去。

Private

类似 VEPA,但本地几个 MacVLan 接口之间不能相互访问,即使外部交换机支持 Reflective Relay 也不成。除非虚机处在不同的子网,经过外面网关的转发再绕回来。要求源和目的都配置为 private 模式。这种模式是不是很眼熟?多租户的公有云里面应该用处挺大。

Bridge

通过一个虚拟的网桥来连通本地的多个 MacVLan 接口,本地通信不需要发送到外部交换机。这种情况下,虚拟网桥知道每个接口的 Mac 地址,不需要实现学习和 STP 功能,比传统网桥简单且高效。

当然,要求源和目的虚机都配置为 bridge 模式。

Passthrough

独占物理网卡,并配置为 promiscuous 模式。一般一个网卡上只允许绑定一个 MacVlan 设备。本地无法直接交换,得靠外面交换。

MacvTap

如果把 MacVLan 设备再关联上一个 tap 设备,从物理网卡到达的网包不交给内核网络栈处理,而直接发给 tap 文件,就叫做 MacVTap,方便用户态应用直接处理网络流量。

OpenvSwitch

除了拥有 LB 的传统二层交换机功能,OpenvSwitch 最强大的是对 SDN 的支持:独立的 ovsdb,复杂的流表控制,支持外部控制器,基于 Linux TC 实现的 QoS 等。

SR-IOV

硬件虚拟化,网卡支持 SR-IOV,则一个物理网卡 PF,可以直接虚拟为多个 VF。网卡内自带嵌入式交换机,功能简单,但性能高。通过 PCI-passthrough 可以直接把 VF 挂载到虚拟机中作为网卡,也可以通过 macvtap 的 passthrough 模式再加一层桥接。

转载请注明:http://blog.csdn.net/yeasy/article/details/50728243

Linux视频教程

本课程为linux全套系列课程之一--Linux基础入门教程,Linux常用命令和基本用法,课程由浅入深,跟我一起踏上Linux之旅!!!!
  • 2015年05月25日 13:40

Docker实践 -- 使用Open vSwitch实现跨主机通信

作为目前最火热的容器技术,docker在网络实现和管理方面还存在不足。最开始的docker是依赖于Linux Bridge实现的网络设置,只能在容器里创建一个网卡。后来随着docker/libnetw...
  • zhangli_perdue
  • zhangli_perdue
  • 2015-12-31 14:25:15
  • 3058

Libvirt/KVM 中的网络模式

NAT 默认方式。虚拟机获取一个私有 IP(例如 192.168.122.0/24 网段的),并通过本地主机的 NAT 访问外网。 创建一个本地网桥 virbr0,包括两个端口:virbr0-ni...
  • yeasy
  • yeasy
  • 2015-02-13 15:34:50
  • 7282

linux bridge网桥的工作原理

Linux 抽象网络设备简介 和磁盘设备类似,Linux 用户想要使用网络功能,不能通过直接操作硬件完成,而需要直接或间接的操作一个 Linux 为我们抽象出来的设备,既通用的 Linux 网络设备...
  • u014027051
  • u014027051
  • 2016-12-28 15:21:04
  • 8653

Linux 网桥配置命令:brctl

http://fp-moon.iteye.com/blog/1468650 Linux网关模式下将有线LAN和无线LAN共享网段实现局域网内互联: 思路其实很简单:就是将虚拟出一个bridge...
  • hshl1214
  • hshl1214
  • 2016-10-26 17:06:36
  • 5422

linux搭建网桥

1.查看是否存在逻辑(虚拟)网桥接口    brctl show    如果已经存在可以用brctl delbr +网桥名 删除 2.增加一个新的逻辑(虚拟)网桥接口br0    brctl ...
  • zzzzcw
  • zzzzcw
  • 2017-02-17 10:08:47
  • 688

Linux-网桥原理分析 .

目 录 1..... 前言... 6 2       网桥的原理... 7 2.1             桥接的概念... 7 2.2             linux的桥接实现... 8...
  • wdsfup
  • wdsfup
  • 2017-02-23 09:57:07
  • 808

linux虚拟网桥的构建和WAN的连接

系统环境编译环境:ubuntu 14.04 x86_64 运行平台:IMX6Q平台 说明:系统中所有#开头的字符行表示该行为linux命令行。工具链编译dhcp由于需要动态IP分配,因此在这里编...
  • pengrui18
  • pengrui18
  • 2016-05-24 19:22:16
  • 2008

Linux 网桥 brctl

Linux 网桥配置命令:brctl Linux网关模式下将有线LAN和无线LAN共享 思路其实很简单:就是将虚拟出一个bridge口,将对应的有线LAN和...
  • eydwyz
  • eydwyz
  • 2016-08-08 18:26:36
  • 188

linux 网桥介绍以及如何配置

我们需要了解的是网桥是一种工作在数据链路层的存储转发设备,用来连接局域网,基于MAC地址来进行端口转发。  比较常见的即透明网桥(transparent bridge)。 1、网桥的重要功能 ...
  • yuhengyue
  • yuhengyue
  • 2018-01-17 14:18:02
  • 70
收藏助手
不良信息举报
您举报文章:Linux 中的网桥技术
举报原因:
原因补充:

(最多只允许输入30个字)