apache / apache/cloudstack

dhcpoptionsnetworklist parameter in "deployVirtualMachine" doesn't work with VR as provider

未关闭
#11,578 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
archive component:networking component:virtual-router type:improvement
主要语言
Java
星标
3.1k
派生
1.4k
平均合并
6 天 19 小时
30 天内合并 PR
32

描述

### problem

dhcpoptionsnetworklist parameter in "deployVirtualMachine" doesn't work with VR as provider

As a user/operator I want to boot my vm from a PXE server via dhcpoptionsnetworklist

### versions

ACS 4.20.x

### The steps to reproduce the bug

1. Launch a isolated or a shared network

2. Create a pxe server vm which acts like a TFTP server

For example, you can create a pxe template/iso from the following pxe

https://netboot.xyz/
https://github.com/ventoy/PXE/releases
https://canonical.com/maas

3. Register pxe iso

https://boot.ipxe.org/ipxe.iso

4. Launch vm via API with the ISO with dhcpoptionsnetworklist, by pointing the IP of the pxe server in the same network

```
deploy virtualmachine zoneid=193a5741-05c9-4fe3-84d3-29a869ba1528 serviceofferingid=551f20c3-83d5-4e4a-bc50-d1c10974da57 networkids=dd6fe1cb-3ffa-4c1f-8472-8b438b4a7f6c
dhcpoptionsnetworklist[0].networkid=dd6fe1cb-3ffa-4c1f-8472-8b438b4a7f6c dhcpoptionsnetworklist[0].dhcp:66=10.1.1.27 dhcpoptionsnetworklist[0].dhcp:67=pxelinux.0

```

5. Check the db and the details are stored
```

mysql> select * from nic_extra_dhcp_options;
+----+--------------------------------------+--------+------+------------+
| id | uuid | nic_id | code | value |
+----+--------------------------------------+--------+------+------------+
| 1 | 83af66c0-01f3-4033-a9ac-89c819cfe485 | 31 | 66 | 10.1.1.27 |
| 2 | 0c0ef9f5-3f28-45ed-8ed1-e2e3cb28cc49 | 31 | 67 | pxelinux.0 |
```

5. During the vm boot time the request still goes to the virtual router instead of the pxe server

HTTP://10.1.1.1/pxelinux.0 and fails to run

Workaround

Log in to the VR and add the following content

Comment the following lines in //etc/dnsmasq.conf

#enable-tftp
#tftp-root=/opt/tftpboot
#dhcp-boot=pxelinux.0

---

Add the following lines

dhcp-option=66,10.1.1.27
dhcp-option=67,pxelinux.0
dhcp-boot=pxelinux.0,,10.1.1.27

Restart the dnsmasq service

service dnsmasq restart

### What to do about it?

Currently dhcpoptionsnetworklist parameter may probably work with only NuageVsp plugin and not with VR

It would be great if we can support this for VR so that end user can boot from a pxe server

贡献指南

打开贡献指南

调研方向

首先跟踪 deployVirtualMachine API 对 dhcpoptionsnetworklist 的处理,以及对于由 VR 支持的网络,条目如何进入 nic_extra_dhcp_options。将这一路径与 VR dnsmasq.conf 的行为进行比较,并验证 PXE 请求是否使用所提供的 DHCP 选项,以及是否到达配置的服务器而不是虚拟路由器。

由索引模型根据 Issue 内容生成。

评估

技术栈
java
领域
infrastructure, networking
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
38/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。