icmp: don't send out ICMP messages with a source address of 0.0.0.0
Toke Høiland-Jørgensen authored
[ Upstream commit 32182747 ]

When constructing ICMP response messages, the kernel will try to pick a
suitable source address for the outgoing packet. However, if no IPv4
addresses are configured on the system at all, this will fail and we end up
producing an ICMP message with a source address of 0.0.0.0. This can happen
on a box routing IPv4 traffic via v6 nexthops, for instance.

Since 0.0.0.0 is not generally routable on the internet, there's a good
chance that such ICMP messages will never make it back to the sender of the
original packet that the ICMP message was sent in response to. This, in
turn, can create connectivity and PMTUd problems for senders. Fortunately,
RFC7600 reserves a dummy address to be used as a source for ICMP
messages (192.0.0.8/32), so let's teach the kernel to substitute that
address as a last resort if the regular source address selection procedure
fails.

Below is a quick examp...
6ae14121
Name Last commit Last update
..
acpi ACPI: scan: Use unique number for instance_no
asm-generic vmlinux.lds.h: add DWARF v5 sections
clocksource License cleanup: add SPDX GPL-2.0 license identifier to files with no license
crypto crypto: api - check for ERR pointers in crypto_destroy_tfm()
drm drm: mst: Fix query_payload ack reply struct
dt-bindings dt-bindings: reset: meson8b: fix duplicate reset IDs
keys KEYS: Don't write out to userspace while holding key semaphore
kvm KVM: arm/arm64: Sync ICH_VMCR_EL2 back when about to block
linux HID: usbhid: fix info leak in hid_submit_ctrl
math-emu math-emu/soft-fp.h: (_FP_ROUND_ZERO) cast 0 to void to fix warning
media media: v4l2-device.h: Explicitly compare grp{id,mask} to zero in v4l2_device macros
memory ddr: add LPDDR2 data from JESD209-2
misc cxl: Export library to support IBM XSL
net net: caif: add proper error handling
pcmcia pcmcia/ds.h: introduce helper for pcmcia_driver module boilerplate
ras License cleanup: add SPDX GPL-2.0 license identifier to files with no license
rdma IB/mlx4: Avoid implicit enumerated type conversion
scsi Fix misc new gcc warnings
soc irqchip/eznps: Fix build error for !ARC700 builds
sound ALSA: compress: fix partial_drain completion state
target scsi: target: fix hang when multiple threads try to destroy the same iscsi session
trace memcg: fix a crash in wb_workfn when a device disappears
uapi icmp: don't send out ICMP messages with a source address of 0.0.0.0
video udlfb: set optimal write delay
xen Xen/gntdev: correct error checking in gntdev_map_grant_pages()