No se puede acceder al sitio web en LAN. Horquilla NAT en nftables

No se puede acceder al sitio web en LAN. Horquilla NAT en nftables

Estoy intentando que la horquilla NAT funcione en mi enrutador. No puedo acceder al servidor de mi sitio web local en mi LAN (192.168.1.3). Estoy usando nftables con la siguiente configuración:

enp1s0 = WAN enp2s0 = LAN

#!/sbin/nft -f
flush ruleset
table ip nat {
        chain prerouting {
                type nat hook prerouting priority -100; policy accept;
                iifname "enp1s0" tcp dport { 80, 443 } dnat to 192.168.1.3
                meta nftrace set 1
        }

        chain postrouting {
                type nat hook postrouting priority 100; policy accept;
                ip saddr 192.168.1.0/24 ip daddr 192.168.1.3 tcp dport { http, https } counter snat 192.168.1.1
                oifname "enp1s0" masquerade
                meta nftrace set 1
        }
}

¿Cómo puedo exactamente hacer que funcione la horquilla? He visto a personas usar DNS dividido, pero no estoy muy seguro de cómo configurarlo.

Respuesta1

Para realizar NAT Hairpinning en nftables, puede agregar una regla DNAT que verifica si la dirección de destino de los paquetes es la IP externa de su red. También debe enmascararse en la interfaz interna (LAN).

flush ruleset

define wan = enp1s0
define lan = enp2s0

define webserver = 192.168.1.3
define extip = 1.2.3.4

table ip nat {
        chain prerouting {
                type nat hook prerouting priority dstnat; policy accept;
                tcp dport { 80, 443 } ip daddr $extip dnat to $webserver
        }

        chain postrouting {
                type nat hook postrouting priority srcnat; policy accept;
                oif $wan masquerade
                oif $lan masquerade
        }
}

información relacionada