`
8366
  • 浏览: 810225 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

linux 网桥

阅读更多

 

 安装过vmware的朋友应该都知道 vmware宿主和虚拟机上网的3中方式

 

1. 桥接

2. NAT

3. host-only

 

这3种方式的操作手法网上都有描述,我们工作中主要使用到了 第一种 桥接的方式 ,这种方式 最大的好处 就是能建立一个和宿主机 对等的网络, 实现vm 和整个局域网的通信 ,就像 宿主机和VM在一个交换机上 链接一样!

 

 网上有个文章讲的很详细

VMWare虚拟系统上网设置及VMWare虚拟机三种工作模式详解

 

网桥的功能:

 

网桥的功能在延长网络跨度上类似于中继器,然而它能提供智能化连接服务, 即根据帧的终点地址处于哪一网段来进行转发和滤除。网桥对站点所处网段的了 解是靠“自学习”实现的。

  当使用网桥连接两段LAN 时,网桥对来自网段1 的MAC 帧,首先要检查其终 点地址。如果该帧是发往网段1 上某一站的,网桥则不将帧转发到网段2 ,而将 其滤除;如果该帧是发往网段2 上某一站的,网桥则将它转发到网段2.这表明, 如果LAN1和LAN2上各有一对用户在本网段上同时进行通信,显然是可以实现的。 因为网桥起到了隔离作用。可以看出,网桥在一定条件下具有增加网络带宽 的作用。

 

 

网桥工作流程如下:

 

1. 检查收到的信号,解释0和1的含义,并找出帧中的目的MAC地址。

2. 如果具有该目的的MAC地址的帧能够通过网桥上不同的接口到达目的地(不是帧到达网桥的那个接口),则通过重新生成信号来传输这帧。(这个过程叫做转发。)

3. 如果该帧到达的接口就是目的地址可达到的端口,则丢弃该帧。(这个过程叫做过滤。)

 

为什么要使用网桥:

 

许多单位都有多个局域网,并且希望能够将它们连接起来。之所以一个单位有多个局域网,有以下6个原因:

  首先,许多大学的系或公司的部门都有各自的局域网,主要用于连接他们自己的个人计算机、工作站以及服务器。由于各系(或部门)的工作性质不同,因此选用了不同的局域网,这些系(或部门)之间早晚需相互交往,因而需要网桥。

  其次,一个单位在地理位置上较分散,并且相距较远,与其安装一个遍布所有地点的同轴电缆网,不如在各个地点建立一个局域网,并用网桥和红外链路连接起来,这样费用可能会低一些。

  第3,可能有必要将一个逻辑上单一的LAN分成多个局域网,以调节载荷。例如采用由网桥连接的多个局域网,每个局域网有一组工作站,并且有自己的文件服务器,因此大部分通信限于单个局域网内,减轻了主干网的负担。

  第4,在有些情况下,从载荷上看单个局域网是毫无问题的,但是相距最远的机器之间的物理距离太远(比如超过802.3所规定的2.5km)。即 使电缆铺设不成问题,但由于来回时延过长,网络仍将不能正常工作。唯一的办法是将局域网分段,在各段之间放置网桥。通过使用网桥,可以增加工作的总物理距 离。

  第5,可靠性问题。在一个单独的局域网中,一个有缺陷的节点不断地输出无用的信息流会严重地破坏局域网的运行。网桥可以设置在局域网中的关键部位,就像建筑物内的放火门一样,防止因单个节点失常而破坏整个系统。

  第6,网桥有助于安全保密。大多数LAN接口都有一种混杂工作方式(promiscuousmode),在这种方式下,计算机接收所有的帧,包括那些并不是编址发送给它的帧。如果网中多处设置网桥并谨慎地拦截无须转发的重要信息,那么就可以把网络分隔以防止信息被窃。

 

linux 下 设置网桥的方式(主要步骤):

 

1、创建网桥设备 br0:  brctl addbr br0

2、向br0中添加网卡 eth0  eth1

                                brctl addif eth0

                                 brctl addif eth1

3、从网桥中删除网卡 eth0 eth1

                               brctl delif eth0

                               brctl delif eth1

4、删除网桥 br0 :   brctl  delbr  br0

 

开机后自动搭建网络桥接脚本 (根据需要修改):

 

    #!/bin/bash
    modprobe tun
    tunctl -t tap0 -u $USERNAME
    tunctl -t tap1 -u $USERNAME
    brctl addbr br0
    ifconfig eth0 0.0.0.0 promisc
    brctl addif br0 eth0
    ifconfig br0 up
    dhclient br0
    brctl addif br0 tap0
    brctl addif br0 tap1
    ifconfig tap0 up
    ifconfig tap1 up
    chmod a+rw /dev/net/tun

 

把该脚本添加到rc.local开机脚本去,实现开机自动构建桥接网络

su -c ‘echo “$HOME/vmbridge.sh” >> /etc/rc.local’
或者
su -c ‘cat $HOME/vmbridge.sh >> /etc/rc.local’

 

 

 

注意事项

  1. 桥接后,br0的IP就是宿主机的IP,而虚拟机的IP需要在虚拟机内设定。至于是动态IP还是静态IP,需要根据使用者的需要来设定。因为虚拟 机桥接接入局域网以后,虚拟机就相当于是局域网内的一台实体计算机,与宿主机平行,所以IP的设定要谨慎一些。如果宿主机是静态IP,而虚拟机是动态 IP,那么请确保局域网内有一台DHCP服务器来分配IP。
  2. 设定虚拟机IP的时候,请不要跟br0的IP相同,否则会造成IP冲突,导致宿主机或虚拟机不能连接网络。
  3. 如果出现虚拟机、宿主机和网关能够互相ping通,但虚拟机不能浏览网络等情况,请检查虚拟机的DNS设置。如果出现宿主机或虚拟机断开网络,请检查桥接网络中网桥是否连接好,网关是否设置好。
  4. 本方法适用于XEN、KVM、QEMU和版本较旧的VirtualBox。

 

 

 

centos中 kvm 网桥的设置:

 

新建一个ifcfg-br0文件:

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
BROADCAST=10.1.255.255
IPADDR=10.1.29.3
NETMASK=255.255.0.0
NETWORK=10.1.0.0
ONBOOT=yes

 

然后修改相应网卡的配置文件,我的是eth1:

# Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet
DEVICE=eth1
#BOOTPROTO=none
#BROADCAST=10.1.255.255
HWADDR=D8:5D:4C:74:EE:E8
#IPADDR=10.1.29.3
#NETMASK=255.255.0.0
#NETWORK=10.1.0.0
ONBOOT=yes
#TYPE=Ethernet
#USERCTL=no
#IPV6INIT=no
#PEERDNS=yes
BRIDGE=br0

可以看出,原来网卡的配置只保留device名称,硬件地址,onboot选项,以及新添加的BRIDGE=br0。

 

然后重启网络:

/etc/init.d/network restart 或service network restart

 

实验中在br0中加入gateway后,/etc/sysconfig/network中的gateway就消失了。成功后,利用route -n查看路由,发现所有的包都从br0走了。

 

 

可用的开机建立网桥的脚本:

 

#!/bin/sh
brctl addbr br0
brctl addif br0 eth0
ifconfig eth0 down
ifconfig eth0 0.0.0.0 up
ifconfig br0 192.168.198.71 up
service network restart
 

在此脚本中eth0为桥接的网卡,br0为创建的虚拟网络。将br0桥接到真实的网卡eth0是,以实现虚拟机的桥接功能。如果要添加新的桥接网络,将eth0和br0替换成需要的借口即可。
注意:以上命令建议使用脚本运行,如果使用命令逐条执行会造成网络中断。
执行次脚本即可实现添加桥接网卡的功能。
桥接功能在重启之后就会失效,可以将此脚本添加到/etc/rc.d/rc.local下以实现开机自动执行。

 


参考资料:

 

 

1. linux系统下配置网桥(已试验)

2. 5台主机桥接

 

3 . 教你怎样设置Linux透明防火墙

 

4. XP中用桥接网络实现多网卡多机共享上网

 

5. linux中Kvm桥接网络成功的关键

 

6. 虚拟机桥接联网指南

 

7. NAT

 

8.VMWare虚拟系统上网设置及VMWare虚拟机三种工作模式详解

分享到:
评论
1 楼 string2020 2014-01-21  
假如linux上有3个网卡

执行了
brctl addif br0 eth0
brctl addif br0 eth1
brctl addif br0 eth2
之后,
eth0,eth1,eth2 是不是就不用设置IP了

相关推荐

    Linux网桥的实现分析与使用

    Linux网桥是一种网络设备,它允许在多个网络接口之间转发数据包,起到了连接不同网络段的作用,类似于硬件网桥。本文将深入探讨Linux网桥的实现原理、配置方法以及使用场景,帮助读者全面理解这一强大的功能。 一、...

    Openstack linux网桥的知识

    Linux网桥在OpenStack云计算平台中的应用是一项重要的网络虚拟化技术。在OpenStack中,网桥被用来桥接物理网络接口和虚拟机,或者多个虚拟机之间的网络通信。理解Linux网桥的原理和工作机制对于深入理解OpenStack的...

    半轮询方式提高Linux以太网桥性能.pdf

    在搭建Linux网桥时,网桥设备需要具有多个网络接口。在大型网络流量环境和中断方式处理的情况下,Linux网桥的系统中断处理开销随之急剧上升。这种情况下网桥的性能就成了网络环境的瓶颈。 本文首先介绍了以太网桥的...

    Linux实现网桥

    Linux 实现网桥的知识点 Linux 网桥是一种虚拟网络设备,它可以将多个以太网接口连接起来形成一个虚拟的网络接口,从而提高网络的可扩展性和可靠性。网桥的实现主要涉及到三个方面:查表、网桥数据转发和钩子函数的...

    基于LINUX网桥实现隔离网闸技术的应用.pdf

    "基于LINUX网桥实现隔离网闸技术的应用" 本文主要介绍了基于LINUX网桥实现隔离网闸技术的应用。隔离网闸技术是一种网络安全防护手段,它可以在链路层截获数据,并利用逻辑开关实现单向数据通过和应用层过滤等功能,...

    虚拟交换技术和linux网桥

    例如,Linux网桥提供了一系列的命令行工具(brctl等)用于操作网桥的配置。通过这些工具,网络管理员可以轻松地创建网桥、添加和移除网桥上的端口、配置VLAN过滤和FDB等。 总结来说,Linux下的虚拟交换技术使得网络...

    linux网桥程序(bridge-utils-1.4)及帮助

    Linux网桥程序,如"bridge-utils-1.4",是Linux操作系统中用于网络设备桥接的重要工具。它允许用户将多个网络接口(如以太网卡)连接在一起,形成一个逻辑上的单一网络接口,从而实现不同网络之间的通信或者创建虚拟...

    Linux网桥式防火墙保安全.pdf

    Linux网桥式防火墙保安全.pdf

    linux之透明网桥篇

    - **bridge-utils**:包含了创建和管理Linux网桥所需的工具,如`brctl`命令等。 #### 三、安装与配置 以Linux AS4操作系统为例,介绍如何配置透明网桥: 1. **准备环境**:确保系统中已经安装了`sysfsutils-1.2.0...

    基于LINUX网桥实现隔离网闸技术的应用 (2008年)

    网闸是网络安全防护手段之一,传统...本文提出了一种逻辑网闸技术,基于Linux网桥的Ebtables架构,可以在链路层截获数据,并利用逻辑开关实现单向数据通过以及应用层过滤等功能,从而在软件上实现了一个物理隔离网闸的作用。

    基于Linux系统实现透明网桥式安全接入点.pdf

    基于Linux系统实现透明网桥式安全接入点.pdf

    docker-network-tools:Docker网络工具。 支持浮动IP,网络名称空间同步,OVS和linux网桥

    支持浮动IP,网络名称空间同步,OVS和linux网桥。 概念 该脚本适用于docker网络管理脚本。 docker的网络是基于NAT的,但它可以像openstack之类的东西一起使用。 是的,Float IP ..只是DNAT / SNAT到特定的容器。 ...

    Ubuntu如何配置网桥 Ubuntu系统配置网桥详细教程.docx

    有多种方法可以配置一个 Linux 网桥,例如使用 brct 手动配置网桥,在桌面环境下,可以使用网络管理器来配置网桥。 知识点三:使用网络管理器配置网桥 使用网络管理器配置网桥需要 version 0.9.9 或者更高的版本。...

    linux下的网桥配置

    linux下的网桥原理和配置过程,虽然是2.4内核时代的产物但是命令和原理是相通的。

    bridge-utils1.7.1网桥工具教程[内含软件包].zip

    在Docker的网络配置中,`bridge-utils`是一个至关重要的工具,它使得我们可以创建和管理Linux网桥,从而实现容器间的通信。本文将深入探讨`bridge-utils`的1.7.1版本及其在Docker中的应用。 首先,让我们理解什么是...

    brctl配置网桥[收集].pdf

    在Linux系统中,网桥的实现可以通过brctl命令来配置和管理,同时也可以通过其他命令来实现网桥的配置和管理。 资源链接: * ALinux 网桥的实现分析与使用...

    Linux下实现网络流量记录.pdf

    在Linux操作系统下实现网络流量记录是一个关键的网络管理任务,这有助于监控网络资源的使用情况,提供计费管理和故障排查的数据支持。本文主要介绍了几种在Linux环境下记录网络流量的方法,包括基于代理、路由器以及...

    一种改进的Linux下的IPv4_IPv6转换网关.pdf

    标题中的“一种改进的Linux下的IPv4_IPv6转换网关”指的是在Linux操作系统环境下,针对IPv4和IPv6网络间通信的一种优化解决方案。描述提到的传统方法是通过NAT-PT(Network Address Translation - Protocol ...

Global site tag (gtag.js) - Google Analytics