| It's not correct that the modern Linux kernel refuses to forward packets with a source address in 0.0.0.0/8. The only address that it refuses to forward this way is 0.0.0.0/32. I just got a patch into the ip(7) man page that describes this https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/... although there hasn't been a man-pages release since then, so you probably can't see this on your own system yet. The original change (included in Linux 5.3) is https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... (I'm working on a project that aims to make these addresses potentially useful for numbering Internet hosts in the future, as part of which Dave Taht's patch linked above was written, so I follow this very closely!) Separately, you need to be able to process a 0.0.0.0/32 source address on external interfaces (though not to forward it) in order to be able to implement a DHCP server, as that's the source address used by DHCP clients. (edit: another commenter pointed out that this commonly uses raw sockets so it doesn't necessarily require any explicit kernel support) |