Am deschis o întrebare Aici, dar pe măsură ce am găsit câteva elemente noi, prefer să deschid unul nou.
Iată situația mea, care poate fi reprodusă:
Proaspăt sistem de operare Centos7. Configurarea a două interfețe eth1 și eth2 cu adrese IP X și Y
-----------------> @X CENTOS @Y -----------------> @Z -------
dst_IP = A dst_IP = A
src_IP = B dst_IP = B
editați /etc/firewalld/zones/TEST.xml, adăugați cele două interfețe, activați mascarada.
Ținta firewalld este setată implicit la „implicit”.
adăugați o rută după cum urmează:
Destination Gateway GenMask
A Z 255.255.255.255
Apoi activați ip forward și dezactivați rp_filter:
sysctl net.ipv4.ip_forward=1
sysctl net.ipv4.conf.eth1.rp_filter=2
sysctl net.ipv4.conf.eth2.rp_filter=2
În această situație, dacă direcționez un pachet (@dest=A) către CentOS, pachetul este direcționat către Z.
-> De ce firewalld nu îl blochează? întrucât nu există o regulă care să o accepte
Dacă dezactivez mascarada, pachetul nu mai este rutat.
-> De ce?
Cu masquerade activată, dacă schimb ținta de la implicit la DROP, pachetul nu mai este rutat
-> Deci ținta „implicit” nu este strict identică cu ținta „DROP”. Care sunt exact diferențele? Nu am găsit nicio informație despre asta