Kickstart/PXE failing to connect to repo via HTTP after loading kernel/initrd.img

Hi Folks,

I’m somewhat scratching my head with this one. I’ve setup a pxe boot lab environment using libvirt (isolated network), and setup a pxe server following the steps in [1].

When booting a new machine over the network I get my IP and PXE boot menu, but the installer is failing to reach the http repo:

I checked my config, disabled firewalld, and still have the issues. I checked that I can access this url over the network without any issues.

Any clues would be greatly appreciated.

References:

  1. Chapter 14. Preparing to install from the network using PXE Red Hat Enterprise Linux 8 | Red Hat Customer Portal

well you’re getting connection refused to port 80 on 192.168.100.1 so to me that says you have nothing listening on the http port.

when you say you’ve tested that, are you sure you’re testing to/from the correct network? and you’re sure you’ve tested http/80 not https/443 ?

Thanks for getting back to me @sej7278, it must be something related to that but I can’t seem to pinpoint it.

On the kickstart server port 80 is running on all interfaces, port 443 isn’t running at all,

[root@kickstart media]# ss -tulpen |grep :80
tcp   LISTEN 0      128                *:80              *:*    users:(("httpd",pid=21600,fd=4),("httpd",pid=20992,fd=4),("httpd",pid=20991,fd=4),("httpd",pid=20990,fd=4),("httpd",pid=20988,fd=4)) ino:8008624 sk:5 v6only:0 <->
[root@kickstart media]# ss -tulpen |grep :443
[root@kickstart media]# 

I have two interfaces:

[root@kickstart media]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:b7:62:04 brd ff:ff:ff:ff:ff:ff
3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:5e:18:aa brd ff:ff:ff:ff:ff:ff

enp7s0 is the one I have DHCP running on, and httpd works on that interface:

[root@kickstart media]# ip a |grep 192.168.100.1
    inet 192.168.100.1/24 brd 192.168.100.255 scope global noprefixroute enp7s0

Test curl on the same server, and on a different server (same response):

[root@kickstart media]# curl http://192.168.100.1/media/dvd/
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
 <head>
  <title>Index of /media/dvd</title>
 </head>
 <body>

I’ve also switched firewalld off, temporarily as I suspected it might be blocking traffic from a zone which it doesn’t trust (I’m not sure of this, I just suspected something like this might be the case).

I’m still scratching my head, I can access that url perfectly from another VM that I manually built on the same network.

I’m going to rebuild the environment from scratch and see if I missed anything.

“connection refused” means it can get to the ip but not the port, so i reckon you’ve got an extra vnic setup or something odd that’s giving that vm another 192.168.100.1 address to the one you think it’s connecting to - maybe the host’s bridge?

1 Like

I’m thinking this is exactly the problem, I just need to prove it. I’ll report back as soon as I have evidence.

Check the network. You also get curl(7) when no network is configured on the client.

1 Like

Thanks folks, it was to do with my virtual bridge!