首页 > 代码库 > 在OpenStack里怎样配置Neutron,让虚拟机访问外网

在OpenStack里怎样配置Neutron,让虚拟机访问外网

http://blog.csdn.net/zhangli_perdue/article/details/50264681

OpenStack里虚机(或者叫instance)只有在分配floating IP后才能访问外网,那么需要怎样做配置才能达到目的呢?

 

1. 需要在网络节点上确定一个可以访问外网的物理网卡,这个网卡可以和管理网卡是一个。这里我们假定外网网卡和管理网卡是独立的,且外网网卡的名字叫做eth2。

 

2. 添加一个新的bridge br-ex,并将eth2作为port绑定到br-ex

[plain] view plain copy
 
  1. # ovs-vsctl add-br br-ex  
  2. # ovs-vsctl add-port br-ex eth2  

 

3. 创建/etc/sysconfig/network-scripts/ifcfg-eth2文件,并输入如下内容:

 

[plain] view plain copy
 
  1. TYPE=OVSPort  
  2. BOOTPROTO=none  
  3. DEVICETYPE=ovs  
  4. OVS_BRIDGE=br-ex  
  5. DEVICE=eth2  
  6. ONBOOT=yes  

 

 

4. 创建/etc/sysconfig/network-scripts/ifcfg-br-ex文件,并输入如下内容:

 

[plain] view plain copy
 
  1. TYPE=OVSBridge  
  2. BOOTPROTO=none  
  3. DEVICETYPE=ovs  
  4. NAME=br-ex  
  5. DEVICE=br-ex  
  6. ONBOOT=yes  

 

 

5. 重新启动网络服务让配置生效

 

[plain] view plain copy
 
  1. # systemctl restart network.service  

 

 

6. 用具有admin role的用户在Openstack Controller节点创建外网(external network)和相应子网,这里的外网是所谓的provider network,是不允许普通权限的租户创建的,普通的租户只能创建租户网络。注意"--router:external=true"选项表示这是一个外网,网络类型选的是flat(如果外网是VLAN,就选VLAN),子网的CIDR是192.168.100.0/24。

[plain] view plain copy
 
  1. # neutron net-create --provider:network_type flat --provider:physical_network default --router:external=true public  
  2. # neutron subnet-create public --name public_subnet --allocation-pool start=192.168.100.100,end=192.168.100.150 192.168.100.0/24  

创建完成后显示结果如下:

技术分享

 

7. 如果要让租户的虚机访问外网,还需要创建一个router,用普通租户用户创建router,命令如下:

 

[plain] view plain copy
 
  1. # neutron router-create router01  

 

 

8. 将租户的私有子网(private_sub)作为interface加入router01,并将外网(public)设置为网关:

[plain] view plain copy
 
  1. # neutron router-interface-add router01 private_sub  
  2. # neutron router-gateway-set router01 public  

 

9. 然后就可以为虚拟机分配floating IP了。分配完成后虚拟机就可以访问外网了。

 

[plain] view plain copy
 
  1. # neutron floatingip-create public  
  2. # neutron floatingip-list  

 

技术分享

 

[plain] view plain copy
 
    1. # neutron floatingip-associate e12a6c2b-fc5e-4448-a6bb-3047638b850e 164f410e-6961-422d-b256-0609bfe6e9ff  

在OpenStack里怎样配置Neutron,让虚拟机访问外网