安装过vmware的朋友应该都知道 vmware宿主和虚拟机上网的3中方式
1. 桥接
2. NAT
3. host-only
这3种方式的操作手法网上都有描述,我们工作中主要使用到了 第一种 桥接的方式 ,这种方式 最大的好处 就是能建立一个和宿主机 对等的网络, 实现vm 和整个局域网的通信 ,就像 宿主机和VM在一个交换机上 链接一样!
网上有个文章讲的很详细
网桥的功能:
网桥的功能在延长网络跨度上类似于中继器,然而它能提供智能化连接服务, 即根据帧的终点地址处于哪一网段来进行转发和滤除。网桥对站点所处网段的了 解是靠“自学习”实现的。
当使用网桥连接两段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’
注意事项
- 桥接后,br0的IP就是宿主机的IP,而虚拟机的IP需要在虚拟机内设定。至于是动态IP还是静态IP,需要根据使用者的需要来设定。因为虚拟
机桥接接入局域网以后,虚拟机就相当于是局域网内的一台实体计算机,与宿主机平行,所以IP的设定要谨慎一些。如果宿主机是静态IP,而虚拟机是动态
IP,那么请确保局域网内有一台DHCP服务器来分配IP。
- 设定虚拟机IP的时候,请不要跟br0的IP相同,否则会造成IP冲突,导致宿主机或虚拟机不能连接网络。
- 如果出现虚拟机、宿主机和网关能够互相ping通,但虚拟机不能浏览网络等情况,请检查虚拟机的DNS设置。如果出现宿主机或虚拟机断开网络,请检查桥接网络中网桥是否连接好,网关是否设置好。
- 本方法适用于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下以实现开机自动执行。
参考资料:
2. 5台主机桥接
3
. 教你怎样设置Linux透明防火墙
4.
XP中用桥接网络实现多网卡多机共享上网
5. linux中Kvm桥接网络成功的关键
6.
虚拟机桥接联网指南
7. NAT
8.VMWare虚拟系统上网设置及VMWare虚拟机三种工作模式详解
分享到:
相关推荐
对Linux网桥的实现和使用作了比较详细的介绍,是了解Linux网桥的一份较好的资料
基于LINUX网桥实现隔离网闸技术的应用.pdf
Linux网桥实现源码分析具体说明网桥代码的实现细节 1、查表:br_forward 2、网桥数据转发:br_fdb_put。
Linux网桥式防火墙保安全.pdf
Openstack里面关于网桥的知识,讲得非常透彻,有利于我们理解Openstack是使用网桥以及网络的机理.
分析了2.6.15内核源码,主要解析网桥的实现原理,处理数据的流程
半轮询方式提高Linux以太网桥性能.pdf
网闸是网络安全防护手段之一,传统...本文提出了一种逻辑网闸技术,基于Linux网桥的Ebtables架构,可以在链路层截获数据,并利用逻辑开关实现单向数据通过以及应用层过滤等功能,从而在软件上实现了一个物理隔离网闸的作用。
对linux下的3类虚拟交换技术(bridge、openswitch、macvlan)进行了浅显易懂的介绍,对于想了解虚拟机中支持网卡类型以及虚拟机与外部组网方式很有帮助~!
基于Linux系统实现透明网桥式安全接入点.pdf
bridge-utils-1.4,linux系统上将多个网卡桥接的程序,还有帮助文档
linux内核网桥分析,介绍linux内核网桥的架构实现,和网桥的相关操作
linux透明网桥,iptables linux透明网桥,iptables linux透明网桥,iptables
支持浮动IP,网络名称空间同步,OVS和linux网桥。 概念 该脚本适用于docker网络管理脚本。 docker的网络是基于NAT的,但它可以像openstack之类的东西一起使用。 是的,Float IP ..只是DNAT / SNAT到特定的容器。 ...
linux下的网桥原理和配置过程,虽然是2.4内核时代的产物但是命令和原理是相通的。
生活心情糟透,粗略分析linux 网桥code,误导勿怪.. 网上x人无数,请见笑!挣点积分,搜点资料,下个东东真难.
Linux下实现网络流量记录.pdf
一种改进的Linux下的IPv4_IPv6转换网关.pdf
Linux Bridge网络管理器插件该插件允许fog05使用网桥工具管理网络支持的操作: 创建虚拟桥梁创建虚拟网络添加网络接口删除虚拟接口删除虚拟网桥删除虚拟网络去做: 创建虚拟界面从网络上删除接口
Linux网桥工作原理与实现 其他 定时器实现 多路复用I/O GDB原理之ptrace 容器相关 docker实现原理之 - namespace docker实现原理之 - CGroup介绍 docker实现原理之 - CGroup实现原理 docker实现原理之 - OverlayFS...