MacVTap

原文:http://virt.kernelnewbies.org/MacVTap

 

目的
Macvtap是一个新的设备驱动程序旨在简化虚拟化桥接网络取代基于macvlan设备驱动模块的TUN / TAP桥驱动器的组合一个macvtap终点(endpoint)是一个字符设备,主要遵循的TUN / TAP ioctl接口,可以直接使用KVM/ qemu和其他支持TUN / TAP接口虚拟机管理程序。终点(endpoint)扩展现有网络接口,较低设备同一个以太网段,拥有自己的MAC地址通常情况下,这是用来使双方的客户机和主机直接显示的主机连接交换机上的

 

VEPA,Bridge、private mode

在macvlan中,任何macvtap设备可以在以上三种模式之一。定义在一个单一较低的设备macvtap端点之间的通信
1.Virtual以太网端口聚合器(VEPA)默认模式:相同的设备数据从一个端点到另一个端点被发送到外部交换机降低设备如果该交换机支持的发夹模式开始浏览送回对下位装置,并从那里到目标端点
今天大多数交换机不支持发夹模式所以能够交换以太网的两个端点虽然他们可能仍然能够使用TCP / IP路由器进行通信相邻的作为一台Linux主机可以被放入的/ sys/ class / net中的/ dev/ BRIF/端口/ hairpin_mode发夹模式这种模式是特别有趣,如果你要管理虚拟机网络交换机级的了解VEPA客人的交换机可以强制每个MAC地址过滤和带宽的限制而不知道在Linux主机
1.Bridge可以直接相互连接的所有端点两个端点在桥接模式下可以直接交换以太网帧无需通过外部桥接的往返是最有用的模式经典的开关设置客体通信性能的关键
二基于完整性,私人模式存在的行为就像一个发夹知道开关在没有一个VEPA模式端点即使当开关处于发夹模式一个私人端点永远不能在同一lowerdev任何其他端点通信

 

设置macvtap
创建一个macvtap接口使用的IP链路命令IPRoute2包中以同样的方式我们macvlanVETH接口配置
示例:

$ ip link add link eth1 name macvtap0 type macvtap
$ ip link set macvtap0 address 1a:46:0b:ca:bc:7b up
$ ip link show macvtap0
12: macvtap0@eth1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state UNKNOWN
    link/ether 1a:46:0b:ca:bc:7b brd ff:ff:ff:ff:ff:ff
相同时间由udev创建一个字符设备除非另有配置udev的名称装置/ dev/ tapn具有n个对应于指数的macvtap端点网络接口的数量在上述例子中'12' TUN / TAP不同字符设备只能代表一个单独的网络接口我们可以给用户或用户组,我们希望能够使用新的自来水的所有权端点配置的MAC地址是很重要的,因为使用这个地址在外部网络上客人是能够欺骗或改变地址必须配置使用相同的地址
 
Qemu中macvtap
的Qemu0.12直接支持macvtap所以我们(AB)使用的TUN / TAP的配置界面在接口上启动来宾上面的例子中,我们需要通过一个打开的文件描述符与qemu设备节点,并告诉它的MAC地址通常用于桥配置脚本必须被禁止。可以用来打开一个bash重定向字符设备的读/写模式把它作为文件描述符3
qemu -net nic,model=virtio,addr=1a:46:0b:ca:bc:7b -net tap,fd=3 3<>/dev/tap11
阅读更多

没有更多推荐了,返回首页