openstack 虚拟机如何修改ip地址

本文介绍如何配置OpenStack虚拟机使用静态IP并实现与外部网络通信的方法。包括查找网卡ID、允许额外IP通过及数据库配置更改等步骤。
导读在日常开发和生产环境中经常需要将OpenStack虚拟机配置一个静态Ip,但配置完成后发现外面无法访问。原因是openstack每个端口默认只允许一个Ip的数据报文通过。下面介绍如何配置openstack使虚拟机静态IP地址能访问。

1、查找你要修改ip地址的网卡id,本文修改ip地址为192.168.111.11的网卡:

[root@node-1 ~]# neutron port-list

openstack 虚拟机如何修改ip地址openstack 虚拟机如何修改ip地址
2、允许ip地址为192.168.111.12通过

[root@node-1 ~]# neutron port-update 83cfe62e-b9bc-4b77-8938-10d8f45d836c --allowed-address-pairs type=dict list=true ip_address=192.168.111.12

openstack 虚拟机如何修改ip地址openstack 虚拟机如何修改ip地址
3、进入mysql数据库,修改数据

mysql> use neutron;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from ipallocations where port_id='83cfe62e-b9bc-4b77-8938-10d8f45d836c'; 该port_id是之前查找的网卡id
+--------------------------------------+----------------+--------------------------------------+--------------------------------------+
| port_id                              | ip_address     | subnet_id                            | network_id                           |
+--------------------------------------+----------------+--------------------------------------+--------------------------------------+
| 83cfe62e-b9bc-4b77-8938-10d8f45d836c | 192.168.111.11 | 17c87ec0-a4f6-4d55-9947-2e8c9c7f1b65 | 28fcbb79-629b-4031-9323-b6acfa620aac |
+--------------------------------------+----------------+--------------------------------------+--------------------------------------+
1 row in set (0.00 sec)

编辑port_id为 83cfe62e-b9bc-4b77-8938-10d8f45d836c 的ip地址为192.168.111.12

mysql> update ipallocations set ip_address='192.168.111.12'  where port_id='83cfe62e-b9bc-4b77-8938-10d8f45d836c';
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

查看一下port_id为83cfe62e-b9bc-4b77-8938-10d8f45d836c的地址是否变更了:
openstack 虚拟机如何修改ip地址openstack 虚拟机如何修改ip地址
4、进入虚拟机修改ip地址就可以和外网通信了

本文原创地址:http://www.linuxprobe.com/openstack-vm-ip.html

转载于:https://my.oschina.net/ssdlinux/blog/1560974

OpenStack中配置虚拟机实例的过程涉及多个组件的协作,包括计算服务(Nova)、镜像服务(Glance)、网络服务(Neutron)以及仪表盘(Horizon)等。以下是详细的配置指南: ### 创建和配置虚拟机实例的基本步骤 1. **准备镜像** 在创建虚拟机之前,需要确保已经上传了可用的操作系统镜像。常见的镜像格式包括QCOW2、RAW、VHD等。可以通过`glance`命令或通过Horizon界面上传镜像。例如: ```bash glance image-create --name "CentOS-7" --disk-format qcow2 --container-format bare < CentOS-7.qcow2 ``` 2. **创建密钥对(Key Pair)** 为了能够通过SSH访问虚拟机,需要先创建一个密钥对,并将其导入到OpenStack中。可以使用以下命令生成并添加密钥: ```bash ssh-keygen -t rsa -f ~/.ssh/openstack_key nova keypair-add --pub-key ~/.ssh/openstack_key.pub mykey ``` 3. **配置安全组(Security Group)** 安全组用于定义虚拟机的网络访问规则。默认情况下,所有入站流量都被阻止。需要添加允许SSH(端口22)、ICMP(ping)以及其他必要服务的规则。例如: ```bash nova secgroup-add-rule default tcp 22 22 0.0.0.0/0 nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0 ``` 4. **创建网络(Neutron)** 如果尚未配置网络,则需要先创建外部和内部网络,并设置子网和路由器。示例命令如下: ```bash neutron net-create external_network --router:external True --provider:network_type flat --provider:physical_network physnet1 neutron subnet-create external_network 203.0.113.0/24 --gateway 203.0.113.1 --allocation-pool start=203.0.113.100,end=203.0.113.200 --enable-dhcp False neutron net-create internal_network neutron subnet-create internal_network 192.168.1.0/24 --gateway 192.168.1.1 neutron router-create demo_router neutron router-interface-add demo_router internal_subnet_id neutron router-gateway-set demo_router external_network ``` 5. **启动虚拟机实例** 使用`nova boot`命令启动虚拟机,并指定镜像、Flavor、密钥对以及网络等参数。例如: ```bash nova boot --flavor m1.small --image CentOS-7 --key-name mykey --nic net-id=internal_network_id myinstance ``` 6. **分配浮动IP(Floating IP)** 为了让虚拟机可以从外部网络访问,需要为其分配一个浮动IP地址: ```bash nova floating-ip-create external_network nova add-floating-ip myinstance 203.0.113.101 ``` 7. **验证虚拟机状态和网络连通性** 使用以下命令查看虚拟机状态: ```bash nova list ``` 然后尝试从外部网络Ping该浮动IP地址,并使用SSH连接测试: ```bash ping 203.0.113.101 ssh -i ~/.ssh/openstack_key centos@203.0.113.101 ``` ### 常见问题与解决方法 - **虚拟机无法访问外部网络**:请检查是否已正确配置外部网桥(如`br-ex`),并确保主机网卡已绑定到该网桥[^2]。 - **无法SSH连接虚拟机**:请确认安全组规则是否允许SSH流量,并且密钥对是否正确配置。 - **虚拟机处于错误状态**:可查看Nova的日志文件(通常位于`/var/log/nova/`目录下)以排查具体原因。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值