安装和配置控制端
配置自服务-网络选项2:自服务网络(NAT)
安装服务包
# yum install openstack-neutron openstack-neutron-ml2 \
openstack-neutron-linuxbridge ebtables
配置服务组件
编辑/etc/neutron/neutron.conf 文件并完成如下操作:
在[DEFAULT]部分,启用Modular Layer 2 (ML2)插件,路由服务和重叠的IP地址:
在[DEFAULT]部分,配置RabbitMQ消息队列访问权限:
在 “[DEFAULT]” 和 “[keystone_authtoken]” 部分,配置认证服务访问:
在[DEFAULT]和[nova]部分,配置网络服务来通知计算节点的网络拓扑变化:
在 [oslo_concurrency] 部分,配置锁路径:
[DEFAULT]
**auth_strategy = keystone**
**core_plugin = ml2**
**service_plugins = router** #扩展路由功能
**allow_overlapping_ips = True** # 允许不同用户创建相同网段
**notify_nova_on_port_status_changes = true**
**notify_nova_on_port_data_changes = true**
**transport_url = rabbit://openstack:123456@192.168.7.104**
**rpc_backend = rabbit**
[database]
connection = mysql+pymysql://neutron:neutron123@vm2-haproxy-keep1.martin.com/neutron
**[keystone_authtoken]
auth_uri = http://vm2-haproxy-keep1.martin.com:5000
auth_url = http://vm2-haproxy-keep1.martin.com:35357
memcached_servers = vm2-haproxy-keep1.martin.com:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = neutron**
**[nova]
auth_url = http://vm2-haproxy-keep1.martin.com:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = nova**
**[oslo_concurrency]
lock_path = /var/lib/neutron/tmp**
配置 Modular Layer 2 (ML2) 插件
编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件并完成以下操作:
在[ml2]部分,启用flat,VLAN以及VXLAN网络:启用VXLAN私有网络:启用Linuxbridge和l2机制(网络性能优化):启用端口安全扩展驱动:
在[ml2_type_flat]部分,配置公共虚拟网络为flat网络:为私有网络配置VXLAN网络识别的网络范围:
在 [securitygroup]部分,启用 ipset 增加安全组的方便性:
[ml2]
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = linuxbridge,l2population
extension_drivers = port_security
[ml2_type_flat]
flat_networks = provider
[ml2_type_vxlan]
vni_ranges =1:10000
[securitygroup]
enable_ipset = true
配置Linuxbridge代理
Linuxbridge代理为实例建立layer-2虚拟网络并且处理安全组规则。
编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件并且完成以下操作:
在[linux_bridge]部分,将公共虚拟网络和公共物理网络接口对应起来:
在 [securitygroup]部分,启用安全组并配置 Linux 桥接 iptables 防火墙驱动:
在[vxlan]部分,启用VXLAN覆盖网络,配置覆盖网络的物理网络接口的IP地址,启用layer-2 population:
[linux_bridge]
physical_interface_mappings = provider:eth2
[securitygroup]
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
enable_security_group = true
[vxlan]
enable_vxlan = true
local_ip = 192.168.7.101 #计算节点IP,提供vxlan功能。
l2_population = true
配置layer-3代理
The Layer-3 (L3) agent provides routing and NAT services for self-service virtual networks.
编辑/etc/neutron/l3_agent.ini文件并完成以下操作:
在[DEFAULT]部分,配置Linuxbridge接口驱动和外部网络网桥:
[DEFAULT]
# ...
interface_driver = linuxbridge
配置DHCP代理
The DHCP agent provides DHCP services for virtual networks.
编辑/etc/neutron/dhcp_agent.ini文件并完成下面的操作:
在[DEFAULT]部分,配置Linuxbridge驱动接口,DHCP驱动并启用隔离元数据,这样在公共网络上的实例就可以通过网络来访问元数据
[DEFAULT]
# ...
interface_driver = linuxbridge
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true
此处相当于自服务2网络配置完毕,可回到第一版openstack安装文档,转到配置元数据,根据自身环境,进行参数相应修改。
安装和配置计算节点
配置自服务-网络选项2:自服务网络(NAT)
配置Linuxbridge代理
Linuxbridge代理为实例建立layer-2虚拟网络并且处理安全组规则。
编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件并且完成以下操作:
在[linux_bridge]部分,将公共虚拟网络和公共物理网络接口对应起来:
在[vxlan]部分,启用VXLAN覆盖网络,配置覆盖网络的物理网络接口的IP地址,启用layer-2 population:
在 [securitygroup]部分,启用安全组并配置 Linux 桥接 iptables 防火墙驱动:
[linux_bridge]
physical_interface_mappings = provider:eth2
[securitygroup]
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
enable_security_group = true
[vxlan]
enable_vxlan = true
local_ip = 192.168.7.105 #计算节点管理IP地址。
l2_population = true
启动一个实例:
创建虚拟网络
创建自服务网络(demo-net)
创建网络:
首先修改/etc/neutron/plugins/ml2/linuxbridge_agent.ini配置文件,添加提供网络连接的物理网卡,内容如下:
[root@vm1-controller1 ~]# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
physical_interface_mappings = provider:eth2 #(也可做内外网卡,如‘internal:eth0,external:eth2’)
修改/etc/neutron/plugins/ml2/ml2_conf.ini配置文件,添加内外网名称,内容如下:
[root@vm1-controller1 ~]# vim /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2_type_flat]
flat_networks = provider #(也可做双网卡,逗号隔开,如:‘internal,external’)
重启neutron各服务:
[root@vm1-controller1 ~]# bash scripts/neutron_restart.sh
创建网络:桥接和仅主机模式
创建声明为share的external网络,提供服务的物理网卡名称为provider,网络类型是flat的网络名称为external-net的网络。
[root@vm1-controller1 ~]# source scripts/admin.sh
[root@vm1-controller1 ~]# openstack network create --share --external \
--provider-physical-network provider \
--provider-network-type flat external-net
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | |
| created_at | 2019-06-24T05:42:25Z |
| description | |
| dns_domain | None |
| id | c9e27558-8125-40e0-a55e-28bc453e2fc0 |
| ipv4_address_scope | None |
| ipv6_address_scope | None |
| is_default | False |
| mtu | 1500 |
| name | external-net |
| port_security_enabled | True |
| project_id | 604257738d254dd6a0dafc91c962b6bf |
| provider:network_type | flat |
| provider:physical_network | provider |
| provider:segmentation_id | None |
| qos_policy_id | None |
| revision_number | 4 |
| router:external | External |
| segments | None |
| shared | True |
| status | ACTIVE |
| subnets | |
| updated_at | 2019-06-24T05:42:25Z |
+---------------------------+--------------------------------------+
在external-net网络上创建一个external-sub子网,指定桥接DHCP分配起始IP地址,结束IP地址,dnsIP地址,网关地址,CIDR子网。
[root@vm1-controller1 ~]# openstack subnet create --network external-net \
--allocation-pool start=192.168.7.120,end=192.168.7.130 \
--dns-nameserver 202.106.0.20 --gateway 192.168.7.254 \
--subnet-range 192.168.0.0/21 external-sub
+-------------------+--------------------------------------+
| Field | Value |
+-------------------+--------------------------------------+
| allocation_pools | 192.168.7.120-192.168.7.130 |
| cidr | 192.168.0.0/21 |
| created_at | 2019-06-24T06:12:07Z |
| description | |
| dns_nameservers | 202.106.0.20 |
| enable_dhcp | True |
| gateway_ip | 192.168.7.254 |
| host_routes | |
| id | d127cfe1-9c6f-4c7f-8263-8f9b10590779 |
| ip_version | 4 |
| ipv6_address_mode | None |
| ipv6_ra_mode | None |
| name | external-sub |
| network_id | c9e27558-8125-40e0-a55e-28bc453e2fc0 |
| project_id | 604257738d254dd6a0dafc91c962b6bf |
| revision_number | 2 |
| segment_id | None |
| service_types | |
| subnetpool_id | None |
| updated_at | 2019-06-24T06:12:07Z |
+-------------------+--------------------------------------+
自服务网络
创建网络:(demo-net)
# source scripts/demo.sh
# openstack network create demo-net
Created a new network:
+-------------------------+--------------------------------------+
| Field | Value |
+-------------------------+--------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | |
| created_at | 2019-06-24T06:12:07Z |
| description | |
| headers | |
| id | 7c6f9b37-76b4-463e-98d8-27e5686ed083 |
| ipv4_address_scope | None |
| ipv6_address_scope | None |
| mtu | 1450 |
| name | demo-net |
| port_security_enabled | True |
| project_id | 3828e7c22c5546e585f27b9eb5453788 |
| project_id | 3828e7c22c5546e585f27b9eb5453788 |
| revision_number | 3 |
| router:external | Internal |
| shared | False |
| status | ACTIVE |
| subnets | |
| tags | [] |
| updated_at | 2019-06-24T06:12:07Z |
+-------------------------+--------------------------------------+
非特权用户一般不能在这个命令制定更多参数。服务会自动从下面的文件中的信息选择参数:
[ml2]
tenant_network_types = vxlan
[ml2_type_vxlan]
vni_ranges = 1:1000
在网络上创建一个子网:(demo-sub)
自服务网络使用10.20.0.0/16 网关10.20.0.1。DHCP服务负责为每个实例从10.20.0.2 到10.20.255.254中分配IP地址。所有实例使用202.106.0.20作为DNS。
# source scripts/demo.sh
# openstack subnet create --network demo-net \
--dns-nameserver 202.106.0.20 --gateway 10.20.0.1 \
--subnet-range 10.20.0.0/16 demo-subnet
Created a new subnet:
+-------------------+--------------------------------------+
| Field | Value |
+-------------------+--------------------------------------+
| allocation_pools | 10.20.0.2-10.20.255.254 |
| cidr | 10.20.0.0/16 |
| created_at | 2019-06-24T06:12:07Z |
| description | |
| dns_nameservers | 202.106.0.20 |
| enable_dhcp | True |
| gateway_ip | 10.20.0.1 |
| headers | |
| host_routes | |
| id | 5c37348e-e7da-439b-8c23-2af47d93aee5 |
| ip_version | 4 |
| ipv6_address_mode | None |
| ipv6_ra_mode | None |
| name | demo-subnet |
| network_id | b9273876-5946-4f02-a4da-838224a144e7 |
| project_id | 3828e7c22c5546e585f27b9eb5453788 |
| project_id | 3828e7c22c5546e585f27b9eb5453788 |
| revision_number | 2 |
| service_types | [] |
| subnetpool_id | None |
| updated_at | 2019-06-24T06:12:07Z |
+-------------------+--------------------------------------+
创建路由器
私有网络通过虚拟路由来连接到公有网络,以双向NAT最为典型。每个路由包含至少一个连接到私有网络的接口以及一个连接到公有网络的网关的接口
# source scripts/demo.sh
# openstack router create demo-router
Created a new router:
+-------------------------+--------------------------------------+
| Field | Value |
+-------------------------+--------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | |
| created_at | 2019-06-24T06:12:07Z |
| description | |
| external_gateway_info | null |
| flavor_id | None |
| headers | |
| id | 67324374-396a-4db6-9443-c70be167a42b |
| name | demo-router |
| project_id | 3828e7c22c5546e585f27b9eb5453788 |
| project_id | 3828e7c22c5546e585f27b9eb5453788 |
| revision_number | 2 |
| routes | |
| status | ACTIVE |
| updated_at | 2019-06-24T06:12:07Z |
+-------------------------+--------------------------------------+
给路由器添加一个私网子网的接口:
# source scripts/demo.sh
# neutron router-interface-add demo-router demo-subnet
Added interface bff6605d-824c-41f9-b744-21d128fc86e1 to demo-router demo-subnet.
给路由器设置公有网络的网关:
# source scripts/demo.sh
# neutron router-gateway-set demo-router external-net
Set gateway for demo-router external-net
验证操作
列出网络命名空间。你应该可以看到一个’ qrouter ‘命名空间和两个’qdhcp ‘ 命名空间
[root@vm1-controller1 ~]# source scripts/admin.sh
[root@vm1-controller1 ~]# ip netns
qdhcp-c9e27558-8125-40e0-a55e-28bc453e2fc0 (id: 3)
qdhcp-ee755b1a-f358-4394-aa2e-3da51080936f (id: 2)
qrouter-72513dcd-920b-4bb7-93d0-abb1c428eeaa (id: 0)
列出路由器上的端口来确定公网网关的IP 地址:
[root@vm1-controller1 ~]# neutron router-port-list demo-router
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
+--------------------------------------+------+----------------------------------+-------------------+---------------------------------------+
| id | name | tenant_id | mac_address | fixed_ips |
+--------------------------------------+------+----------------------------------+-------------------+---------------------------------------+
| 4e9e883e-f7ac-4ebc-bdec-48f888cdaf54 | | 4df85cc0d51848f6948f48f7baa09ce9 | fa:16:3e:94:50:93 | {"subnet_id": "f9760fa7-5c5b-4354-8f5 |
| | | | | 7-d01f5e329af1", "ip_address": |
| | | | | "10.20.0.1"} |
| 9a40e7fc-595e-444f-9c89-6fb1e8b20c8d | | | fa:16:3e:61:dc:e9 | {"subnet_id": "d127cfe1-9c6f- |
| | | | | 4c7f-8263-8f9b10590779", |
| | | | | "ip_address": "192.168.7.128"} |
+--------------------------------------+------+----------------------------------+-------------------+---------------------------------------+
从控制节点或任意公共物理网络上的节点Ping这个IP地址:
[root@vm1-controller1 ~]# ping -c 4 192.168.7.128
PING 192.168.7.128 (192.168.7.128) 56(84) bytes of data.
64 bytes from 192.168.7.128: icmp_seq=1 ttl=64 time=0.313 ms
64 bytes from 192.168.7.128: icmp_seq=2 ttl=64 time=0.189 ms
64 bytes from 192.168.7.128: icmp_seq=3 ttl=64 time=0.227 ms
64 bytes from 192.168.7.128: icmp_seq=4 ttl=64 time=0.187 ms
--- 192.168.7.128 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.187/0.229/0.313/0.051 ms
启动一个实例
在私有网络上创建实例
确定实例选项
启动一台实例,至少指定一个类型、镜像名称、网络、安全组、密钥和实例名称。
在控制节点上,获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
[root@vm1-controller1 ~]# bash scripts/demo.sh
一个实例指定了虚拟机资源的大致分配,包括处理器、内存和存储。列出可用类型:
[root@vm1-controller1 ~]# openstack flavor list
+--------------------------------------+---------+-----+------+-----------+-------+-----------+
| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |
+--------------------------------------+---------+-----+------+-----------+-------+-----------+
| 0 | m1.nano | 64 | 1 | 0 | 1 | True |
| 0da7cd4e-fc54-4cdc-a99e-377a59c71de1 | 123 | 512 | 10 | 0 | 1 | True |
+--------------------------------------+---------+-----+------+-----------+-------+-----------+
列出可用镜像:
[root@vm1-controller1 ~]# openstack image list
+--------------------------------------+--------------+--------+
| ID | Name | Status |
+--------------------------------------+--------------+--------+
| e6b49b59-a598-4688-aa88-05c0b1eaacb2 | cirros | active |
| f0cf6647-d15f-45d6-a688-83bbb3a285fb | cirros-0.3.4 | active |
+--------------------------------------+--------------+--------+
列出可用网络:
[root@vm1-controller1 ~]# openstack network list
+--------------------------------------+--------------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+--------------+--------------------------------------+
| c9e27558-8125-40e0-a55e-28bc453e2fc0 | external-net | d127cfe1-9c6f-4c7f-8263-8f9b10590779 |
| ee755b1a-f358-4394-aa2e-3da51080936f | demo-net | f9760fa7-5c5b-4354-8f57-d01f5e329af1 |
+--------------------------------------+--------------+--------------------------------------+
列出可用的安全组:
[root@vm1-controller1 ~]# openstack security group list
+--------------------------------------+---------+------------------------+----------------------------------+
| ID | Name | Description | Project |
+--------------------------------------+---------+------------------------+----------------------------------+
| d3175d87-177b-4b5b-8883-cf99ba1175af | default | Default security group | 4df85cc0d51848f6948f48f7baa09ce9 |
+--------------------------------------+---------+------------------------+----------------------------------+
#可使用此命令删除安全组:
[root@vm1-controller1 ~]# openstack security delete d3175d87-177b-4b5b-8883-cf99ba1175af
启动云主机
启动实例:
创建一个实例名称为martin-vm1,使用模板m1.nano,镜像cirros-0.3.4,网卡为ID##,安全组规则默认default,基于mykey认证。
[root@vm1-controller1 ~]# openstack server create --flavor m1.nano --image cirros-0.3.4 \
--nic net-id=a91d6aaa-0e2f-426d-9d55-50c2eb04c420 --security-group default \
--key-name mykey demo-vm1
+--------------------------------------+-----------------------------------------------+
| Property | Value |
+--------------------------------------+-----------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | nova |
| OS-EXT-STS:power_state | 0 |
| OS-EXT-STS:task_state | scheduling |
| OS-EXT-STS:vm_state | building |
| OS-SRV-USG:launched_at | - |
| OS-SRV-USG:terminated_at | - |
| accessIPv4 | |
| accessIPv6 | |
| adminPass | hdF4LMQqC5PB |
| config_drive | |
| created | 2019-06-24T06:12:07Z |
| flavor | m1.nano |
| hostId | |
| id | 181c52ba-aebc-4c32-a97d-2e8e82e4eaaf |
| image | cirros-0.3.4 (38047887-61a7-41ea-9b49-27987d5e8bb9) |
| key_name | mykey |
| metadata | {} |
| name | external-net |
| os-extended-volumes:volumes_attached | [] |
| progress | 0 |
| security_groups | default |
| status | BUILD |
| tenant_id | f5b2ccaa75ac413591f12fcaa096aa5c |
| updated | 2019-06-24T06:12:07Z |
| user_id | 684286a9079845359882afc3aa5011fb |
+--------------------------------------+-----------------------------------------------+
检查实例的状态:
[root@vm1-controller1 ~]# openstack server list
+--------------------------------------+----------+--------+-----------------------------------+--------------+
| ID | Name | Status | Networks | Image Name |
+--------------------------------------+----------+--------+-----------------------------------+--------------+
| f2bed59e-648c-4114-b261-5c0e0191a13d | demo-vm1 | ACTIVE | demo-net=10.20.0.6, 192.168.7.122 | cirros-0.3.4 |
+--------------------------------------+----------+--------+-----------------------------------+--------------+
使用虚拟控制台访问实例
[root@vm1-controller1 ~]# openstack console url show demo-vm1
+-------+---------------------------------------------------------------------------------------------------+
| Field | Value |
+-------+---------------------------------------------------------------------------------------------------+
| type | novnc |
| url | http://vm2-haproxy-keep1.martin.com:6080/vnc_auto.html?token=896bd820-7d65-43c3-aa58-d1c7951846da |
+-------+---------------------------------------------------------------------------------------------------+
验证能否ping通私有网络的网关:
$ ping -c 4 10.20.0.1
PING 10.20.0.1 (10.20.0.1): 56 data bytes
64 bytes from 10.20.0.1: seq=0 ttl=64 time=2.068 ms
64 bytes from 10.20.0.1: seq=1 ttl=64 time=1.392 ms
64 bytes from 10.20.0.1: seq=2 ttl=64 time=3.023 ms
64 bytes from 10.20.0.1: seq=3 ttl=64 time=2.429 ms
--- 10.20.0.1 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 1.392/2.228/3.023 ms
验证能否连接到互联网
$ ping -c 4 www.baidu.com
PING www.baidu.com (61.135.169.125): 56 data bytes
64 bytes from 61.135.169.125: seq=0 ttl=127 time=4.824 ms
64 bytes from 61.135.169.125: seq=1 ttl=127 time=6.136 ms
64 bytes from 61.135.169.125: seq=2 ttl=127 time=4.513 ms
64 bytes from 61.135.169.125: seq=3 ttl=127 time=7.932 ms
--- www.baidu.com ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 4.513/5.851/7.932 ms
验证能否远程访问实例
在公有网络上创建浮动IP地址池:
[root@vm1-controller1 ~]# openstack floating ip create provider
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| created_at | 2019-06-24T06:12:07Z |
| description | |
| fixed_ip_address | None |
| floating_ip_address | 192.168.7.122 |
| floating_network_id | b5b6993c-ddf9-40e7-91d0-86806a42edb8 |
| headers | |
| id | 88b4d06a-d794-4406-affd-6ffa2bcf1e2a |
| port_id | None |
| project_id | ed0b60bf607743088218b0a533d5943f |
| revision_number | 1 |
| router_id | None |
| status | DOWN |
| updated_at | 2019-06-24T06:12:07Z |
+---------------------+--------------------------------------+
为实例分配浮动IP:
[root@vm1-controller1 ~]# openstack server add floating ip demp-vm1 192.168.7.122
检查这个浮动 IP 地址的状态:
[root@vm1-controller1 ~]# openstack server list
+--------------------------------------+----------+--------+-----------------------------------+--------------+
| ID | Name | Status | Networks | Image Name |
+--------------------------------------+----------+--------+-----------------------------------+--------------+
| f2bed59e-648c-4114-b261-5c0e0191a13d | demo-vm1 | ACTIVE | demo-net=10.20.0.6, 192.168.7.122 | cirros-0.3.4 |
+--------------------------------------+----------+--------+-----------------------------------+--------------+
验证控制节点或者其他公有网络上的主机通过浮动IP地址ping通实例:(需要设置安全组规则icmp,佛则不通)
# 未添加安全规则前:
[root@vm1-controller1 ~]# ping -c 4 192.168.7.122
PING 192.168.7.122 (192.168.7.122) 56(84) bytes of data.
--- 192.168.7.122 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3000ms
# 添加安全规则后:
[root@vm1-controller1 ~]# ping -c 4 192.168.7.122
PING 192.168.7.122 (192.168.7.122) 56(84) bytes of data.
64 bytes from 192.168.7.122: icmp_seq=1 ttl=63 time=2.26 ms
64 bytes from 192.168.7.122: icmp_seq=2 ttl=63 time=2.90 ms
64 bytes from 192.168.7.122: icmp_seq=3 ttl=63 time=2.83 ms
64 bytes from 192.168.7.122: icmp_seq=4 ttl=63 time=1.44 ms
--- 192.168.7.122 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 1.448/2.362/2.903/0.583 ms
在控制节点或其他公有网络上的主机使用 SSH远程访问实例:
[root@vm1-controller1 ~]# ssh cirros@192.168.7.122
The authenticity of host '192.168.7.122 (192.168.7.122)' can't be established.
RSA key fingerprint is ed:05:e9:e7:52:a0:ff:83:68:94:c7:d1:f2:f8:e2:e9.
Are you sure you want to continue connecting (yes/no)? yes
$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr FA:16:3E:4B:57:AB
inet addr:10.20.0.6 Bcast:10.20.255.255 Mask:255.255.0.0
inet6 addr: fe80::f816:3eff:fe4b:57ab/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1450 Metric:1
RX packets:429 errors:0 dropped:0 overruns:0 frame:0
TX packets:356 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:49922 (48.7 KiB) TX bytes:41910 (40.9 KiB)
自定义windows 2008镜像:
主要是在创建虚拟机的时候指定使用总线、存储及网络设备使用virtio驱动
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/
# qemu-img create -f qcow2 /var/lib/libvirt/images/Windows-2008_r2-x86_64.qcow2 200G
# 安装时调用.vfd驱动软盘。
# virt-install --virt-type kvm --name Win_2008_r2-x86_64 \
--ram 3072 --vcpus=2 --os-type=windows \
--cdrom=/usr/local/src/windows_server_2008_r2.iso \
--disk path=/var/lib/libvirt/images/Windows-2008_r2-x86_64.qcow2,format=qcow2,bus=virtio \
--disk path=/usr/local/src/virtio-win-0.1.141_amd64.vfd,device=floppy --network bridge=br0,model=virtio --graphics vnc,listen=0.0.0.0 \
--noautoconsole
virt-manager启动安装程序:


分别加载网卡驱动和硬盘驱动

官方制作好的qcow2镜像,自行改造即可生产环境使用。名称里为日期,非版本号
