免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5356 | 回复: 8
打印 上一主题 下一主题

[KVM] linux kvm 虚拟化(配置)的几个问题:1linux bridge能设置成nat模式吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-05-31 20:56 |只看该作者 |倒序浏览
linux kvm 虚拟化(配置)的几个问题:

1 linux bridge能设置成nat模式吗?如果能, 如何设置?

2 libvirt生成的virbr0能设置成bridge模式吗? 如果能, 如何设置?

3 使用brctl show可以同时看见自定义的bridge和libvirt 生成的virbr0, 是不是说virbr0也是brctl命令创建的?
  如果是, 那么说明brctl创建的bridge可以是nat模式喽?

4  linux bridge可不可以设置成一个bridge多个vlan? 如果能, 如何设置?(个人感觉一个bridge上所有的port都是一个vlan)

5  bridge添加port后如:brctl addif br0 eth0, 被添加的eth0如果设置IP还能工作吗?(我个人缺少测试环境, 无法测试)

下面是ovs的问题

6  open vswitch官网上有个例子, 说host一般2个网卡, 一个data(eth0), 一个manager(eth1),
  理由是eth0加入到ovs-bridge后, eth0没有IP, 于是只能用eth1来管理,
  假如此时我 ssh eth1_IP, 此时我是连接到eth1这个物理网卡上, 感觉ovs的internal ip没啥意义啊?
  另外, 如果我使用sFlow来监视ovs, internal ip是如何工作的?

论坛徽章:
0
2 [报告]
发表于 2015-06-01 16:58 |只看该作者
经过各种百度和实际测试, 自己回答自己
1 不能
2 能, 修改(默认)配置文件/etc/libvirt/qemu/networks/default.xml即可
3 这个问题其实很简单,是我自己想复杂了,
   libvirt使用了brctl创建网桥virbr0,和普通的linux网桥没什么不同,
   以下是在用户层实现的
   如果是nat模式的,则libvirt会桥接一块网卡到virbr0上去,这个网卡实际上是个nat服务器, 于是就实现了nat功能

论坛徽章:
22
CU大牛徽章
日期:2013-09-18 15:22:06白羊座
日期:2014-04-14 22:56:32午马
日期:2014-05-16 17:18:08巳蛇
日期:2014-05-30 20:53:19寅虎
日期:2014-06-03 10:53:34未羊
日期:2014-08-12 22:15:31神斗士
日期:2015-11-20 17:26:2515-16赛季CBA联赛之浙江
日期:2016-03-15 18:27:4215-16赛季CBA联赛之同曦
日期:2016-03-22 09:21:0115-16赛季CBA联赛之北控
日期:2017-03-26 21:47:12技术图书徽章
日期:2014-04-03 16:47:26摩羯座
日期:2014-03-25 23:51:36
3 [报告]
发表于 2015-06-02 16:29 |只看该作者
3.其实是在iptables上面做nat;
4.使用1bridge 1vlan方式,配置br0.100(vlan100),类似网卡做vlan配置类似;
5.不能工作,bridge多IP用br0:0,br0:1的配置实现,跟单网卡多IP配置类似;
6.单网卡也可以做ovs,可以配上IP地址,直接连该IP地址也能够管理,类似启动一个虚拟网卡internal也挂在ovs上面并配置IP,直接走eth0出去,类似交换机,交换机没有IP地址也能工作,但可以给自己配置N个IP地址做运维、测试;ovs只是推荐两个网卡较好,类似vmware,1个网卡走数据,一个网卡走管理流量,做网络隔离互不干扰。
关于linux bridge可以参考xen利用linux bridge实现虚拟网络的相关文档http://wiki.xenproject.org/wiki/Xen_Networking

论坛徽章:
0
4 [报告]
发表于 2015-06-02 21:56 |只看该作者
回复 3# GB_juno


多谢大侠, 但是关于问题4我还是有点不明白, 是不是这个意思:
先创建两个br,
brctl addbr br0
brctl addbr br1
然后再创建vlan
vconfig add br0 100  这里的br0是创建br后产生的虚拟网卡
vconfig add br1 200
然后再将br0.100和br1.200加入另一个网桥
brctl addbr br3
brctl addif br3 br0.100
brctl addif br3 br1.200
是这样吗?

还有问题6, 如果ovs上桥接的物理网卡可以配置IP, 那么就是说, ovs实现和linux bridge不一样喽? 据说ovs是3层, linux bridge是2层, 是吗?

论坛徽章:
22
CU大牛徽章
日期:2013-09-18 15:22:06白羊座
日期:2014-04-14 22:56:32午马
日期:2014-05-16 17:18:08巳蛇
日期:2014-05-30 20:53:19寅虎
日期:2014-06-03 10:53:34未羊
日期:2014-08-12 22:15:31神斗士
日期:2015-11-20 17:26:2515-16赛季CBA联赛之浙江
日期:2016-03-15 18:27:4215-16赛季CBA联赛之同曦
日期:2016-03-22 09:21:0115-16赛季CBA联赛之北控
日期:2017-03-26 21:47:12技术图书徽章
日期:2014-04-03 16:47:26摩羯座
日期:2014-03-25 23:51:36
5 [报告]
发表于 2015-06-02 23:38 |只看该作者
vlan配置可以参考:http://net.doit.wisc.edu/~dwcard ... unking_bridging.txt
例子里面1个bridge是2个vlan的,但是在虚拟化环境下我看到的基本上都是1bridge1个vlan,比较容易区分;
问题6,ovs上的物理网卡不能配置IP地址,跟bridge是一样的,bridge即使没有IP地址也能够正常工作的,但是可以给bridge配置一个IP地址以便主机的访问和管理。
linux bridge肯定是2层的,ovs还是工作在二层,但是支持GRE等协议,详细可以参考openstack的ovs做法,ovs高级用法的典型师范例子

论坛徽章:
0
6 [报告]
发表于 2015-06-03 13:21 |只看该作者
本帖最后由 faku 于 2015-06-03 14:49 编辑

回复 5# GB_juno

不好意思啊, 还得问你个问题
假如有1个br,多个vlan, 那么我后续使用addif添加的port到底是属于哪个vlan呢? 是在网卡的配置文件中设置的吗?

br0 已经addif了eht0.100和eth0.200
然后又brctl addif br0 tag0, 那么这个tag0是哪个vlan的? 据我所知, brctl和vconfig没有这方面的命令(或参数)
我也没在网卡的配置文件(ifcfg-xxx)中找到类似的信息


不会是通过guest的默认网关来区分tag的吧!就是guest的默认网关是eht0.100, 那么数据将会被打上100的tag


论坛徽章:
22
CU大牛徽章
日期:2013-09-18 15:22:06白羊座
日期:2014-04-14 22:56:32午马
日期:2014-05-16 17:18:08巳蛇
日期:2014-05-30 20:53:19寅虎
日期:2014-06-03 10:53:34未羊
日期:2014-08-12 22:15:31神斗士
日期:2015-11-20 17:26:2515-16赛季CBA联赛之浙江
日期:2016-03-15 18:27:4215-16赛季CBA联赛之同曦
日期:2016-03-22 09:21:0115-16赛季CBA联赛之北控
日期:2017-03-26 21:47:12技术图书徽章
日期:2014-04-03 16:47:26摩羯座
日期:2014-03-25 23:51:36
7 [报告]
发表于 2015-06-03 22:27 |只看该作者
本帖最后由 GB_juno 于 2015-06-04 08:48 编辑

上面之所以说虚拟化环境下看到的基本是1bridge1个vlan,主要就是因为这样做才能够做到模拟现实中的物理机。最典型的例子可以参考下面的openstack vlanmanager的模式:这个模式是在neutron没有出现之前的nova-network模式中的一种,但这种方式在redhat rhev等企业虚拟化软件开始阶段就这么用的:
http://www.mirantis.com/blog/vlanmanager-network-flow-analysis/

另外,1 vm 1 bridge n vlan比较复杂。
举个例子比如说vm的网卡tap桥接到br0上,br0上面有eth0.200,eth0.300,那么vm的网卡就是同时跨了2个vlan,无论是vlan200/300的packet(packet目标ip是vm)到达主机时都会进行解包并送到vm里面,但是这里有一个缺陷就是vlan200和vlan300之间的隔离其实就作废了(为什么会作废呢?问题1来了),所以除非特殊用途一般不会这么使用

你问题中问的网卡tag0我不清楚是什么类型的网卡,如果是tap类型(vm网卡就是tap类型),这个网卡是没有vlan,就相当于物理网卡一样,谈不上属于哪个vlan。bridge是没有所谓的port的说法,bridge只能用来做交换,vlan的实现由vlan nic(eth0.100这样的)实现。
因此要想在linux中模拟交换机,那么就必须要使用vlan nic+bridge来做,bridge用来交换,vlan nic进行隔离。

说了这么多,其实还是先看看基础知识,看了之后你就会对1vm 1bridge n vlan的用法了解了
http://www.ibm.com/developerworks/cn/linux/1310_xiawc_networkdevice/index.html
http://www.ibm.com/developerworks/cn/linux/1312_xiawc_linuxvirtnet/
最后,给你问题2去思考:
物理网卡eth0接交换机端口,该端口已经配置trunk(native vlan,100,200),已有eth0.100,eth0,200,br0,vm有网卡tap0;执行下面的命令
brctl addbr br0
brctl addif br0 tap0
brctl addif br0 eth0.100
brctl addif br0 eth0.200
如果brctl中把eth0也加到网桥里面,那么会怎么样呢?这样会跟上面模拟路由器的一样吗?确认这样会正常工作吗?
brctl addif br0 eth0

这个问题有答案.

说了那么多,好久没这样了..唉,或许就是无聊了点

论坛徽章:
10
数据库技术版块每日发帖之星
日期:2015-06-14 22:20:00数据库技术版块每日发帖之星
日期:2016-03-10 06:20:00数据库技术版块每日发帖之星
日期:2015-12-01 06:20:00IT运维版块每日发帖之星
日期:2015-11-09 06:20:00IT运维版块每日发帖之星
日期:2015-11-02 06:20:00IT运维版块每日发帖之星
日期:2015-07-13 22:59:28IT运维版块每日发帖之星
日期:2015-06-23 22:20:00程序设计版块每日发帖之星
日期:2015-06-21 22:20:00每日论坛发贴之星
日期:2015-06-14 22:20:00IT运维版块每日发帖之星
日期:2016-08-02 06:20:00
8 [报告]
发表于 2015-06-13 15:19 |只看该作者
不错!可惜不能发链接。

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09
9 [报告]
发表于 2015-08-20 19:01 |只看该作者
本帖最后由 lolizeppelin 于 2015-08-20 19:06 编辑

…没看完全内容 发多余了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP