top of page
Recent Posts

How to configure PXE Server in Advanced Way

Updated: Oct 3, 2021

In my previous post, I have described how to start with the PXE server for the network operating system installation. See the below link, if missed out.

"How to configure PXE (Network Boot) installation Server on Red Hat Enterprise Linux 7"

Now I am going to add some more configuration in my existing setup based on my requirement:

  • PXE server has to configure multiple network interfaces during installation.

  • Need to have a default route as well as the static route via DHCP.

  • Could have a binding/teaming interface and so on.

Step:1 We need to do some necessary configuration changed in the DHCP server for a default route as well as the static route.

See my previous post "How to configure the DHCP server to distribute Static IP routes" to do that.

Note: Please make sure about the IP Address. I might use different IP Addresses in different scenarios.

Step:2 Need to change/add the configuration file (/var/lib/tftpboot/pxelinux.cfg/default) for the PXE server.

# vi /var/lib/tftpboot/pxelinux.cfg/default

::::::::::::: CUT SOME OUTPUT :::::::::::::
menu title ######## PXE Boot Menu ########  
label 1
menu label ^1) Install RHEL 7 1xETH
kernel rhcos/vmlinuz
append initrd=rhcos/initrd.img method= devfs=nomount

label 2
menu label ^1) Install RHEL 7 2xETH
kernel rhcos/vmlinuz
append initrd=rhcos/initrd.img ip=:::::eth0:dhcp ip= nameserver= method= devfs=nomount

label 3
menu label ^1) Install RHEL 7 3xETH,BOND0
kernel rhcos/vmlinuz
append initrd=rhcos/initrd.img bond=bond0:eth1,eth2:mode=802.3ad,lacp_rate=fast,miimon=100,xmit_hash_policy=layer2+3 ip=:::::eth0:dhcp ip= nameserver= method= devfs=nomount

label 4
menu label ^1) Install RHEL 7 3xETH,BOND0,VLAN
kernel rhcos/vmlinuz
append initrd=rhcos/initrd.img bond=bond0.150:eth1,eth2:mode=802.3ad,lacp_rate=fast,miimon=100,xmit_hash_policy=layer2+3 ip=:::::eth0:dhcp ip= vlan=bond0.150:bond0 nameserver= method= devfs=nomount

::::::::::::: CUT SOME OUTPUT :::::::::::::
Note: The ip option on the kernel command line: ip<client-IP-number>:[<server-id>]:<gateway-IP-number>:<netmask>:<client-hostname>:<interface>:{dhcp|dhcp6|auto6|on|any|none|off}

Step:3 To verify and boot the client systems with the PXE boot option.

We can select the installation method (1,2,3..) from the PXE Boot menu screen. And after that, we can proceed with the installation.

After the successful boot up the system with the PXE boot server, we can check the network configuration at the anaconda command line terminal.

If we select installation method 4 (e.g. 3xETH,BOND0,VLAN), Then the network configuration at the anaconda command line terminal will be:

Step:3 After the successful operation system installation, we can verify the post-installation network configuration.

I did log in to the system from my laptop to verify the persistent bond0 interface configuration.

# ssh abc@

Authorized users only. All activities may be monitored and reported.
abc@'s password: ********
Last login: Sat Jul 18 23:51:22 2019 from

Authorized users only. All activities may be monitored and reported.
$ sudo -i
[sudo] password for abc: ********

# cat /etc/sysconfig/network-scripts/ifcfg-bond0.150 
# Generated by dracut initrd
BONDING_OPTS="mode=802.3ad lacp_rate=fast miimon=100 xmit_hash_policy=layer2+3"

Troubleshooting: I have tested this configuration in my libvirt (KVM) virtualization lab and it's working fine. It may require some little bit of change based on your scenarios.

Let us know if we can help with our best effort basis. though we all are busy with our professional life.

Hope this document will help.

23 views0 comments

Recent Posts

See All
Log In to Connect With Members
View and follow other members, leave comments & more.
bottom of page