Skip to content

HTTP Boot over IPv6 - IPv6 address transition issues #1710

@dseven

Description

@dseven

It appears that HTTP Boot over IPv6 has some issues, observed using a proxmox VM with OVMF. There may be opportunity to assign partial blame to OVMF, but it appears that iPXE is doing some strange things too. The initial symptom that sent me down this rabbit-hole was a delay of around 15 seconds when (in an embedded script) chain-loading a menu from the same HTTP server that iPXE was downloaded from. Closer inspection revealed a few issues...

When OVMF starts up, it obtains a lease using DHCPv6. Actually it obtains two leases, with different IAIDs, for some reason, but immediately releases the second one. It uses the first leased address to download ipxe.efi, then it releases that lease too, and hands control over to iPXE.

iPXE apparently somehow picks up the IPv6 address that OVMF had been using, and uses it to download autoexec.ipxe. This seems bad - the lease for that address is gone. We have no right to use that address any more. AFAICT, OVMF is required to shut down the network interface when it's finished, and in doing so it is required to release the DHCP lease. What I'm not sure about is if there's some sort of UEFI state that it should be clearing so that iPXE doesn't think that the IPv6 address is still valid. In any case, it seems that iPXE shouldn't assume that it is (??)

If iPXE is then instructed to ifconf -c ipv6, it obtains a new lease, using a different DUID, which gets assigned a different IPv6 address. Assignment of this new lease is confirmed with packet capture and observation on the DHCP server. Curiously, iPXE does NOT seem to start using the newly obtained IPv6 address at this point - ${ip6} and ${net0/ip6} both still show the address from the lease that OVMF released earlier. An attempt to imgfetch from the same HTTP server uses that old OVMF-released address - actually the same socket that was used to download autoexec.ipxe. This "works", but it's still using an address we don't have a lease for!

If iPXE is instructed to ifconfig -c dhcp, it obtains an IPv4 lease, but it also then starts using the IPv6 IP address from the lease it obtained before - i.e. ${ip6} and ${net0/ip6} now show the new address. This seems to suggest that there's no way to configure ipv6 and make it effective without also having to configure ipv4 (??)

Now if there's an attempt to imgfetch from the same HTTP as before, it tries to use the socket that was created earlier (for downloading autoexec.ipxe), but with the new source IP address. This gets blocked by my firewall, because it doesn't match an existing session - it basically looks like a connection hijacking attempt. It eventually times out.

A subsequent attempt uses a new socket, and works properly.

So, problems:

  1. iPXE steals the IPv6 address that OVMF has already released the lease for
  2. ifconf -c ipv6 gets a new IPv6 address, but doesn't put it into effect
  3. After ifconf -c dhcp does put new IPv6 address into effect, subsequent HTTP request tries to continue using old socket but with the new IP address

This autoexec.ipxe demonstates the symptoms:

#!ipxe

echo
echo autoexec: ip6 [${ip6}], net0/ip6 [${net0/ip6}]
echo

ifconf -c ipv6
echo autoexec: ip6 [${ip6}], net0/ip6 [${net0/ip6}]
echo

imgfetch --timeout 5000 ${cwduri}/fake2 ||
echo

ifconf -c dhcp
echo autoexec: ip6 [${ip6}], net0/ip6 [${net0/ip6}]
echo

imgfetch --timeout 5000 ${cwduri}/fake3 && goto shell ||
echo

echo autoexec: Let's just try that again...
echo

imgfetch --timeout 5000 ${cwduri}/fake4 && goto shell ||
echo

:shell
shell

Output:

>>Start HTTP Boot over IPv6....
  Station IPv6 address is 2A07:AAAA:BBBB:CB64:0:0:1:B

  URI: http://nbxyz.wl.lan/ipxeboot/x86_64/ipxe.efi
  File Size: 1148416 Bytes
  Downloading...100%BdsDxe: loading Boot0006 "UEFI HTTPv6 (MAC:BC2411D39B43)" from PciRoot(0x0)/Pci(0x12,0x0)/MAC(BC2411D39B43,0x1)/IPv6(0000:0000:0000:0000:0000:0000:0000:0000,0x0,Static,0000:0000:0000:0000:0000:0000:0000:0000,0x40,0000:0000:0000:0000:0000:0000:0000:0000)/Uri()
BdsDxe: starting Boot0006 "UEFI HTTPv6 (MAC:BC2411D39B43)" from PciRoot(0x0)/Pci(0x12,0x0)/MAC(BC2411D39B43,0x1)/IPv6(0000:0000:0000:0000:0000:0000:0000:0000,0x0,Static,0000:0000:0000:0000:0000:0000:0000:0000,0x40,0000:0000:0000:0000:0000:0000:0000:0000)/Uri()
iPXE initialising devices...
autoexec.ipxe... ok



iPXE 2.0.0 (g12798) -- Open Source Network Boot Firmware -- https://ipxe.org
Features: DNS HTTP HTTPS iSCSI TFTP VLAN SRP AoE EFI Menu

autoexec: ip6 [2a07:aaaa:bbbb:cb64::1:b], net0/ip6 [2a07:aaaa:bbbb:cb64::1:b]

Configuring [ipv6] (net0 bc:24:11:d3:9b:43)... ok
autoexec: ip6 [2a07:aaaa:bbbb:cb64::1:b], net0/ip6 [2a07:aaaa:bbbb:cb64::1:b]

http://nbxyz.wl.lan/ipxeboot/x86_64//fake1... Not found (https://ipxe.org/2d0c618e)

Configuring [dhcp] (net0 bc:24:11:d3:9b:43)...... ok
autoexec: ip6 [2a07:aaaa:bbbb:cb64::1:3], net0/ip6 [2a07:aaaa:bbbb:cb64::1:3]

http://nbxyz.wl.lan/ipxeboot/x86_64//fake2....... Connection timed out (https://ipxe.org/4c072092)

autoexec: Let's just try that again...

http://nbxyz.wl.lan/ipxeboot/x86_64//fake3... Not found (https://ipxe.org/2d0c618e)

iPXE>

Annotated packet capture:

# OVMF starts up, gets two DHCPv6 leases, and releases one of them ...

11:58:33.869442 IP6 fe80::be24:11ff:fed3:9b43.546 > ff02::1:2.547: dhcp6 solicit
11:58:33.870777 IP6 fe80::7e83:34ff:feb8:dcc2.547 > fe80::be24:11ff:fed3:9b43.546: dhcp6 advertise
11:58:34.835310 IP6 :: > ff02::2: ICMP6, router solicitation, length 8
11:58:34.836123 IP6 fe80::be24:11ff:fed3:9b43.546 > ff02::1:2.547: dhcp6 solicit
11:58:34.837420 IP6 fe80::7e83:34ff:feb8:dcc2.547 > fe80::be24:11ff:fed3:9b43.546: dhcp6 advertise
11:58:34.837601 IP6 fe80::be24:11ff:fed3:9b43.546 > ff02::1:2.547: dhcp6 request
11:58:34.838729 IP6 fe80::7e83:34ff:feb8:dcc2.547 > fe80::be24:11ff:fed3:9b43.546: dhcp6 reply
11:58:35.135263 IP6 :: > ff02::1:ffd3:9b43: ICMP6, neighbor solicitation, who has 2a07:aaaa:bbbb:cb64:be24:11ff:fed3:9b43, length 24
11:58:35.735334 IP6 fe80::be24:11ff:fed3:9b43 > ff02::1:ff01:1: HBH ICMP6, multicast listener reportmax resp delay: 0 addr: ff02::1:ff01:1, length 24
11:58:36.635310 IP6 :: > ff02::1:ff01:1: ICMP6, neighbor solicitation, who has 2a07:aaaa:bbbb:cb64::1:1, length 24
11:58:38.497878 IP6 fe80::7e83:34ff:feb8:dcc2 > fe80::be24:11ff:fed3:9b43: ICMP6, neighbor solicitation, who has fe80::be24:11ff:fed3:9b43, length 32
11:58:38.498009 IP6 fe80::be24:11ff:fed3:9b43 > fe80::7e83:34ff:feb8:dcc2: ICMP6, neighbor advertisement, tgt is fe80::be24:11ff:fed3:9b43, length 32
11:58:38.835591 IP6 fe80::be24:11ff:fed3:9b43.546 > ff02::1:2.547: dhcp6 request
11:58:38.837442 IP6 fe80::7e83:34ff:feb8:dcc2.547 > fe80::be24:11ff:fed3:9b43.546: dhcp6 reply
11:58:38.840639 IP6 fe80::be24:11ff:fed3:9b43.546 > ff02::1:2.547: dhcp6 release
11:58:38.840814 IP6 fe80::be24:11ff:fed3:9b43 > ff02::2: HBH ICMP6, multicast listener donemax resp delay: 0 addr: ff02::1:ff01:1, length 24
11:58:38.842038 IP6 fe80::7e83:34ff:feb8:dcc2.547 > fe80::be24:11ff:fed3:9b43.546: dhcp6 reply
11:58:39.335327 IP6 fe80::be24:11ff:fed3:9b43 > ff02::1:ff01:b: HBH ICMP6, multicast listener reportmax resp delay: 0 addr: ff02::1:ff01:b, length 24
11:58:39.835307 IP6 :: > ff02::1:ff01:b: ICMP6, neighbor solicitation, who has 2a07:aaaa:bbbb:cb64::1:b, length 24
11:58:40.835276 IP6 fe80::be24:11ff:fed3:9b43 > ff02::1:ffd3:9b43: HBH ICMP6, multicast listener reportmax resp delay: 0 addr: ff02::1:ffd3:9b43, length 24

# OVMF now has an active lease for address 2a07:aaaa:bbbb:cb64::1:b
# It opens an HTTP connection and downloads ipxe.efi ...

11:58:40.869965 IP6 2a07:aaaa:bbbb:cb64::1:b > ff02::1:ff00:1: ICMP6, neighbor solicitation, who has 2a07:aaaa:bbbb:cb64::1, length 32
11:58:40.870163 IP6 2a07:aaaa:bbbb:cb64::1 > 2a07:aaaa:bbbb:cb64::1:b: ICMP6, neighbor advertisement, tgt is 2a07:aaaa:bbbb:cb64::1, length 32
11:58:40.870212 IP6 2a07:aaaa:bbbb:cb64::1:b.1741 > 2a07:aaaa:bbbb:cb64::1.53: 39469+ AAAA? nbxyz.wl.lan. (30)
11:58:40.870418 IP6 2a07:aaaa:bbbb:cb64::1.53 > 2a07:aaaa:bbbb:cb64::1:b.1741: 39469* 1/0/0 AAAA 2a07:aaaa:bbbb:cb01::162 (58)
11:58:40.870861 IP6 2a07:aaaa:bbbb:cb64::1:b.1333 > 2a07:aaaa:bbbb:cb01::162.80: Flags [S], seq 2247138871, win 65535, options [mss 1220,nop,wscale 6], length 0
11:58:40.871064 IP6 2a07:aaaa:bbbb:cb01::162.80 > 2a07:aaaa:bbbb:cb64::1:b.1333: Flags [S.], seq 3964282278, ack 2247138872, win 64800, options [mss 1440,nop,wscale 7], length 0
11:58:40.871102 IP6 2a07:aaaa:bbbb:cb64::1:b.1333 > 2a07:aaaa:bbbb:cb01::162.80: Flags [.], ack 1, win 32768, length 0
11:58:40.871132 IP6 2a07:aaaa:bbbb:cb64::1:b.1333 > 2a07:aaaa:bbbb:cb01::162.80: Flags [P.], seq 1:107, ack 1, win 32768, length 106: HTTP: HEAD /ipxeboot/x86_64/ipxe.efi HTTP/1.1
11:58:40.871313 IP6 2a07:aaaa:bbbb:cb01::162.80 > 2a07:aaaa:bbbb:cb64::1:b.1333: Flags [.], ack 107, win 506, length 0
11:58:40.871408 IP6 2a07:aaaa:bbbb:cb01::162.80 > 2a07:aaaa:bbbb:cb64::1:b.1333: Flags [P.], seq 1:261, ack 107, win 506, length 260: HTTP: HTTP/1.1 200 OK
11:58:40.871446 IP6 2a07:aaaa:bbbb:cb64::1:b.1333 > 2a07:aaaa:bbbb:cb01::162.80: Flags [.], ack 261, win 32763, length 0
11:58:40.874362 IP6 2a07:aaaa:bbbb:cb64::1:b.1333 > 2a07:aaaa:bbbb:cb01::162.80: Flags [P.], seq 107:212, ack 261, win 32763, length 105: HTTP: GET /ipxeboot/x86_64/ipxe.efi HTTP/1.1
11:58:40.874600 IP6 2a07:aaaa:bbbb:cb01::162.80 > 2a07:aaaa:bbbb:cb64::1:b.1333: Flags [.], seq 261:1481, ack 212, win 506, length 1220: HTTP: HTTP/1.1 200 OK
11:58:40.874640 IP6 2a07:aaaa:bbbb:cb64::1:b.1333 > 2a07:aaaa:bbbb:cb01::162.80: Flags [.], ack 1481, win 32768, length 0
11:58:40.874647 IP6 2a07:aaaa:bbbb:cb01::162.80 > 2a07:aaaa:bbbb:cb64::1:b.1333: Flags [.], seq 1481:3921, ack 212, win 506, length 2440: HTTP
11:58:40.874696 IP6 2a07:aaaa:bbbb:cb01::162.80 > 2a07:aaaa:bbbb:cb64::1:b.1333: Flags [P.], seq 3921:6361, ack 212, win 506, length 2440: HTTP

# [snip: ...HTTP traffic...]

11:58:41.010036 IP6 2a07:aaaa:bbbb:cb64::1:b.1333 > 2a07:aaaa:bbbb:cb01::162.80: Flags [.], ack 1148937, win 32738, length 0
11:58:41.011039 IP6 2a07:aaaa:bbbb:cb64::1:b.1333 > 2a07:aaaa:bbbb:cb01::162.80: Flags [R], seq 2247139083, win 65535, length 0


# ipxe.efi has been downloaded - OVMF releases lease on address 2a07:aaaa:bbbb:cb64::1:b

11:58:41.011259 IP6 fe80::be24:11ff:fed3:9b43.546 > ff02::1:2.547: dhcp6 release
11:58:41.012734 IP6 fe80::7e83:34ff:feb8:dcc2.547 > fe80::be24:11ff:fed3:9b43.546: dhcp6 reply


# I believe this is the point where iPXE takes over
# it wants to download autoexec.ipxe from the same HTTP server - curious "destination unreachable" on the DNS response!

11:58:41.040304 IP6 2a07:aaaa:bbbb:cb64::1:b > ff02::1:ff00:1: ICMP6, neighbor solicitation, who has 2a07:aaaa:bbbb:cb64::1, length 32
11:58:41.040442 IP6 2a07:aaaa:bbbb:cb64::1 > 2a07:aaaa:bbbb:cb64::1:b: ICMP6, neighbor advertisement, tgt is 2a07:aaaa:bbbb:cb64::1, length 32
11:58:41.040822 IP6 2a07:aaaa:bbbb:cb64::1:b.27757 > 2a07:aaaa:bbbb:cb64::1.53: 57752+ AAAA? nbxyz.wl.lan. (30)
11:58:41.041039 IP6 2a07:aaaa:bbbb:cb64::1.53 > 2a07:aaaa:bbbb:cb64::1:b.27757: 57752* 1/0/0 AAAA 2a07:aaaa:bbbb:cb01::162 (58)
11:58:41.041085 IP6 2a07:aaaa:bbbb:cb64::1:b > 2a07:aaaa:bbbb:cb64::1: ICMP6, destination unreachable, unreachable port, 2a07:aaaa:bbbb:cb64::1:b udp port 27757, length 154


# now it opens a socket with source IP 2a07:aaaa:bbbb:cb64::1:b and source port 54330, and HTTP downloads autoexec.ipxe

11:58:41.041118 IP6 2a07:aaaa:bbbb:cb64::1:b > ff02::1:ffb8:dcc2: ICMP6, neighbor solicitation, who has fe80::7e83:34ff:feb8:dcc2, length 32
11:58:41.041246 IP6 2a07:aaaa:bbbb:cb64::1 > 2a07:aaaa:bbbb:cb64::1:b: ICMP6, neighbor advertisement, tgt is fe80::7e83:34ff:feb8:dcc2, length 32
11:58:41.041284 IP6 2a07:aaaa:bbbb:cb64::1:b.54330 > 2a07:aaaa:bbbb:cb01::162.80: Flags [S], seq 1881653613, win 65532, options [nop,nop,TS val 0 ecr 0,nop,nop,sackOK,nop,wscale 9,mss 1440], length 0
11:58:41.041471 IP6 2a07:aaaa:bbbb:cb01::162.80 > 2a07:aaaa:bbbb:cb64::1:b.54330: Flags [S.], seq 1950965667, ack 1881653614, win 64260, options [mss 1440,sackOK,TS val 3680826488 ecr 0,nop,wscale 7], length 0
11:58:41.041528 IP6 2a07:aaaa:bbbb:cb64::1:b.54330 > 2a07:aaaa:bbbb:cb01::162.80: Flags [P.], seq 1:125, ack 1, win 4096, options [nop,nop,TS val 0 ecr 3680826488], length 124: HTTP: GET /ipxeboot/x86_64/autoexec.ipxe HTTP/1.1
11:58:41.041699 IP6 2a07:aaaa:bbbb:cb01::162.80 > 2a07:aaaa:bbbb:cb64::1:b.54330: Flags [.], ack 125, win 502, options [nop,nop,TS val 3680826488 ecr 0], length 0
11:58:41.041886 IP6 2a07:aaaa:bbbb:cb01::162.80 > 2a07:aaaa:bbbb:cb64::1:b.54330: Flags [P.], seq 1:711, ack 125, win 502, options [nop,nop,TS val 3680826488 ecr 0], length 710: HTTP: HTTP/1.1 200 OK
11:58:41.042487 IP6 2a07:aaaa:bbbb:cb64::1:b.54330 > 2a07:aaaa:bbbb:cb01::162.80: Flags [.], ack 711, win 4096, options [nop,nop,TS val 0 ecr 3680826488], length 0


# autoexec starts up, and runs `ifconf -c ipv6` - a new lease is granted with IP address 2a07:aaaa:bbbb:cb64::1:3

11:58:41.479533 IP6 fe80::be24:11ff:fed3:9b43 > ff02::2: ICMP6, router solicitation, length 16
11:58:41.480154 IP6 fe80::7e83:34ff:feb8:dcc2 > fe80::be24:11ff:fed3:9b43: ICMP6, router advertisement, length 104
11:58:41.480361 IP6 fe80::be24:11ff:fed3:9b43.546 > ff02::1:2.547: dhcp6 solicit
11:58:41.481432 IP6 fe80::7e83:34ff:feb8:dcc2.547 > fe80::be24:11ff:fed3:9b43.546: dhcp6 advertise
11:58:41.481492 IP6 fe80::be24:11ff:fed3:9b43.546 > ff02::1:2.547: dhcp6 request
11:58:41.482390 IP6 fe80::7e83:34ff:feb8:dcc2.547 > fe80::be24:11ff:fed3:9b43.546: dhcp6 reply


# but the subsequent request for "fake1" still uses the old socket with source address (::1:b) and source port (54330).
# This "works" (the fake URL doesn't exist, so 404 is the expected response)...

11:58:41.512792 IP6 2a07:aaaa:bbbb:cb64::1:b.54330 > 2a07:aaaa:bbbb:cb01::162.80: Flags [P.], seq 125:242, ack 711, win 4096, options [nop,nop,TS val 160 ecr 3680826488], length 117: HTTP: GET /ipxeboot/x86_64//fake1 HTTP/1.1
11:58:41.513056 IP6 2a07:aaaa:bbbb:cb01::162.80 > 2a07:aaaa:bbbb:cb64::1:b.54330: Flags [P.], seq 711:1019, ack 242, win 502, options [nop,nop,TS val 3680826959 ecr 160], length 308: HTTP: HTTP/1.1 404 Not Found


# autoexec then does `ifconf -c dhcp` - this gets a lease for IPv4 address 10.1.100.201

11:58:41.518435 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from bc:24:11:d3:9b:43, length 396
11:58:41.518470 IP6 2a07:aaaa:bbbb:cb64::1:b.54330 > 2a07:aaaa:bbbb:cb01::162.80: Flags [.], ack 1019, win 4096, options [nop,nop,TS val 160 ecr 3680826959], length 0
11:58:41.519901 IP 10.1.100.1.67 > 10.1.100.201.68: BOOTP/DHCP, Reply, length 313
11:58:42.505445 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from bc:24:11:d3:9b:43, length 396
11:58:42.506909 IP 10.1.100.1.67 > 10.1.100.201.68: BOOTP/DHCP, Reply, length 313
11:58:44.505454 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from bc:24:11:d3:9b:43, length 408
11:58:44.507047 IP 10.1.100.1.67 > 10.1.100.201.68: BOOTP/DHCP, Reply, length 313
11:58:44.507177 ARP, Request who-has 10.1.100.201 tell 10.1.100.201, length 28


# the subsequent request to download fake2 now uses the new IPv6 address 2a07:aaaa:bbbb:cb64::1:3 *but trying to still use the old socket with source port 54330 - note there's no SYN handshake here* - this gets blocked by the firewall, and times out. Firewall seems to be trying to figure out what happened to the ::1:b address too.

11:58:44.541797 IP6 2a07:aaaa:bbbb:cb64::1:3.54330 > 2a07:aaaa:bbbb:cb01::162.80: Flags [P.], seq 1881653855:1881653972, ack 1950966686, win 4096, options [nop,nop,TS val 3264 ecr 3680826959], length 117: HTTP: GET /ipxeboot/x86_64//fake2 HTTP/1.1
11:58:44.785306 IP6 2a07:aaaa:bbbb:cb64::1:3.54330 > 2a07:aaaa:bbbb:cb01::162.80: Flags [P.], seq 0:117, ack 1, win 4096, options [nop,nop,TS val 3520 ecr 3680826959], length 117: HTTP: GET /ipxeboot/x86_64//fake2 HTTP/1.1
11:58:45.285264 IP6 2a07:aaaa:bbbb:cb64::1:3.54330 > 2a07:aaaa:bbbb:cb01::162.80: Flags [P.], seq 0:117, ack 1, win 4096, options [nop,nop,TS val 4032 ecr 3680826959], length 117: HTTP: GET /ipxeboot/x86_64//fake2 HTTP/1.1
11:58:45.869868 IP6 2a07:aaaa:bbbb:cb64::1 > 2a07:aaaa:bbbb:cb64::1:b: ICMP6, neighbor solicitation, who has 2a07:aaaa:bbbb:cb64::1:b, length 32
11:58:46.285291 IP6 2a07:aaaa:bbbb:cb64::1:3.54330 > 2a07:aaaa:bbbb:cb01::162.80: Flags [P.], seq 0:117, ack 1, win 4096, options [nop,nop,TS val 5056 ecr 3680826959], length 117: HTTP: GET /ipxeboot/x86_64//fake2 HTTP/1.1
11:58:46.869879 IP6 2a07:aaaa:bbbb:cb64::1 > 2a07:aaaa:bbbb:cb64::1:b: ICMP6, neighbor solicitation, who has 2a07:aaaa:bbbb:cb64::1:b, length 32
11:58:47.869884 IP6 2a07:aaaa:bbbb:cb64::1 > 2a07:aaaa:bbbb:cb64::1:b: ICMP6, neighbor solicitation, who has 2a07:aaaa:bbbb:cb64::1:b, length 32
11:58:48.285307 IP6 2a07:aaaa:bbbb:cb64::1:3.54330 > 2a07:aaaa:bbbb:cb01::162.80: Flags [P.], seq 0:117, ack 1, win 4096, options [nop,nop,TS val 7104 ecr 3680826959], length 117: HTTP: GET /ipxeboot/x86_64//fake2 HTTP/1.1


# the subsequent request to download fake3 uses a new socket (different source port, SYN handshake), and works OK (404 expected)

11:58:49.458185 IP6 2a07:aaaa:bbbb:cb64::1:3 > ff02::1:ff00:1: ICMP6, neighbor solicitation, who has 2a07:aaaa:bbbb:cb64::1, length 32
11:58:49.458347 IP6 2a07:aaaa:bbbb:cb64::1 > 2a07:aaaa:bbbb:cb64::1:3: ICMP6, neighbor advertisement, tgt is 2a07:aaaa:bbbb:cb64::1, length 32
11:58:49.458390 IP6 2a07:aaaa:bbbb:cb64::1:3.50283 > 2a07:aaaa:bbbb:cb64::1.53: 30302+ AAAA? nbxyz.wl.lan. (30)
11:58:49.458588 IP6 2a07:aaaa:bbbb:cb64::1.53 > 2a07:aaaa:bbbb:cb64::1:3.50283: 30302* 1/0/0 AAAA 2a07:aaaa:bbbb:cb01::162 (58)
11:58:49.458621 IP6 2a07:aaaa:bbbb:cb64::1:3.38764 > 2a07:aaaa:bbbb:cb01::162.80: Flags [S], seq 1431443218, win 65532, options [nop,nop,TS val 8288 ecr 0,nop,nop,sackOK,nop,wscale 9,mss 1440], length 0
11:58:49.458814 IP6 2a07:aaaa:bbbb:cb01::162.80 > 2a07:aaaa:bbbb:cb64::1:3.38764: Flags [S.], seq 280342420, ack 1431443219, win 64260, options [mss 1440,sackOK,TS val 2411835310 ecr 8288,nop,wscale 7], length 0
11:58:49.458858 IP6 2a07:aaaa:bbbb:cb64::1:3.38764 > 2a07:aaaa:bbbb:cb01::162.80: Flags [P.], seq 1:118, ack 1, win 4096, options [nop,nop,TS val 8288 ecr 2411835310], length 117: HTTP: GET /ipxeboot/x86_64//fake3 HTTP/1.1
11:58:49.459013 IP6 2a07:aaaa:bbbb:cb01::162.80 > 2a07:aaaa:bbbb:cb64::1:3.38764: Flags [.], ack 118, win 502, options [nop,nop,TS val 2411835310 ecr 8288], length 0
11:58:49.459210 IP6 2a07:aaaa:bbbb:cb01::162.80 > 2a07:aaaa:bbbb:cb64::1:3.38764: Flags [P.], seq 1:309, ack 118, win 502, options [nop,nop,TS val 2411835311 ecr 8288], length 308: HTTP: HTTP/1.1 404 Not Found
11:58:49.495391 IP6 2a07:aaaa:bbbb:cb64::1:3.38764 > 2a07:aaaa:bbbb:cb01::162.80: Flags [.], ack 309, win 4096, options [nop,nop,TS val 8320 ecr 2411835311], length 0


# that old socket makes one last-ditch attempt, even though it's too late...

11:58:53.065361 IP6 2a07:aaaa:bbbb:cb64::1:3.54330 > 2a07:aaaa:bbbb:cb01::162.80: Flags [P.], seq 0:117, ack 1, win 4096, options [nop,nop,TS val 11200 ecr 3680826959], length 117: HTTP: GET /ipxeboot/x86_64//fake2 HTTP/1.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions