kvm初体验之五:vm连接网络的两种方式:bridge和nat
1. 在安装vm时指定网络连接方式
1)bridge
virt-install --name vm1 --ram=1024 --vcpus=1 --disk path=/vm-images/vm1,size=2 --cdrom /root/iso/CentOS-6.6-x86_64-minimal.iso --network bridge:br0
2)nat
virt-install --name vm1 --ram=1024 --vcpus=1 --disk path=/vm-images/vm1,size=2 --cdrom /root/iso/CentOS-6.6-x86_64-minimal.iso --network network:default
若没有指定—network参数,默认为bridge方式
2. 在安装vm之后修改网络连接方式
修改vm网络连接方式之前先将vm关机,修改完成之后启动vm即可生效。
1)通过图形界面修改
用virt-manager打开vm的管理页面,如下图所示
nat:选择”Source
device”为Virtual
network 'default': NAT
bridge: 选择”Source
device”为Host
device eth0 (Bridge 'br0')

2)通过命令行修改
virsh edit vm1修改vm1的配置文件(vm的配置文件以xml形式存在,如vm1.xml)
<interface>选项用来指定vm的网络连接方式
nat:
|
<interface type='network'> <mac address='52:54:00:eb:d7:7d'/> <source network='default'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> |
bridge:
|
<interface type='bridge'> <mac address='52:54:00:eb:d7:7d'/> <source bridge='br0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> |
3. 新增virtual network
1)通过图形界面添加
virt-manager打开vm管理界面,选择Edit->Connection Details,在弹出的localhost Connection Details窗口的Virtual Networks选项卡中显示了当前已经存在virtual network。在host中安装了libvirt之后,会默认创建虚拟网络接口virbr0,它的forwarding方式为nat。

现在我们创建一个虚拟网络nat1,forwarding方式为nat
选择上图左框中的“+”

Forward

Forwad

Forwad

Forwad

Forwad

Finish.
Localhost Connection Details窗口中显示出了新增的nat1网络的信息。

将vm1的虚拟网络接口选为刚刚创建的nat1

将vm1先关机后启动
由下图可以看到,vm1获取到了nat1网络所配地址段中的地址。

2)通过命令行添加
参考:http://wiki.libvirt.org/page/Networking
virsh下的net-xxx命令用来管理虚拟网络
|
[root@tanghuimin thm]# virsh Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands 'quit' to quit virsh # net- net-autostart net-define net-dumpxml net-info net-name net-undefine net-uuid net-create net-destroy net-edit net-list net-start net-update |
net-list –all列出当前已经存在的virtual
network
|
virsh # net-list --all Name State Autostart Persistent -------------------------------------------------- default active yes yes nat1 active yes yes |
virtual network的配置文件同样是以xml的形式存在,如nat1.xml
|
[root@tanghuimin thm]# find / -name "nat1.xml" /etc/libvirt/qemu/networks/nat1.xml /etc/libvirt/qemu/networks/autostart/nat1.xml /var/lib/libvirt/network/nat1.xml |
以default网络的配置为模板创建虚拟网络nat2的配置文件
|
[root@tanghuimin thm]# virsh net-dumpxml default > |
修改nat2.xml中参数使与已存在的虚拟网络不重合。
|
<network> <name>nat2</name> <uuid>d8d274ff-fe1f-4e88-94f9-222c1ae11c69</uuid> <forward mode='nat'/> <bridge name='virbr2' stp='on' delay='0' /> <mac address='52:54:00:25:90:C2'/> <ip address='192.168.101.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.101.2' end='192.168.101.254' /> </dhcp> </ip> </network> |
net-define从xml文件定义虚拟网络
|
virsh # net-list --all Name State Autostart Persistent -------------------------------------------------- default active yes yes nat1 active yes yes virsh # net-define /etc/libvirt/qemu/networks/nat2.xml Network nat2 defined from /etc/libvirt/qemu/networks/nat2.xml virsh # net-list --all Name State Autostart Persistent -------------------------------------------------- default active yes yes nat1 active yes yes nat2 inactive no yes |
将nat2设为自启动,并启动nat2
|
virsh # net-autostart nat2 Network nat2 marked as autostarted virsh # net-start nat2 Network nat2 started virsh # net-list --all Name State Autostart Persistent -------------------------------------------------- default active yes yes nat1 active yes yes nat2 active yes yes |
将vm1的虚拟网络接口选为刚刚创建的nat2
|
virsh edit vm1 |
|
...... ...... <interface type='network'> <mac address='52:54:00:eb:d7:7d'/> <source network='nat2'/> <address type='pci' domain='0x0000' bus='0x00' </interface> ...... ...... |
将vm1先关机后启动
由下图可以看到,vm1获取到了nat2网络所配地址段中的地址。
|
[root@localhost ~]# ifconfig eth0 Link encap:Ethernet HWaddr 52:54:00:EB:D7:7D inet addr:192.168.101.21 Bcast:192.168.101.255 inet6 addr: fe80::5054:ff:feeb:d77d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:12 errors:0 dropped:0 overruns:0 frame:0 TX packets:16 errors:0 dropped:0 overruns:0 collisions:0 txqueuelen:1000 RX bytes:1198 (1.1 KiB) TX bytes:2178 (2.1 KiB) Interrupt:11 Base address:0x8000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) [root@localhost ~]# ping 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. 64 bytes from 192.168.1.1: icmp_seq=1 ttl=63 time=5.53 ms # --- 192.168.1.1 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 926ms rtt min/avg/max/mdev = 5.531/5.531/5.531/0.000 ms |
kvm初体验之五:vm连接网络的两种方式:bridge和nat的更多相关文章
- ADB连接手机的两种方式(usb数据线连接和wifi连接)
ADB(Android Debug Bridge)安卓测试桥,它是连接电脑开发端和安卓设备的桥梁,这个安卓设备可以是真实的安卓手机或者平板,也可以是虚拟的安卓模拟器, 这里介绍ADB连接手机的两种 ...
- VMware虚拟机直连物理网络的两种方式
VMware虚拟机直连物理网络的两种方式 使用VMware构建虚拟机,通常虚拟机都使用NAT模式.这时,虚拟机有独立的网段.使用NAT模式,虚拟机之间数据都通过虚拟网络传输,不会影响实体机所在的实 ...
- 利用adb查看手机设备ip和连接手机的两种方式
电脑安装adb(查看菜鸟adb教程) [cmd]->输入adb devices (设置了path,否则需要 ./路径/adb devices)如图: 查看ip两种方法(可能有更多,目前我还没看到 ...
- 网络协议 finally{ return问题 注入问题 jdbc注册驱动问题 PreparedStatement 连接池目的 1.2.1DBCP连接池 C3P0连接池 MYSQL两种方式进行实物管理 JDBC事务 DBUtils事务 ThreadLocal 事务特性 并发访问 隔离级别
1.1.1 API详解:注册驱动 DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用 原因有2个: >导致驱动被注册2 ...
- adb连接手机的两种方式
adb连接手机进行调试有两种方式,一种使用USB线,一种使用无线WiFi. 第一种 使用USB线连接 1. 在手机上启用USB调试 2. CMD窗口输入adb devices,此时可以看到自己的设备 ...
- Java连接Neo4j的两种方式
1.Neo4j数据库的两种方式 Neo4j可以以两种方式运行: Java应用程序中的嵌入式数据库 通过REST的独立服务器 不管哪一种方式,这个选择不会影响查询和使用数据库的方式. 它是由应用程序的性 ...
- C++连接mysql的两种方式(ADO连接和mysql api连接)
一.ADO连接mysql 1.安装mysql-5.5.20-win32.msi和mysql-connector-odbc-5.3.4-win32.msi(一般两个安装程序要匹配,否则可能连接不上) ...
- 配置Java连接池的两种方式:tomcat方式以及spring方式
1. tomcat方式:在context.xml配置连接池,然后在web.xml中写配置代码(也能够在server.xml文件里配置连接池).这两种方法的差别是:在tomcat6版本号及以上中cont ...
- php7 连接 mysql 的两种方式
PHP 5 的使用者可以使用 MySQL extension,mysqli 和 PDO_MYSQL .php 7移除了mysql extension,只剩下后面两种选择.这份文档解释了每个API 的术 ...
随机推荐
- iOS开发中地图与定位
不管是QQ还是微信的移动client都少不了定位功能,之前在微信demo中没有加入定位功能,今天就写个定位的小demo来了解一下定位和地图的东西. 地图和定位看上去是挺高大上一东西.其有使用方法比Ta ...
- linux 查找并操作
find -depth 1 -name 'aa*' | xargs tar -cvf aa.tar 这个命令将为查找当前目录下的所有已aa开头的文件,然后将所有结果"执行打包",打 ...
- vue Object.freeze() 优化
参考自:https://segmentfault.com/a/1190000006191558 Object.freeze()是ES5新增的特性,可以冻结一个对象,防止对象被修改. vue 1.0.1 ...
- VELT-0.1.5开发:在VS2013下进行python开发
快乐虾 http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651) 欢迎转载,但请保留作者信息 本文仅适用于vs20 ...
- 【Python】读取cvs文件报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb1 in position 6: invalid start byte
现在有文件data.csv 文件编码格式为:ANSI data.csv 1|1|1|北京市 2|1|2|天津市 3|1|3|上海市 4|1|4|重庆市 5|1|5|石家庄市 6|2|5|唐山市 7|3 ...
- websocket-client connection( Long-lived )
参考:https://pypi.python.org/pypi/websocket-client/ import websocket import thread import time def on_ ...
- Android应用开发:网络工具——Volley(一)
引言 网络一直是我个人的盲点,前一阵子抽空学习了一下Volley网络工具的用法,也透过源代码进行了进一步的学习,有一些心得想分享出来.在Android开发中,成熟的网络工具不少,Android自带了H ...
- HP Vertica Analytics Platform 评測
1.vertica概念 面向数据分析的数据仓库系统解决方式 2.vertica关键特性 Ø 标准的SQL接口:能够利用已有的BI.ETL.Hadoop/MapReduce和OLTP环境 Ø 高可用 ...
- GIT简单使用——多人协作篇
多人协作的工作模式通常是这样:1.首先,可以试图用git push origin <branch-name>推送自己的修改:2.如果推送失败,则因为远程分支比你的本地更新,需要先用git ...
- Zabbix-20160817-高危SQL注入漏洞
漏洞概述: zabbix是一个开源的企业级性能监控解决方案.近日,zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,攻击者无需授权登陆即可登陆zabbix管理系 ...