openstack 虚拟机网络规则设置

我的网络使用的是nova-network,单host,flatdhcp

同网段网络

在nova.conf里设置

allow_same_net_traffic=true

跨网段

默认情况下,跨网段是不通的,
环境如下:10.1.81.210上有WIN7虚拟机user1 10.1.81.215
从10.1.81.210 ping 10.1.81.215通
但从10.1.166.4 ping 10.1.81.215不通
需要
1. 添加规则组

nova secgroup-create open open\ all

2. 添加规则

nova secgroup-add-rule open icmp -1 255 0.0.0.0/0
nova secgroup-add-rule open tcp 1 65535 0.0.0.0/0
nova secgroup-add-rule open udp 1 65535 0.0.0.0/0

这三条规则基本上涵盖了所有的通信通道了
3. 设置虚拟机使用此规则

nova add-secgroup user1 open

重启下openstack-nova-network服务
查看iptables -nvL

Chain nova-compute-local (1 references)
 pkts bytes target     prot opt in     out     source               destination
65822 3016K nova-compute-inst-1  all  --  *      *       0.0.0.0/0            10.1.81.215

可以看到规则已经加入了
从VM里关闭WINDOWS的防火墙或者添加规则后,发现ping 已经通了

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
发出的红包

打赏作者

day walker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值