LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3097|回复: 5

奇怪的virtualbox 网络桥接以及usb设备问题

[复制链接]
发表于 2008-1-19 18:26:32 | 显示全部楼层 |阅读模式
网络桥接:
编译了内核 加上 802.1d bridge 和 universal TUN/TAP支持 ,又重新编译安装了
virtualbox-bin modules

可以运行virtualbox 了,虚拟了一个深度win2000

按照网上一篇文章设置网络桥接:
  1. # VirtualBox Bridging

  2. # Create a tap device with permission for the user running vbox
  3. # 建立一个使用者(user)有权限的设备tap0,{user}为自己用户名
  4. tunctl -t tap0 -u {user}
  5. chmod 0666 /dev/net/tun

  6. # Bring up ethX and tapX in promiscuous mode
  7. # 将ethx和tapx网卡界面设为混杂模式(Promiscuous)
  8. ifconfig eth0 0.0.0.0 promisc
  9. ifconfig tap0 0.0.0.0 promisc

  10. # Create a new bridge and add the interfaces to the bridge.
  11. # 建立新的桥接界面(bridge),並把 eth0, tap0加入bridge
  12. brctl addbr br0
  13. brctl addif br0 eth0
  14. brctl addif br0 tap0

  15. # 下面是两种获取IP的方式,可以自由选择,把不需要的注释掉就好了。
  16. # 将bridge设成静态IP。XXX都分别对应IP、子网掩码、网关。
  17. ifconfig br0 XXX.XXX.XXX.XXX netmask XXX.XXX.XXX.XXX up
  18. route add default gw XXX.XXX.XXX.XXX
  19. # 将bridge设成动态DHCP分配IP。
  20. #dhclient br0
复制代码



我的机器原来就一个eth0,是静态ip :192.168.0.189

按照上诉过程后,ifconfig 查看:
  1. sudo ifconfig
  2. br0       Link encap:Ethernet  HWaddr 00:D0:59:CB:DB:B3
  3.           inet addr:192.168.0.169  Bcast:192.168.0.255  Mask:255.255.255.0
  4.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  5.           RX packets:132 errors:0 dropped:0 overruns:0 frame:0
  6.           TX packets:51 errors:0 dropped:0 overruns:0 carrier:0
  7.           collisions:0 txqueuelen:0
  8.           RX bytes:18176 (17.7 Kb)  TX bytes:4217 (4.1 Kb)

  9. eth0      Link encap:Ethernet  HWaddr 00:D0:59:CB:DB:B3
  10.           UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
  11.           RX packets:51117 errors:0 dropped:0 overruns:0 frame:0
  12.           TX packets:74841 errors:0 dropped:0 overruns:0 carrier:0
  13.           collisions:0 txqueuelen:1000
  14.           RX bytes:23959770 (22.8 Mb)  TX bytes:73123992 (69.7 Mb)

  15. lo        Link encap:Local Loopback
  16.           inet addr:127.0.0.1  Mask:255.0.0.0
  17.           UP LOOPBACK RUNNING  MTU:16436  Metric:1
  18.           RX packets:862 errors:0 dropped:0 overruns:0 frame:0
  19.           TX packets:862 errors:0 dropped:0 overruns:0 carrier:0
  20.           collisions:0 txqueuelen:0
  21.           RX bytes:490955 (479.4 Kb)  TX bytes:490955 (479.4 Kb)

  22. tap0      Link encap:Ethernet  HWaddr 00:FF:7D:95:0E:29
  23.           UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
  24.           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
  25.           TX packets:0 errors:0 dropped:113 overruns:0 carrier:0
  26.           collisions:0 txqueuelen:500
  27.           RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
复制代码


再virtualbox网络设置时候,选择host device ,名字是tap0
启动系统,cmd 查看 ipconfig,ip地址变成了 192.168.0.169

疑问: host机器的eth0 的ip变到哪里去了,
看来,host机和guest机的ip都是动态分配获得的,
上述过程中的,tap0 和 br0 到底是什么呢??




usb问题

已经添加了usbfs 组,并且把用户加入usbfs组,但是,virtualbox 能看到usb设备,但是不能选择,灰色的,state:不可用
用root启动virtualbox 没有usb权限问题
  1. joey@localhost ~ $ grep usbfs /etc/group
  2. usbfs:x:1006:joey
复制代码
  1. joey@localhost ~ $ sudo groups
  2. Password:
  3. root bin daemon sys adm disk wheel floppy dialout tape video
复制代码

  1. joey@localhost ~ $ grep usbfs /etc/fstab
  2. none                    /proc/bus/usb   usbfs           devgid=1006,devmod=664
复制代码


第一次在gentoo下使用virtualbox ,呵呵,问题多多
还有一个问题,guest机没有声音 ,我设置的alsa 作驱动
发表于 2008-1-19 19:18:47 | 显示全部楼层
先试试在windows下用virtualbox。我发觉它的网络设置方式比vmware和virtualPC复杂,分为4种,我是试了半天都配不通网络。后来硬着头皮看了官方文档才弄清它的网络设置的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-19 19:25:44 | 显示全部楼层
vmware 好像默认就是桥接的,稳定性不错,就是速度慢啊
回复 支持 反对

使用道具 举报

发表于 2008-1-19 21:50:07 | 显示全部楼层
你先看看桥接的资料吧。别考虑 vbox,从2台电脑的角度考虑,也许更容易理解。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-20 09:03:00 | 显示全部楼层
桥接应该就是一个物理网卡上有两个虚拟的适配器吧,这样解释对吗?
一个给host 一个给guest
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-20 14:33:14 | 显示全部楼层
网上找到:
网桥工作在数据链路层,能将两个局域网(LAN)连起来,根据MAC地址(物理地址)来转发帧,可以看作一个“低层的路由器”(路由器工作在网络层,根据网络地址如IP地址进行转发)。


今天揣摩了一下:tap0是虚拟网卡 eth0 是主机网卡 br0是虚拟网桥

tunctl -t tap0
添加虚拟网卡

brctl addbr
添加网桥

ifconfig eth0 0.0.0.0 promisc
ifconfig tap0 0.0.0.0 promisc
设置成promisc 模式,不知道是什么意思


brctl addif br0 eth0
brctl addif br0 tap0
两块网卡两到网桥上

dhcpcd br0
给网桥获得ip

现在有个疑问:eth0 tap0 的地址如何分配,难道是promisc模式,就会自动分配了

到现在为止,网桥设置好了,虚拟网卡也好了,启动vbox
cmd ipconfig 产看,虚拟机的网卡是有ip地址的,看来是路由器分配的,但是地址和网桥的不同,现在ifconfig 只能看到br0的ip地址了,eth0的ip地址,还是,通过虚拟机局域网工具得到的  :daniu:
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表