apache / apache/cloudstack

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

オープン
#11,578 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
archive component:networking component:virtual-router type:improvement
主要言語
Java
スター
3.1k
フォーク
1.4k
平均マージ
6日 19時間
マージ済み PR(30日)
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-backed network に対してエントリがどのように nic_extra_dhcp_options に渡されるかを追跡します。その経路を VR の dnsmasq.conf の動作と比較し、PXE リクエストが指定された DHCP オプションを使用して、virtual router ではなく設定された server に到達することを確認します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
infrastructure, networking
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
38/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。