Jason Matthews
2013-Nov-04 21:30 UTC
[syslinux] syslinux.efi pxeboot across multiple subnets
Hello, I am attempting to setup a PXE setup for a network using multiple subnets. The current layout has dhcp on one subnet (10.16.215.8/30), tftp on another (10.16.194.0/23), and the system to be installed on yet another subnet ( 10.16.233.0/24 [there's actually about 30 different subnets the system to be installed could be on]). When I have the system to be installed on the same subnet as the tftp server, everything works fine. The system loads the adapter's pxe, connects to dhcp, pulls an IP, downloads syslinux.efi from tftp server, starts sending requests for the config file, downloads pxelinux.cfg/default, loads the config, and starts installing (it's setup with timeout -1 and kickstart to automate complete install). When I put the system to be installed on a separate subnet as the tftp server, the request for the config file is never received. The system loads adapter's pxe, connects to dhcp, pulls an IP, downloads syslinux.efi from tftp server, then hangs. The tcpdump from the tftp server taken from server boot to hang plus waiting 5 minutes is posted at the bottom of this message. At first, I was thinking something in the routing structure was blocking tftp downloads from across the subnets, but if I use grub.efi, I see the requests and it downloads the efidefault file for grub. Using pxelinux.0 for legacy also works. Any ideas what could be blocking the tftp request for the config when using the different subnet? Any ideas on what I can try next to try and narrow down the communication issue? Thanks. Different subnet as tftp server: [root at orange test]# tcpdump -i bond0 port 69 -vv tcpdump: listening on bond0, link-type EN10MB (Ethernet), capture size 65535 bytes 12:19:58.575731 IP (tos 0x0, ttl 63, id 34438, offset 0, flags [none], proto UDP (17), length 78) 10.16.233.15.winpoplanmess > 10.16.195.178.tftp: [udp sum ok] 50 RRQ "sles113/syslinux.efi" octet tsize 0 blksize 1468 12:19:58.582689 IP (tos 0x0, ttl 63, id 34441, offset 0, flags [none], proto UDP (17), length 70) 10.16.233.15.c1222-acse > 10.16.195.178.tftp: [udp sum ok] 42 RRQ "sles113/syslinux.efi" octet blksize 1468 12:20:00.729468 IP (tos 0x0, ttl 63, id 34766, offset 0, flags [none], proto UDP (17), length 70) 10.16.233.15.resacommunity > 10.16.195.178.tftp: [udp sum ok] 42 RRQ "sles113/syslinux.efi" octet blksize 1468 ^C 3 packets captured 3 packets received by filter 0 packets dropped by kernel [root at orange test]# Same subnet as tftp server: [root at orange test]# tcpdump -i bond0 port 69 -vv tcpdump: listening on bond0, link-type EN10MB (Ethernet), capture size 65535 bytes 12:02:47.397890 IP (tos 0x0, ttl 64, id 15902, offset 0, flags [none], proto UDP (17), length 78) 10.16.195.136.sesi-lm > 10.16.195.178.tftp: [udp sum ok] 50 RRQ "sles113/syslinux.efi" octet tsize 0 blksize 1468 12:02:47.403277 IP (tos 0x0, ttl 64, id 15904, offset 0, flags [none], proto UDP (17), length 70) 10.16.195.136.houdini-lm > 10.16.195.178.tftp: [udp sum ok] 42 RRQ "sles113/syslinux.efi" octet blksize 1468 12:02:48.546291 IP (tos 0x0, ttl 64, id 16229, offset 0, flags [none], proto UDP (17), length 70) 10.16.195.136.xmsg > 10.16.195.178.tftp: [udp sum ok] 42 RRQ "sles113/syslinux.efi" octet blksize 1468 12:02:49.783532 IP (tos 0x0, ttl 64, id 16554, offset 0, flags [none], proto UDP (17), length 77) 10.16.195.136.fj-hdnet > 10.16.195.178.tftp: [udp sum ok] 49 RRQ "sles113/ldlinux.e64" octet tsize 0 blksize 1408 12:02:50.907721 IP (tos 0x0, ttl 64, id 16821, offset 0, flags [none], proto UDP (17), length 115) 10.16.195.136.h323gatedisc > 10.16.195.178.tftp: [udp sum ok] 87 RRQ "sles113/pxelinux.cfg/343ae9bc-e31f-e111-a358-b5532cb45845" octet tsize 0 blksize 1408 12:02:50.908895 IP (tos 0x0, ttl 64, id 16822, offset 0, flags [none], proto UDP (17), length 99) 10.16.195.136.h323gatestat > 10.16.195.178.tftp: [udp sum ok] 71 RRQ "sles113/pxelinux.cfg/01-5c-f3-fc-6e-42-a0" octet tsize 0 blksize 1408 12:02:50.910003 IP (tos 0x0, ttl 64, id 16823, offset 0, flags [none], proto UDP (17), length 87) 10.16.195.136.h323hostcall > 10.16.195.178.tftp: [udp sum ok] 59 RRQ "sles113/pxelinux.cfg/0A10C388" octet tsize 0 blksize 1408 12:02:50.911074 IP (tos 0x0, ttl 64, id 16824, offset 0, flags [none], proto UDP (17), length 86) 10.16.195.136.caicci > 10.16.195.178.tftp: [udp sum ok] 58 RRQ "sles113/pxelinux.cfg/0A10C38" octet tsize 0 blksize 1408 12:02:50.912134 IP (tos 0x0, ttl 64, id 16825, offset 0, flags [none], proto UDP (17), length 85) 10.16.195.136.hks-lm > 10.16.195.178.tftp: [udp sum ok] 57 RRQ "sles113/pxelinux.cfg/0A10C3" octet tsize 0 blksize 1408 12:02:50.913186 IP (tos 0x0, ttl 64, id 16826, offset 0, flags [none], proto UDP (17), length 84) 10.16.195.136.pptp > 10.16.195.178.tftp: [udp sum ok] 56 RRQ "sles113/pxelinux.cfg/0A10C" octet tsize 0 blksize 1408 12:02:50.914248 IP (tos 0x0, ttl 64, id 16827, offset 0, flags [none], proto UDP (17), length 83) 10.16.195.136.csbphonemaster > 10.16.195.178.tftp: [udp sum ok] 55 RRQ "sles113/pxelinux.cfg/0A10" octet tsize 0 blksize 1408 12:02:50.915312 IP (tos 0x0, ttl 64, id 16828, offset 0, flags [none], proto UDP (17), length 82) 10.16.195.136.iden-ralp > 10.16.195.178.tftp: [udp sum ok] 54 RRQ "sles113/pxelinux.cfg/0A1" octet tsize 0 blksize 1408 12:02:50.916381 IP (tos 0x0, ttl 64, id 16829, offset 0, flags [none], proto UDP (17), length 81) 10.16.195.136.iberiagames > 10.16.195.178.tftp: [udp sum ok] 53 RRQ "sles113/pxelinux.cfg/0A" octet tsize 0 blksize 1408 12:02:50.917464 IP (tos 0x0, ttl 64, id 16830, offset 0, flags [none], proto UDP (17), length 80) 10.16.195.136.winddx > 10.16.195.178.tftp: [udp sum ok] 52 RRQ "sles113/pxelinux.cfg/0" octet tsize 0 blksize 1408 12:02:50.918591 IP (tos 0x0, ttl 64, id 16831, offset 0, flags [none], proto UDP (17), length 86) 10.16.195.136.telindus > 10.16.195.178.tftp: [udp sum ok] 58 RRQ "sles113/pxelinux.cfg/default" octet tsize 0 blksize 1408 ^C 15 packets captured 15 packets received by filter 0 packets dropped by kernel [root at orange test]#
H. Peter Anvin
2013-Nov-04 22:13 UTC
[syslinux] syslinux.efi pxeboot across multiple subnets
Please indicate what version of Syslinux you are using, and also a hint at your system configuration. I presume the packet dump was taken on the server. They indicate the client trying to initiate a TFTP transaction but apparently not getting the reply. This *may* be the same bug that ended up in 6.02 but has since been fixed. -hpa
On Mon, Nov 4, 2013 at 5:13 PM, H. Peter Anvin <hpa at zytor.com> wrote:> Please indicate what version of Syslinux you are using, and also a hint > at your system configuration. > > I presume the packet dump was taken on the server. They indicate the > client trying to initiate a TFTP transaction but apparently not getting > the reply. This *may* be the same bug that ended up in 6.02 but has > since been fixed.In the first example, there are three requests for syslinux.efi spaced ~7ms then ~2146 ms apart. Presumably, the first two is just the initial request for size/options then the real request. I'd say the EFI system either is unable to retrieve syslinux.efi (perhaps not appropriately receiving the reply packet; perhaps packet loss or reordering) or doesn't like something about the file. Was the exact same client (not just a similar client) used with syslinux.efi and grub.efi across subnets? Was this the file specified in the DHCP replies or are you chainloading it? You'd probably be better off filtering by client IP rather than just 'port 69'. -- -Gene
Jason Matthews
2013-Nov-05 01:19 UTC
[syslinux] syslinux.efi pxeboot across multiple subnets
I was using 6.01 and updated to 6.02 last week. I've got a IBM x240 system as a test client. The tftp server is tftpd-hpa on CentOS 6.4 and dhcpd is ISC DHCPD on CentOS 5.7. The dump was taken on the tftp server. I have a port mirror setup, but forgot to add that in my original message. I can add that tomorrow when I get back to the systems if it would be helpful. On Mon, Nov 4, 2013 at 5:13 PM, H. Peter Anvin <hpa at zytor.com> wrote:> Please indicate what version of Syslinux you are using, and also a hint > at your system configuration. > > I presume the packet dump was taken on the server. They indicate the > client trying to initiate a TFTP transaction but apparently not getting > the reply. This *may* be the same bug that ended up in 6.02 but has > since been fixed. > > -hpa > >