История изменений
Исправление vel, (текущая версия) :
IMHO использование 0.0.0.0 0.0.0.0 в hosts - это либо ооочень старый метод времён ядер до 2.6, либо это бездумно принесено оз оффтопиков.
Наш ip-стек достаточно интересный.
0.0.0.0/32 он же INADDR_ANY который расценивается как локальный широковещательный адрес и ближаший вариант это 127.0.0.1.
Выполни «ip ro get 0.0.0.0» и «ip ro get 127.0.0.1»
Дальше посмотри на «ip ro ls table all»
Нашел машрут к 0.0.0.0/32? А он есть. Он прибит гвоздями.
Если глянуть исходники ядра linux-5.15/net/ipv4/route.c в районе строки 2750
if (!fl4->daddr) {
fl4->daddr = fl4->saddr;
if (!fl4->daddr)
fl4->daddr = fl4->saddr = htonl(INADDR_LOOPBACK);
dev_out = net->loopback_dev;
fl4->flowi4_oif = LOOPBACK_IFINDEX;
res->type = RTN_LOCAL;
flags |= RTCF_LOCAL;
goto make_route;
}
А локально рекламу резать можно только на L7
Исходная версия vel, :
IMHO использование 0.0.0.0 0.0.0.0 в hosts - это либо ооочень старый метод времён ядер до 2.6, либо это бездумно принесено оз оффтопиков.
Наш ip-стек достаточно интересный.
0.0.0.0/32 он же INADDR_ANY который расценивается как локальный широковещательный адрес и ближаший вариант это 127.0.0.1.
Выполни «ip ro get 0.0.0.0» и «ip ro get 127.0.0.1»
Дальше посмотри на «ip ro ls table all»
Нашел машрут к 0.0.0.0/32? А он есть. Он прибит гвоздями.
Если глянуть исходники ядра linux-5.15/net/ipv4/route.c в районе строки 2750
if (!fl4->daddr) {
fl4->daddr = fl4->saddr;
if (!fl4->daddr)
fl4->daddr = fl4->saddr = htonl(INADDR_LOOPBACK);
dev_out = net->loopback_dev;
fl4->flowi4_oif = LOOPBACK_IFINDEX;
res->type = RTN_LOCAL;
flags |= RTCF_LOCAL;
goto make_route;
}