kvm 虚拟网络

1. KVM虚拟化的四种简单网络模型介绍

  • 四种简单网络模型

    1、隔离模型:虚拟机之间组建网络,该模式无法与宿主机通信,无法与其他网络通信,相当于虚拟机只是连接到一台交换机上。
    2、路由模型:相当于虚拟机连接到一台路由器上,由路由器(物理网卡),统一转发,但是不会改变源地址。
    3、NAT模型:在路由模式中,会出现虚拟机可以访问其他主机,但是其他主机的报文无法到达虚拟机,而NAT模式则将源地址转换为路由器(物理网卡)地址,这样其他主机也知道报文来自那个主机,在docker环境中经常被使用。
    4、桥接模型:在宿主机中创建一张虚拟网卡作为宿主机的网卡,而物理网卡则作为交换机。
    

2. 网桥配置方法

  • 方法

    • nmcli

      # 增加两块网卡
      $ nmcli conn show
      $ nmcli conn delete '有线连接 1'
      $ nmcli conn delete '有线连接 2'
      # 增加连接配置
      # $ nmcli conn add con-name ens37 ifname ens37 type ethernet ipv4.method auto
      
      # 添加网桥
      $ nmcli connection add con-name br2 type bridge ifname br2
      
      # 桥接物理网卡
      $ nmcli conn add type bridge-slave con-name br2-ens37 ifname ens37 master br2
      $ nmcli conn up br2-ens37
      
      # 查看桥接信息
      $ brctl show
      
      # 指定网桥ip地址
      $ nmcli conn modify br2 ipv4.method manual ipv4.addresses 10.1.1.10/24
      $ nmcli conn up br2
      
    • brctl (需要安装bridge-utils包)

    • 1.添加网桥

      # 建立一个逻辑网段,名称为br0
      	brctl addbr br0 
         
      # 让ens33成为br0的一个端口 
      	brctl addif br0 ens33
      
    • 2.brctl命令对网桥的配置需要以文件形式保存下来,这样系统再次启动后所有配置仍能生效。

      [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
      TYPE="Ethernet"
      PROXY_METHOD="none"
      BROWSER_ONLY="no"
      BOOTPROTO="static" #不需要ip
      DEFROUTE="yes"
      IPV4_FAILURE_FATAL="no"
      IPV6INIT="yes"
      IPV6_AUTOCONF="yes"
      IPV6_DEFROUTE="yes"
      IPV6_FAILURE_FATAL="no"
      IPV6_ADDR_GEN_MODE="stable-privacy"
      NAME="ens33"
      UUID="b6666e18-1f7d-43ed-9287-d7996b945cef"
      DEVICE="ens33"
      ONBOOT="yes"
      BRIDGE=br0 #设置网桥
      
      #网桥配置文件
      [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0 
      DEVICE=br5
      TYPE=Bridge
      BOOTPROTO=static
      NAME=br5
      ONBOOT=yes
      IPADDR=192.168.119.140
      NETMASK=255.255.255.0
      GATEWAY=192.168.119.2
      

3. qemu-kvm支持的网络

1.基于NAT(NetworkAddressTranslation)的虚拟网络
2.基于网桥(Bridge)的虚拟网络
3.用户自定义的隔离的虚拟网络
4.直接分配网络设备(包括VT-d和SR-IOV)

4. 虚拟机的网卡:

1.RTL8139、e1000、.....
2.virtio

# 命令查看
$ /usr/libexec/qemu-kvm --net nic,model=?
	qemu: Supported NIC models: ne2k_pci,i82551,i82557b,i82559er,rtl8139,e1000,pcnet,virtio

5. iptables

# -t 表名
# -n 以数字形式显示规则。如果没有-n,规则中可能会出现anywhere,有了-n,它会变成0.0.0.0/0
# -A 在指定链的末尾添加(append)一条新的规则
# -D 删除(delete)指定链中的某一条规则,可以按规则序号和内容删除
# -I 在指定链中插入(insert)一条新的规则,默认在第一行添加
# -R 修改、替换(replace)指定链中的某一条规则,可以按规则序号和内容替换
# -L 列出(list)指定链中所有的规则进行查看
# -E 重命名用户定义的链,不改变链本身
# -F 清空(flush)
# -N 新建(new-chain)一条用户自己定义的规则链
# -X 删除指定表中用户自定义的规则链(delete-chain)
# -P 设置指定链的默认策略(policy)
# -Z 将所有表的所有链的字节和数据包计数器清零
# -v 查看规则表详细信息(verbose)的信息
# -V 查看版本(version)
# -h 获取帮助(help)
$ iptables -t nat -L

6. 用户自定义的隔离的虚拟网络

隔离模型:虚拟机之间组建网络,该模式无法与宿主机通信,无法与其他网络通信,相当于虚拟机只是连接到一台交换机上。
6.1 实现方式:
1、创建虚拟网桥br0
$ yum -y install bridge-utils
$ brctl addbr br0
$ ifconfig br0 up
$ brctl show
	bridge name bridge id STP enabled interfaces
	br0 8000.000000000000 no
2、编写一个网卡启动脚本
$ vi /opt/tools/qemu-ifup
$ cat /opt/tools/qemu-ifup
	
	#!/bin/bash
 
	BRIDGE=br0
	if [  -n $1 ];then
    		ip link set $1 up
    		sleep 2
    		brctl addif $BRIDGE $1
    		[ $? -eq 0 ] && exit 0 || exit 1
	else
    		echo -e "\033[1;31mYou must give an interface.\033[0m"
    		exit 3
	fi
3、使用qumu-kvm创建2台虚拟机
# 创建第一台名为centos5-1的kvm虚拟机:
$ qemu-kvm -name "centos5-1" -smp 1 -m 512 -drive file=/images/kvm/centos5.img,if=virtio,media=disk,cache=writeback -net nic,model=virtio,macaddr=00:0c:29:86:4e:1a -net tap,ifname=vnet0.0,script=/opt/tools/qemu-ifup
# 创建第二台名为centos5-2的kvm虚拟机:
$ qemu-kvm -name "centos5-2" -smp 1 -m 512 -drive file=/images/kvm/centos5_2.img,if=virtio,media=disk,cache=writeback -net nic,model=virtio,macaddr=00:0c:29:86:4e:6a -net tap,ifname=vnet0.1,script=/opt/tools/qemu-ifup
4、到宿主机上查看虚拟机的网卡后半段
5、登录虚拟机中进行查看
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值