Bug#907805: syslinux.efi uses the TFTP server IP for the HTTP domain
Hi Marco,
On Sun, 2 Sep 2018 14:08:09 +0200
Marco d'Itri <md@linux.it> wrote:
> When providing to syslinux.efi an http URL in option 67:
>
> dhcp-option=option:bootfile-name,http://pxe.example.net/EFI/SYSLINUX/syslinux.efi
>
> then it will try to download the modules like ldlinux.e64, the
> configuration file and the payload by sending an HTTP request to the
> TFTP server address (with pxe.example.net as virtual host) instead of
> resolving pxe.example.net and using that IP as expected.
I checked the source code and found that efi network support was added
here:
http://repo.or.cz/syslinux.git/commit/fe283b78c973268f2d1f0309826ceeb5c9e8978d
The commit mentions in the TODO part that DNS resolve code is still
missing.
This still seems to be the case, since the pxe_dns function in efi/pxe.c
in the current HEAD
(http://repo.or.cz/syslinux.git/blob/HEAD:/efi/pxe.c, lines 38-49) will
`return 0` in all cases.
The connection to your TFTP server address is the fallback behavior
that's implemented for DNS resolve failures in core/fs/pxe/pxe.c
(http://repo.or.cz/syslinux.git/blob/HEAD:/core/fs/pxe/pxe.c, lines
251-256).
I will do a bit of testing and then forward your report to upstream.
Regards
Lukas
Reply to: