El cortafuegos (o filtro de paquetes) es un tema amplio y complejo tanto en términos teóricos como prácticos. Un filtro de paquetes en varios sistemas operativos puede tener sus ventajas y desventajas en comparación con otras implementaciones. En este artículo, consideraré exclusivamente Firewall en RouterOS con un ojo en sus iptables progenitoras.
Prólogo
¿Para quién es este artículo?
Si sabe cómo trabajar con iptables, continúe y configure el firewall, no habrá nada nuevo para usted en este artículo (bueno, excepto que se usan cadenas con otros nombres en la tabla NAT). Si es la primera vez que ve un firewall en RouterOS y desea obtener una secuencia de comandos preparada para la configuración, no lo encontrará aquí. El material está dirigido a aquellos que desean tener una idea básica de cómo funciona el firewall y qué sucede con el paquete ip en las diferentes etapas de su procesamiento. Se obtendrá una comprensión más profunda con la experiencia y la resolución de problemas cotidianos e inusuales utilizando un filtro de paquetes.
Parte teórica
¿Qué es el firewall Layer3?

Supongamos que tiene un enrutador con acceso a Internet y dos interfaces de puente: bridge-lan (ether2-ether5) y bridge-dmz (ether6-ether10).
Dentro de la interfaz de Bridge, los dispositivos encuentran vecinos de forma independiente desde su subred e intercambian paquetes, el enrutador actúa como un interruptor y no monitorea dicho tráfico a nivel de red (por supuesto, puede forzarlo a hacer esto, pero hablaremos de Layer2 Firewall en otro momento).
Si es necesario, póngase en contacto con el dispositivo conectado a otra interfaz de puente o ubicado en la red global, los dispositivos transmiten paquetes al enrutador, que determina la ruta y los procesa en el nivel de la red (Capa 3).
Diagrama de flujo de paquetes
La ruta completa del tráfico se describe en el Diagrama de flujo de paquetes, hay varias versiones oficiales (v5, v6 ), necesitan ser conocidas y utilizadas en el trabajo diario, pero para comprender el funcionamiento del filtro de paquetes, están sobrecargadas, por lo que explicaré en una versión ligera.

La interfaz de entrada / salida es cualquier interfaz de enrutador de capa 3 (física o virtual). Un paquete que va de la red local a Internet llega a la interfaz de entrada y sale de la interfaz de salida. Un paquete de Internet a la red local también llega a la interfaz de entrada y abandona la interfaz de salida. El flujo de paquetes siempre se lee en una dirección de entrada -> salida.
Características terminológicas
Al estudiar el flujo de paquetes para iptables, puede encontrar descripciones a través de "cadenas en tablas" o "tablas en cadenas". El diagrama muestra las tablas en cadenas, al agregar reglas al firewall, todo será al revés.
Pero, de hecho, el paquete se mueve entre los bloques [chain + tables], por ejemplo, si acepta en el bloque [prerouting + mangle], el paquete de tránsito aún se procesará en [forward + mangle]. Es importante recordar esto en configuraciones complejas con pbr y colas.
La documentación de iptables tiene definiciones más precisas, pero en palabras simples:
Las cadenas son responsables de dónde se procesa el paquete y la secuencia de reglas.
Las tablas determinan las acciones que se pueden realizar en un paquete.
Opciones básicas de seguimiento de paquetes

Tránsito

- Un paquete de la red llega a una de las interfaces del enrutador
- En la cadena PREROUTING, el administrador puede influir en la ruta del paquete: determinar la interfaz de salida (enrutamiento base de la política) o redirigir a otra dirección (dst-nat).
- De acuerdo con la tabla de enrutamiento para el paquete, se determina la interfaz de salida.
- La cadena FORWARD es el principal lugar de filtrado para pasar el tráfico.
- El último elemento antes de ingresar a la red es la cadena POSTROUTING, en la que puede cambiar la dirección del remitente (src-nat).
- El paquete se puso en línea.
Entrante

- Un paquete de la red llegó a una de las interfaces del enrutador
- Golpea la cadena PREROUTING.
- Según la tabla de enrutamiento, el paquete se envió para su procesamiento al proceso local.
- La cadena de ENTRADA filtra el tráfico entrante por el administrador.
- El paquete fue procesado por el proceso local.
Saliente

- Uno de los procesos del enrutador generó un paquete de ip (nuevo o de respuesta, no importa).
- De acuerdo con la tabla de enrutamiento, se define una interfaz de salida para el paquete.
- El administrador puede filtrar el tráfico saliente o cambiar la ruta en la cadena de SALIDA.
- Para el paquete, se toma la decisión final sobre la interfaz de salida.
- El paquete cae en POSTROUTING, al igual que el tráfico que pasa .
- El paquete se puso en línea.
Rastreador de conexión
Primero debe comprender qué son los filtros de paquetes con estado y sin estado.

Un ejemplo La computadora 192.168.100.10 abre una conexión TCP al servidor 192.0.2.10. En el lado del cliente, se usa el puerto dinámico 49149, en el lado del servidor 80. Antes de recibir el contenido, el cliente y el servidor deben intercambiar paquetes para establecer una sesión tcp.
En sin estado, debe abrir el tráfico de la red local a Internet y de Internet a la red local (al menos para el rango de puertos dinámicos). Que en su conjunto es un agujero.
En un enrutador con estado , analiza los paquetes y, después de haber recibido tcp syn de 192.168.100.10:49149 para 192.0.2.10:80, considera que este es el comienzo de una nueva conexión. Todos los paquetes adicionales (en cualquier dirección) entre 192.168.100.10:49149 y 192.0.2.10:80 se considerarán parte de la conexión establecida hasta que se cierre la sesión tcp o expiren los temporizadores.
Para UDP / ICMP y otros tipos de tráfico, donde el inicio y el final de la conexión no se pueden distinguir claramente, el primer paquete es el primero, el resto se considera parte de la conexión establecida y actualiza los temporizadores, el enrutador olvida dichas conexiones después de que expiren los temporizadores.
El rastreador de conexiones divide los paquetes en varios tipos:

nuevo : un paquete que abre una conexión, por ejemplo syn para tcp o el primer paquete en una secuencia de udp.
establecido : un paquete relacionado con una conexión conocida.
related : paquete relacionado con la conexión adicional en el multiprotocolo (sip, pptp, ftp, ...).
inválido - paquete de una conexión desconocida.
no rastreado: rastreador de conexiones de paquetes no rastreados.
Configuración del rastreador de conexiones
enabled = yes - activado.
habilitado = no: deshabilitado.
enabed = auto - disabled hasta que aparezca una regla que use las capacidades de conntrack en el firewall. Se usa por defecto.

Los parámetros restantes son temporizadores diferentes y, por lo general, no requieren ajuste.
El administrador puede ver y eliminar conexiones, por ejemplo, la conexión a NAT se ve así:

El uso de conntrack afecta el rendimiento y el consumo de recursos (especialmente con una gran cantidad de conexiones), pero no funcionará en la mayoría de las configuraciones, ya que tendrá un firewall sin estado sin NAT.
Lista de funciones dependientes del rastreador de conexiones TTL
Time To Live: un campo en el encabezado del paquete IP que define la cantidad de enrutadores a través de los cuales puede pasar un paquete antes de ser destruido, protege contra el reenvío de paquetes sin fin durante los bucles de enrutamiento.

Al reenviar, el enrutador disminuye el valor TTL en 1, si TTL = 0. En este caso, un paquete con TTL = 1 llegará al proceso local del enrutador.
Algunos operadores utilizan trucos TTL para evitar el uso de enrutadores. Todas estas limitaciones justifican el aumento del valor ttl en la tabla de cambios.
NAT
Traducción de direcciones de red: tecnología para cambiar las direcciones en el encabezado del paquete ip. Al igual que Linux, NAT es parte del filtro de paquetes. NAT funciona en base al rastreador de conexiones.
Inicialmente, NAT se diseñó como una solución rápida al problema del agotamiento de las direcciones IPv4, para las redes locales se propuso utilizar una subred de los rangos: 10.0.0.0/8; 172.16.0.0/12; 192.168.0.0/16 y traducirlos a una (o varias) direcciones enrutables. De hecho, hay algunas subredes de servicio más que se pueden usar en redes privadas y el enrutador, en principio, es el mismo que para NAT, pero se recomienda seguir los estándares.
Procesos NAT solamente: tcp, udp, icmp y algunos multiprotocolos desde [IP] -> [Firewall] -> [Puerto de servicio]. Solo se procesa el primer paquete (estado de conexión = nuevo) en la conexión, los paquetes restantes se procesan automáticamente sin la participación de la tabla NAT. Esto puede ser rastreado por el cambio en los contadores en las reglas.
El encabezado del paquete contiene la dirección de origen y de destino, respectivamente, y NAT se divide en NAT de origen y de destino.
Source NAT : suplantación de direcciones del remitente, presente en la gran mayoría de los enrutadores domésticos y corporativos del mundo.

Permite que muchos dispositivos con direcciones "grises" en la red local se comuniquen con Internet utilizando una (o varias) direcciones reales.

Volviendo a Packet Flow, vemos que SRC-NAT está en Postrouting, después de decidir si enrutar el paquete.
El paquete de respuesta pasa a través de un DST-NAT implícito en el que la dirección del destinatario se cambia a local.
Destino NAT : sustitución de la dirección del destinatario.

Se usa, si es necesario, para reenviar el paquete a otra dirección, generalmente se usa para "reenviar puertos" desde la red externa a la local.

Según Packet Flow, la operación DST-NAT ocurre antes de que se tome la decisión sobre el enrutamiento en Prerouting; el SRC-NAT implícito está presente para el tráfico de respuesta.
NAT es una herramienta de administración de tráfico bastante poderosa, pero debe usarse en último lugar (cuando otras herramientas no pueden ayudar).
Cadenas (cadenas) básicas y de usuario
Las cadenas consisten en reglas y fuerzan la lógica del procesamiento de paquetes.
Hay varias cadenas básicas asignadas al flujo de paquetes:
Enrutamiento previo (dstnat) : procesamiento de paquetes antes de decidir el enrutamiento
Entrada : paquetes de procesamiento destinados a procesos locales del enrutador
Salida : procesando paquetes de paquetes generados por los procesos locales del enrutador
Reenviar : procesamiento del tráfico de paso
Postrouting (srcnat) : procesamiento del tráfico listo para su transmisión a la interfaz
Todo es como en iptables, pero las cadenas en nat cambian de nombre. Lo que esto está conectado (muy probablemente con la descarga de hotspot o hardware de nat) es desconocido para mí, pero no cambia nada en absoluto.
El paquete pasa las reglas de la cadena secuencialmente, si es adecuado para todas las condiciones, la acción se aplica al paquete. Si la acción está finalizando y no descarta el paquete, se pasa al siguiente bloque de flujo de paquetes.
Todas las cadenas base tienen una acción predeterminada (si el paquete no se ajustaba a ninguna de las reglas): aceptar .
Las cadenas personalizadas son necesarias para reducir la cantidad de reglas que pasa cada paquete y para construir reglas complejas para procesar el tráfico. Todas las cadenas de usuarios tienen una acción predeterminada: regresar .

Dentro de la tabla, puede reenviar las reglas desde varias cadenas base (y de usuario) diferentes a la cadena de usuario, pero el paquete volverá a la cadena de la que proviene.

Términos y condiciones
Las cadenas consisten en reglas; cada regla consiste en condiciones y acciones. Hay muchas condiciones, pero no todas las usarán en configuraciones reales. La mayoría de las condiciones pueden tener el prefijo "not" (signo "!"). Para coincidir con la regla, el paquete debe ser adecuado para todas estas condiciones.

Algunas de las condicionesCondición | Descripción |
---|
dirección src | Dirección de origen |
dst-address | Dirección del destinatario |
src-address-list | La dirección de origen está en la lista. |
dst-address-list | La dirección del destinatario está en la lista |
protocolo | Protocolo de capa de transporte |
src-port | Puerto de origen |
dst-port | Puerto receptor |
puerto | Puerto de origen o destino |
en la interfaz | La interfaz en la que vino el paquete |
interfaz externa | La interfaz desde la cual se enviará el paquete a la red. |
lista-de-interfaz | La interfaz a la que vino el paquete aparece |
lista de interfaz de salida | Se enumera la interfaz desde la cual se enviará el paquete a la red. |
protocolo layer7 | Análisis de los contenidos de los primeros 10 paquetes en una conexión |
contenido | Buscar una cadena dada en un lote |
tls-host | Buscar host en el encabezado de tls |
política ipsec | Compruebe si el paquete coincide con la política de ipsec o no |
tamaño de paquete | tamaño de paquete en bytes |
src-mac-address | dirección de origen del paquete mac |
marca de conexión | Etiqueta de conexión |
marca de paquete | Etiqueta del paquete |
marca de enrutamiento | Paquete Waypoint |
estado de conexión | Estado del paquete de conexión |
tcp-flags | Paquete tcp de banderas |
opciones de icmp | Opciones de paquete de ICMP |
al azar | La regla se activa (cuando otras condiciones coinciden) con una probabilidad dada |
tiempo | Puede especificar las horas de trabajo de la regla, desafortunadamente sin una conversión de fecha |
ttl | Valor de campo Ttl en paquete |
dscp | Valor de campo DSCP (ToS) en paquete |
- // - | - // - |
lugar antes | Opción de consola (sin condición), le permite agregar una regla antes de la especificada |
deshabilitado | Opción de consola (no condición), le permite deshabilitar la regla |
Notas
Como dirección src. (Dst.), Puede especificar: una única ip, un rango de direcciones a través de un guión o una subred.
Se necesitan listas de direcciones para combinar varias IP no conectadas con el mismo nombre. A diferencia de ipset en netfilter, las entradas en las listas de MikroTik se pueden eliminar después de un período de tiempo específico. Puede ver las listas y realizar cambios en [IP] -> [Cortafuegos] -> [Listas de direcciones].
Como número de puerto (puerto, puerto src, puerto dst), puede especificar un solo puerto, varios puertos separados por comas o un rango de puertos a través de un guión.
En el último MUM en MSC, hubo una buena presentación sobre el efecto de varias condiciones en la velocidad de procesamiento de los paquetes (allí aprenderá cómo usar la tabla sin formato para reducir la carga en el enrutador), a quienes les interesa: grabación y presentación .
Acciones de tablas
El conjunto de acciones disponibles en el paquete depende de la tabla en la que se procesa.

Filtro : tabla de filtrado de tráfico, uno de los dos lugares donde puede soltar el paquete.
NAT : tabla para modificar las direcciones IP y los puertos (tpc, udp) en el encabezado del paquete ip.
Mangle : una tabla para modificar otros campos del paquete ip y configurar varias etiquetas.

Hay tres tipos de etiquetas de paquetes internos: conexión, paquete, ruta. Las etiquetas solo existen dentro del enrutador y no van a la red. Un paquete puede tener una etiqueta de cada tipo, mientras pasa varias reglas mark- * en secuencia, las etiquetas se sobrescriben.
Las etiquetas de ruta solo se pueden establecer en las cadenas de enrutamiento y salida, el resto en cualquier cadena.
Es una buena práctica marcar primero la conexión, luego el paquete (paquete) o la ruta (ruta). Buscar etiquetas es más rápido que los campos de paquetes. En la práctica, este no es siempre el caso en colas complejas o pbr no es útil el marcado adicional de la conexión.
RAW : una tabla que permite que los paquetes omitan el rastreador de conexiones. Se utiliza para contrarrestar DoS y reducir la carga en la CPU (por ejemplo, omitiendo el tráfico de multidifusión). Te permite soltar el paquete.
Las acciones de terminación completan el procesamiento de un paquete en la cadena y lo pasan al siguiente bloque en el flujo de paquetes, o lo descartan.
AccionesMesa | Acción | Descripción | Terminando? |
---|
Todos | aceptar | Deje de procesar el paquete y transfiéralo al siguiente bloque de flujo Pakcet | Si |
Todos | registro | Información del paquete de registro: en las versiones modernas, puede agregar el registro a cualquier otra acción. | No |
Todos | passtrough | Cuenta la cantidad de paquetes. Utilizado para depurar | No |
Todos | agregue src a la lista de direcciones y agregue dst a la lista de direcciones | Agregar la dirección de origen (destino) del paquete a la lista dada | No |
Todos | saltar | Ir a la cadena de usuarios | Si |
Todos | volver | Regresar a la cadena principal. En cadenas base funciona como aceptar | Si |
Filtro y crudo | soltar | Detenga el flujo de paquetes en el flujo de paquetes y deséchelos | Si |
Filtro y enrutamiento previo | vía rápida | Marcar paquete para un flujo rápido de paquetes | Si |
Filtro | rechazar | Como descartar, pero al remitente de un paquete se le envía una notificación (tcp o icmp) sobre el paquete descartado | Si |
Filtro | trapit | Emule la presencia de un puerto abierto. Utilizado para protección contra DoS, engaño y (a veces) depuración | Si |
NAT | src-nat | Sustitución de la dirección del remitente por la especificada | Si |
NAT | disfraces | Un caso especial de src-nat, reemplaza la dirección del remitente con una de las direcciones de la interfaz, se usa en interfaces dinámicas (dhcp, vpn). No se recomienda usar si hay varias ip en la interfaz | Si |
NAT | lo mismo | Un caso especial de src-nat. Reemplaza la dirección del remitente con una dirección del rango especificado | Si |
NAT | dst-nat | Reemplaza la dirección del destinatario con la especificada | Si |
NAT | redirigir | Un caso especial de dst-nat, reemplaza la dirección del destinatario con la dirección de la interfaz del enrutador a la que vino el paquete | Si |
NAT | mapa de red | No es un reemplazo para dst-nat. Utilizado para la traducción de red a red, ver ejemplos | Si |
Destrozar | marcar conexión | Etiqueta de conexión | No |
Destrozar | paquete de marca | Etiqueta de paquete aplicada en colas | No |
Destrozar | marcar enrutamiento | Etiqueta de ruta aplicada en el enrutamiento base de políticas | No |
Destrozar | cambiar ttl | Editar ttl | No |
Destrozar | cambiar dcsp (tos) | Cambiar dcsp decimal | No |
Destrozar | cambiar mss | Cambiar mss a tcp syn | No |
Destrozar | claro df | Borrar no fragmentar la bandera | No |
Destrozar | opciones de strip ipv4 | Borrar opciones avanzadas de ipv4 | No |
Destrozar | establecer prioridad | Establecer prioridad para CoS | No |
Destrozar | ruta | Establecer puerta de enlace para el paquete. Versión simple de PBR | No |
Destrozar | sniff tzsp | Encapsula paquetes en udp y envíalos a la ip especificada | No |
Destrozar | olfatear pc | Un análogo de tzsp, pero con un tipo diferente de encapsulación. En wiki si usa casos con calea | No |
Destrozar | passtrough | Por defecto, la mayoría de las reglas en mangle no impiden que el paquete pase, puede cambiar este comportamiento estableciendo passtrough = no | No |
Crudo | notrack | No rastrear el paquete en el rastreador de conexiones | Si |
Si hay quienes lo desean, puedo escribir más sobre FastTrack y FastPath, pero no debe esperar milagros de estas tecnologías.
Algunas palabras sobre DPI
Hay varias posibilidades para analizar el paquete un poco más profundo que el encabezado de la capa de transporte:
contenido : busca una cadena determinada en un paquete.
protocolo layer7 : almacena los primeros 10 paquetes (o 2 KB) de la conexión y busca expresiones regulares en los datos almacenados. Una gran cantidad de reglas de layer7 afectan significativamente el rendimiento.
tls-host es la dirección del nombre de host en el encabezado TLS / SNI de una conexión HTTPS.
Ejemplos
No copie los ejemplos sin pensar, es mejor tomar el dispositivo e intentar escribir la configuración usted mismo (o reescribir los ejemplos, pero para comprender qué hace cada una de las reglas). Si no sabe cómo complementar las reglas: en las configuraciones domésticas predeterminadas y mínimas no hay acceso al enrutador desde la interfaz wan, agréguelo con filtrado por la lista de direcciones.
Firewall predeterminado RouterOS
Una configuración bastante segura, pero en lugares muy confusos:
/ip firewall filter # (established, related) (untracked) add action=accept chain=input connection-state=established,related,untracked # (invalid) add action=drop chain=input connection-state=invalid # icmp add action=accept chain=input protocol=icmp # add action=drop chain=input in-interface-list=!LAN # ipsec add action=accept chain=forward ipsec-policy=in,ipsec add action=accept chain=forward ipsec-policy=out,ipsec # add action=fasttrack-connection chain=forward connection-state=established,related # add action=accept chain=forward connection-state=established,related,untracked # add action=drop chain=forward connection-state=invalid # wan , dstnat (, src-nat dst-nat) add action=drop chain=forward connection-nat-state=!dstnat connection-state=new in-interface-list=WAN /ip firewall nat #Source NAT ipsec, WAN add action=masquerade chain=srcnat ipsec-policy=out,none out-interface-list=WAN
Nunca usé la configuración predeterminada, pero antes el firewall predeterminado era mucho peor.
Cortafuegos de casa mínimo
Lo más fácil de inventar. Sí, el tráfico no rastreado no está permitido (pero en la etapa del estudio básico del firewall todavía no lo necesita) y habrá problemas con el túnel ipsec (nuevamente, si puede configurar ipsec, usted mismo sabe lo que debe hacerse).
/ip firewall filter # (established, related) add chain=input connection-state=established,related action=accept # icmp add chain=input connection-state=new protocol=icmp action=accept # add chain=input connection-state=new in-interface-list=LAN action=accept # add chain=input action=drop # add chain=forward connection-state=established,related action=accept # add chain=forward connection-state=new in-interface-list=LAN action=accept # add chain=forward action=drop /ip firewall nat #Source NAT WAN add chain=srcnat out-interface-list=WAN action=masquerade
Ejemplo DMZ
En los enrutadores "domésticos", el acrónimo DMZ le gusta llamar a una computadora en la subred local para la cual se reenvían todos los puertos de la red externa.
De hecho, esto no es así y una de las opciones de DMZ es separar el recurso al que debe proporcionar acceso desde Internet y se puede llevar a cabo un ataque exitoso (un servidor web con cms en el que se encuentran agujeros constantemente es un buen objetivo para un atacante). En caso de piratería, un atacante no podrá afectar a los participantes en la red local.

# /ip firewall nat add chain=dstnat dst-port=80,443 action=dst-nat to-address=192.168.200.2 /ip firewall filter # icmp add chain=input connection-state=established,related action=accept add chain=input protocol=icmp connection-state=new action=accept # add chain=input in-interface=ether2-lan action=accept # add chain=input action=drop # add chain=forward connection-state=established,related action=accept # add chain=forward in-interface=ether2-lan connection-state=new action=accept # web add chain=forward out-interface=ether3-dmz dst-address=192.168.200.2 dst-port=80,443 connection-state=new action=accept # add chain=forward action=drop
Horquilla NAT

/ip firewall nat add chain=dstnat dst-port=80 action=dst-nat to-address=192.168.100.2
Una situación típica es cuando reenvía un puerto a un servidor en una red local y todo funciona desde el exterior, pero dentro de la red local no se puede acceder al servidor en una dirección externa.
Veamos que pasa:
- La computadora 192.168.100.10 envía una solicitud a 192.0.2.100
- Realiza DST-NAT en el enrutador y el paquete se reenvía a 192.168.100.2
- El servidor ve que un paquete de 192.168.100.10 ha llegado a la dirección 192.168.100.2 y está respondiendo desde la dirección local.
- La computadora recibe un paquete inesperado de 192.168.100.2 y lo descarta.
La solución es agregar una regla adicional que cambie la dirección de origen a la dirección del enrutador, para que el servidor devuelva el paquete al enrutador, que lo enviará a la computadora inicializadora.
/ip firewall nat # add chain=dstnat dst-port=80 action=dst-nat to-address=192.168.100.2 # , add chain=srcnat src-address=192.168.100.0/24 dst-address=192.168.100.2 action=masquerade
En la práctica, este esquema no se usa con frecuencia, pero como ejemplo de depuración de un firewall, realmente me gusta.
Uso adecuado de netmap

Netmap es una tecnología para traducir direcciones de una subred a las direcciones de otra subred.
La dirección IP (en la entrada de la máscara) consta de dos partes: la red (el número de bits especificado en la máscara de subred) y el host (bits restantes). Netmap cambia la parte de red de la dirección, pero no toca la parte del host.

Hay dos enrutadores conectados por un canal VPN. Los enrutadores sirven subredes con el mismo direccionamiento. Es necesario hacer acceso entre subredes.
No puede prescindir de direccionamiento adicional.
Los usuarios de la subred izquierda golpearán a la derecha a través de la subred 192.168.102.0/24
Los usuarios de la subred derecha tocarán a la izquierda a través de la subred 192.168.101.0/24
Configuración en MikroTik 1.
# /ip route add distance=1 dst-address=192.168.102.0/24 gateway /ip firewall nat # add action=netmap chain=srcnat dst-address=192.168.102.0/24 out-interface=ipip src-address=192.168.100.0/24 to-address=192.168.101.0/24 # add action=netmap chain=dstnat dst-address=192.168.101.0/24 in-interface=ipip src-address=192.168.102.0/24 to-address=192.168.100.0/24
La configuración de MikroTik2 es casi la misma:
/ip route add distance=1 dst-address=192.168.101.0/24 gateway=10.10.10.1 /ip firewall nat add action=netmap chain=srcnat dst-address=192.168.101.0/24 out-interface=ipip src-address=192.168.100.0/24 to-address=192.168.102.0/24 add action=netmap chain=dstnat dst-address=192.168.102.0/24 in-interface=ipip src-address=192.168.101.0/24 to-address=192.168.100.0/24
Hay configuraciones más complejas que usan netmap, por ejemplo, si tiene muchas conexiones a puntos remotos con subredes que se cruzan y no hay forma de cambiar la configuración en equipos remotos, pero esto ya es enrutamiento avanzado.
Si no comprende nada (sobre netmap), entonces no lo necesita y simplemente no use esta acción al reenviar puertos.