简介

网络地址转换是一种Internet标准,允许局域网中的主机使用一组IP地址进行内部通信,使用另一组IP地址进行外部通信。使用NAT的局域网被归为局域网nat网络。为了实现NAT功能,每个节点都应该有一个NAT网关nat网络。NAT网关(NAT路由器)在数据包进出局域网的过程中执行IP地址重写。

Nat只匹配连接的第一个数据包,连接跟踪会记住这个动作,并对属于同一个连接的所有其他数据包进行跟踪。

无论何时更改或添加NAT规则,都应该清除连接跟踪表,否则在连接条目过期之前,NAT规则可能无法正常工作。

NAT类型:

  • 源NAT或srcnat。这种类型的NAT是在产生的包来自网状网络。当IP包通过路由器时,NAT路由器会用一个新的公网IP地址替换它的私有源地址。相反方向的应答报文进行反向操作。
  • 目的NAT或dstnat。这种类型的NAT是在命中的数据包对于natted网络。它最常用于使私有网络上的主机可以从Internet访问。执行dstnat的NAT路由器在IP包通过路由器到达专用网络时替换其目的IP地址。

自Routel雷竞技rOS v7以来,防火墙NAT有两个新的输入而且输出在本地机器上运行的应用程序发送和发送数据包时遍历的链

  • 输入-用于处理报文进入路由器通过其中一个接口,目的IP地址是路由器的地址之一。通过路由器的数据包不会根据输入链的规则进行处理。
  • 输出-用于处理报文源于路由器然后让它通过其中一个接口。通过路由器的数据包不会根据输出链的规则进行处理。

目的地NAT

网络地址转换是通过修改数据包IP头中的网络地址信息来实现的。让我们看一下网络管理员想要从internet访问办公室服务器的常见设置。

我们希望允许从internet连接到本地IP为10.0.0.3的办公室服务器。此时,需要在局点网关路由器上配置目的地址转换规则:

/ip firewall NAT add chain=dstnat action=dst-nat dst-address=172.16.16.1 dst-port=22 to-addresses=10.0.0.3 protocol=tcp

上面的规则转换为:当传入连接请求目的地址为172.16.16.1的TCP端口22时,使用dst-nat将报文发送到本端IP地址为10.0.0.3,端口为22的设备。

为了只允许从家里的个人电脑访问,我们可以改进我们的dst-nat规则与“src-address = 192.168.88.1”这是家庭PC的公共IP地址(本例)。它也被认为更安全!

源NAT

如果你想把你的本地设备隐藏在来自ISP的公网IP地址后面,你应该配置MikroTik路由器的源网络地址转换(伪装)功能。雷竞技网站
让我们假设你想把办公电脑和服务器都隐藏在公共IP 172.16.16.1后面,规则如下所示:

/ip firewall nat add chain=srcnat src-address=10.0.0.0/24 action=src-nat to-addresses=172.16.16.1 out-interface=WAN

现在,您的ISP将看到所有带有IP 172.16.16.1的请求,而不会看到您的LAN网络IP地址。

化妆舞会

防火墙NATaction =化妆舞会是独特的颠覆吗action = srcnat,它是专为公网IP可能随机变化的情况而设计的,例如DHCP服务器改变分配的IP或PPPoE隧道断开后得到不同的IP公网IP是动态的

/ip firewall nat add chain=srcnat src-address=10.0.0.0/24 action=masquarade out-interface=WAN

当接口每次断开连接或IP地址发生变化时,路由器会清除接口上所有伪装的连接跟踪表项,从而缩短公网IP变化后的系统恢复时间。如果srcnat用来代替化妆舞会,连接跟踪条目仍然保留,连接可以在链路故障后简单地恢复。

不幸的是,当主链路宕机后,当连接被路由到不同的链路上时,这可能会导致一些不稳定链路的问题。在这种情况下,可能会发生以下情况:

  • 断开连接时,清除所有相关的连接跟踪项;
  • 下一个数据包从每个清除(先前伪装)连接将进入防火墙作为,并且,如果一个主接口没有返回,数据包将通过另一条路由(如果你有的话)被路由出去,从而创建一个新的伪装连接;
  • 主链路恢复,路由在主链路上恢复,因此属于现有连接的数据包将通过主接口发送,而不经过伪装,从而将本地ip泄露到公网。

来解决这个问题黑洞可以创建路由作为可能在断开连接时消失的路由的替代。

支持nat的路由器后面的主机没有真正的端到端连接。因此,一些Internet协议可能无法在NAT场景下工作。需要从专用网络外部发起TCP连接或无状态协议(如UDP)的服务可能会中断。

为了克服这些限制,RouterOS包含了许多所谓的NAT hl雷竞技elper,它们支持各种协议的NAT穿越。当action = srcnat则连接跟踪项保留,连接可以简单地恢复。

虽然源NAT和伪装的基本功能相同:将一个地址空间映射到另一个地址空间,但细节略有不同。最值得注意的是,伪装从绑定到数据包将通过的接口的IP中选择出方向数据包的源IP地址。

CGNAT (NAT444)

为了解决IPv4地址耗尽的问题,部署了新的RFC 6598。其思想是使用运营商网络内的共享100.64.0.0/10地址空间,并在运营商的边缘路由器上执行到单个公共IP或公共IP范围的NAT。

由于这种设置的性质,它也被称为NAT444,与“正常”NAT环境的NAT44网络相反,它涉及三个不同的IPv4地址空间。

RouterOS上的CGNAT配置与其他常规源l雷竞技NAT配置没有区别:

/ip firewall NAT add chain=src-nat action=srcnat src-address=100.64.0.0/10 to-address=2.2.2.2 out-interface= .

地点:

  • 2.2.2.2 -公网IP地址,
  • Public_if -提供商边缘路由器上连接到Internet的接口

NAT444的优点是显而易见的,它使用的公共IPv4地址更少。但这种技术也有主要的缺点:

  • 执行CGNAT的服务提供者路由器需要为所有地址转换维护一个状态表:这需要大量内存和CPU资源。
  • 主机游戏问题。当两个使用相同外部公共IPv4地址的订阅者试图相互连接时,一些游戏会失败。
  • 出于法律原因跟踪用户意味着额外的记录,因为多个家庭都在一个公共地址后面。
  • 任何需要传入连接的东西都被破坏了。虽然这已经是常规NAT的情况,最终用户通常仍然可以在他们的NAT路由器上设置端口转发。CGNAT使这成为不可能。这意味着这里不能托管web服务器,默认情况下IP话机也不能接收来电。
  • 一些web服务器只允许来自同一公共IP地址的最大连接数,作为对抗SYN flood等DoS攻击的一种手段。使用CGNAT时,这一限制往往达到,一些服务可能质量较差。
  • 6to4需要全局可达的地址,在使用有限拓扑跨度的地址的网络中不起作用。


具有共享地址空间源地址或目的地址的数据包绝对不能跨服务提供者边界转发。服务提供者必须在入口链路上过滤这些数据包。在Rol雷竞技uterOS中,这可以通过边缘路由器上的防火墙过滤器轻松完成:

/ip firewall filter add chain=input src-address=100.64.0.0/10 action=drop in-interface= add chain=output dst-address=100.64.0.0/10 action=drop in-interface= add chain=forward src-address=100.64.0.0/10 action=drop out-interface= add chain=forward src-address=100.64.0.0/10 action=drop out-interface= . add chain=forward dst-address=100.64.0.0/10 action=drop out-interface= . add chain=forward dst-address=100.64.0.0/10 action=drop out-interface= . add chain=forward dst-address=100.64.0.0/10 action=drop out-interface= . add chain=input dst-address=100.64.0.0/10 action=drop out-interface= . add chain=input dst-address=100.64.0.0/10 action=drop out-interface=

服务提供商可能需要记录映射地址,在大型CGN部署的网络中,这可能是一个问题。幸运的是,RFC 7422建议了一种管理CGN翻译的方法,这种方法可以在为滥用响应提供可跟踪性的同时,显著减少所需的日志记录量。

RFC声明,与记录每个连接不同,CGN可以确定地将客户私有地址(在CGN的面向客户的接口上接收,也就是内部端)映射到端口范围扩展的公共地址。

在Rol雷竞技uterOS中,所描述的算法可以用很少的脚本函数完成。让我们举个例子:

在知识产权 不在IP/端口范围内
100.64.1.1 2.2.2.2:2000-2099
100.64.1.2 2.2.2.2:2100-2199
100.64.1.3 2.2.2.2:2200-2299
100.64.1.4 2.2.2.2:2300-2399
100.64.1.5 2.2.2.2:2400-2499
100.64.1.6 2.2.2.2:2500-2599

我们可以编写一个自动添加这些规则的函数,而不是手工编写NAT映射。

:global sqrt do={:for i from=0 to=$1 do={:if (i * i > $1) do={:return ($i - 1)}}}:global addNatRules do={/ip firewall nat add chain=srcnat action=jump jump-target=xxx \ src-address="$($srcStart)-$($srcStart + $count - 1)":local x [$sqrt $count]:local y $x:if ($x * $x =$ count) do={:set y ($x + 1)}:for I from=0 to=$x do={/ip防火墙NAT add chain=xxx action=jump jump-target="xxx-$($ I)"\ src-address = " $(美元srcStart + ($ x * $ i))——美元($ srcStart + ($ x * (i + 1美元)- 1))”}:for i from=0 to=($count - 1) do={:local prange "$($portStart + ($i * $portsPerAddr))-$($portStart + ($i + 1) * $portsPerAddr) - 1)"/ip防火墙nat add chain="xxx-$($i / $x)" action=src-nat protocol=tcp src-address=($srcStart + $i) \ to-address=$toAddr to-ports=$prange /ip防火墙nat add chain="xxx-$($i / $x)" action=src-nat protocol=udp src-address=($srcStart + $i) \ to-address=$toAddr to-ports=$prange}}

在终端中粘贴上述脚本后,函数“addNatRules”可用。如果以我们的例子为例,我们需要映射6个共享网络地址来映射到2.2.2.2,每个地址使用从2000开始的100个端口范围。所以我们运行函数:

$addNatRules count=6 srcStart=100.64.1.1 toAddr=2.2.2.2 portStart=2000 portsPerAddr=100

现在你应该能够得到一组规则:

[admin@rack1_b18_450] /ip firewall nat> print Flags:X -禁用,I -无效,D -动态0 = srcnat行动=跳链跳转目标= xxx src-address = 100.64.1.1-100.64.1.6日志=没有log-prefix = " 1链= xxx行动=跳跳转目标= xxx-0 src-address = 100.64.1.1-100.64.1.2日志=没有log-prefix = " 2链= xxx行动=跳跳转目标= xxx-1 src-address = 100.64.1.3-100.64.1.4日志=没有log-prefix = " 3链= xxx action =跳跳转目标= xxx-2 src-address = 100.64.1.5-100.64.1.6日志=没有log-prefix = " " 4链= xxx-0 action = src-nat地址= 2.2.2.2向港口= 2000 - 2099 = tcp协议6 chain=xxx-0 action=src-nat to-addresses=2.2.2.2 to-ports=2100-2199 protocol=tcp Src-address =100.64.1.2 log=no log-prefix="" 7 chain=xxx-0 action=src-nat to-addresses=2.2.2.2 to-ports=2100-2199 protocol=udp Src-address =100.64.1.2 log=no log-prefix="" 8 chain=xxx-1 action=src-nat to-addresses=2.2.2.2 to-ports= 2.2 -2299 to-ports=2200-2299协议=tcp src-address=100.64.1.3 log=no log-prefix="" 9 chain=xxx-1 action=src-nat to-addresses=2.2.2.2 to-ports=2200-2299 Protocol =udp src-address=100.64.1.3 log=no log-prefix="" 10 chain=xxx-1 action=src-nat to-addresses=2.2.2.2 to-ports=2300-2399 Protocol =tcp src-address=100.64.1.4 log=no log-prefix="" 11 chain=xxx-1 action=src-nat to-addresses=2.2.2.2 to-ports=2300-2399 Protocol =udp src-address=100.64.1.4 log=no log-prefix="" 12 chain=xxx-2 action=src-nat to-addresses=2.2.2.2 to-ports=2300-2399 Protocol =udp src-address=100.64.1.4 log=no log-prefix="13 chain=xxx-2 action=src-nat to-addresses=2.2.2.2 To-ports =2400-2499 protocol=udp src-address=100.64.1.5 log=no log-prefix="" 14 chain=xxx-2 action=src-nat to-addresses=2.2.2.2 To-ports =2500-2599 protocol=tcp src-address=100.64.1.6 log=no log-prefix="" 15 chain=xxx-2 action=src-nat to-addresses=2.2.2.2 To-ports =2500-2599 protocol=udp src-address=100.64.1.6 log=no log-prefix=""


发夹NAT

发夹网地址转换(NAT回送)是局域网中的设备能够通过网关路由器的公共IP地址访问局域网中的另一台机器的地方。



在上面的例子中,网关路由器具有以下特性dst-nat配置规则:

/ip firewall NAT add chain=dstnat action=dst-nat dst-address=172.16.16.1 dst-port=443 to-addresses=10.0.0.3 to-ports=443 protocol=tcp

当用户从家中PC与webserver建立连接时,路由器会按照配置执行夏令时NAT:

  1. 客户端通过443端口向目的IP地址172.16.16.1发送源IP地址为192.168.88.1的数据包,请求一些web资源;
  2. 路由器的目的NAT将数据包转换为10.0.0.3,并相应地替换数据包中的目的IP地址。源IP地址保持不变:192.168.88.1;
  3. 服务器响应客户端的请求,应答报文的源IP地址为10.0.0.3,目的IP地址为192.168.88.1。
  4. 路由器判断该报文是前一次连接的一部分,取消目的NAT,在源IP地址字段中填写原来的目的地址。目的IP地址为192.168.88.1,源IP地址为172.16.16.1;
  5. 客户端收到它所期望的应答包,并建立连接;


但是,会有一个问题,当与web服务器在同一网络上的客户端请求连接到web服务器时公共IP地址:

  1. 客户端通过443端口向目的IP地址172.16.16.1发送源IP地址为10.0.0.2的报文,请求一些web资源;
  2. 路由器的目的地址将报文nat为10.0.0.3,并替换该报文中的目的IP地址。源IP地址不变:10.0.0.2;
  3. 服务器响应客户机的请求。但是,请求的源IP地址与web服务器在同一子网中。web服务器不将应答发送回路由器,而是直接将应答发送回10.0.0.2,并在应答中添加源IP地址10.0.0.3;
  4. 客户端接收到应答包,但是它丢弃了它,因为它期望从172.16.16.1返回一个包,而不是从10.0.0.3;

为了解决这个问题,我们将配置一个新的src-nat规则(发夹NAT规则)如下:

/ip firewall nat add action=masquerade chain=srcnat dst-address=10.0.0.3 out-interface=LAN protocol=tcp src-address=10.0.0.0/24

配置以上规则后:

  1. 客户端通过443端口向目的IP地址172.16.16.1发送源IP地址为10.0.0.2的报文,请求一些web资源;
  2. 路由器的目的地址将报文nat为10.0.0.3,并替换该报文中的目的IP地址。它还对数据包进行源nat,并用其LAN接口上的IP地址替换数据包中的源IP地址。目的IP地址为10.0.0.3,源IP地址为10.0.0.1;
  3. web服务器响应请求,并将源IP地址为10.0.0.3的应答发送回路由器的LAN接口IP地址10.0.0.1;
  4. 路由器判断该报文是前一次连接的一部分,同时取消源NAT和目的NAT,源IP地址填写原目的IP地址10.0.0.3,目的IP地址填写原源IP地址172.16.16.1

IPv4

属性

财产 描述
行动动作名称;默认值:接受 当数据包被规则匹配时采取的动作:
  • 接受-接受报文。报文没有传递到下一个NAT规则。
  • add-dst-to-address-list-将目的地址添加到的一个ddress列表指定的地址列表参数
  • add-src-to-address-list-将源地址添加到的一个ddress列表指定的地址列表参数
  • dst-nat-将IP报文的目的地址和/或端口替换为收件人地址而且与港口参数
  • -跳转到由值指定的用户自定义链跳转目标参数
  • 日志—在系统日志中增加一条消息,内容包括:in-interface、out-interface、src-mac、protocol、src-ip:port—>dst-ip:报文的端口和长度。数据包匹配后,它被传递到列表中的下一个规则,类似于透传
  • 化妆舞会-将IP报文的源端口替换为与港口参数,并将IP数据包的源地址替换为由路由设施确定的IP地址。
  • netmap—静态1:1映射一组IP地址到另一组IP地址。通常用于将公网IP地址分配给私有网络中的主机
  • 透传—如果匹配到该规则,则增加计数器,转到下一条规则(方便统计)。
  • 重定向-将IP报文的目的端口替换为与港口参数和目的地址到路由器的本地地址之一
  • 返回-将控制从跳转发生的地方传递回链
  • 相同-为特定客户端每个连接提供相同的源/目的IP地址。对于来自同一客户端的多个连接需要相同客户端地址的服务,最常使用这种方法
  • src-nat-将IP报文的源地址替换为收件人地址而且与港口参数
地址列表字符串;默认值:) 要使用的地址列表的名称。适用于以下情况add-dst-to-address-listadd-src-to-address-list
address-list-timeoutnondynamic | nonstatic |时间;默认值:none-dynamic 指定的地址列表中删除地址的时间间隔地址列表参数。与…一起使用add-dst-to-address-listadd-src-to-address-list行动
  • 的价值none-dynamic00:00:00)会将地址留在地址列表中,直到重新启动
  • 的价值none-static是否将该地址永远留在地址列表中,并将包含在配置导出/备份中
的名字;默认值:) 指定要向哪个链规则添加。如果输入与已经定义的链的名称不匹配,则会创建一个新的链
评论字符串;默认值:) 规则的描述性注释
connection-bytesinteger-integer;默认值:) 仅当特定连接传输了给定数量的字节时才匹配数据包。例如,0 -表示无穷大connection-bytes = 2000000 - 0表示如果通过相关连接传输的数据超过2MB,则规则匹配
连接上限整数,子网掩码;默认值:) 在达到给定值后,匹配每个地址或地址块的连接
connection-mark无标记|字符串;默认值:) 匹配包标记通过破损设备与特定的连接标记。如果无标记设置后,规则是否匹配任何未标记的连接
连接率整数0 . . 4294967295;默认值:) 连接速率是一个防火墙匹配器,允许基于当前连接速度捕获流量
连接类型FTP | h323 | irc | PPTP | quake3 | sip | TFTP;默认值:) 根据来自相关连接跟踪助手的信息匹配来自相关连接的数据包。下必须启用相关的连接帮助程序. /ip firewall service-port .使用实例
内容字符串;默认值:) 匹配包含指定文本的报文
dscp整数:0 . . 63;默认值:) 匹配DSCP IP报头字段。
dst-addressIP/netmask | IP范围;默认值:) 匹配目的地址等于指定IP地址或指定IP地址范围的报文。
dst-address-list的名字;默认值:) 报文的目的地址与用户自定义的匹配地址列表
dst-address-type单播|本地|广播|组播;默认值:) 匹配目的地址类型:
  • 单播—点对点传输的IP地址
  • 当地的-如果dst-address被分配给路由器的一个接口
  • 广播- packet发送到子网内的所有设备
  • 多播- packet被转发到指定的设备组
dst-limitInteger [/time], dst-address | dst-port | src-address[/time];默认值:) 匹配数据包,直到超过给定的PPS限制。而不是限制每个目的IP地址/目的端口都有自己的限制。参数的格式如下:数(/时间),破裂,模式[/到期]
  • -以包数为单位的最大平均包速率时间时间间隔
  • 时间-指定测量数据包速率的时间间隔(可选)
  • 破裂-不按包率统计的包数
  • 模式—报文限速的分类器
  • 到期-指定删除记录的IP地址/端口的时间间隔(可选)
dst-port整数(整数):0 . . 65535;默认值:) 目的端口号或端口号范围的格式列表范围(、港口),例如,dst-port = 123 - 345456 - 678
片段是的|不;默认值:) 匹配分片报文。第一个(开始的)片段不算数。如果连接跟踪被启用,将没有片段,因为系统自动组装每个数据包
热点Auth | from-client | HTTP | local-dst | to-client;默认值:) 将从HotSpot客户端接收的数据包与各种HotSpot匹配器进行匹配。
  • 身份验证-匹配通过认证的热点客户端报文
  • 从客户端-匹配来自HotSpot客户端的报文
  • http-匹配发送到HotSpot服务器的HTTP请求
  • local-dst-命中热点服务器的报文
  • 到客户端-匹配发送到HotSpot客户端的报文
icmp-options整数:整数;默认值:) 匹配ICMP类型:code字段
in-bridge-port的名字;默认值:) 如果入接口是网桥,则数据包已经进入路由器的实际接口
系统界面的名字;默认值:) 当报文进入路由器的接口
ingress-priority整数:0 . . 63;默认值:) 匹配入报文的优先级。优先级可以由VLAN位、WMM位或MPLS EXP位派生。
ipsec-policyIn | out, ipsec | none;默认值:) 匹配IPSec使用的策略。取值的格式如下:方向,政策.方向为“用于”选择是匹配解封装策略还是匹配封装策略。
  • -在PREROUTING、INPUT和FORWARD链中有效
  • -在POSTROUTING, OUTPUT和FORWARD链中有效
  • ipsec-如果报文进行IPsec处理,则匹配;
  • 没有一个-匹配不经过IPsec处理的报文(如IPsec传输报文)。

例如,如果路由器收到IPsec封装的Gre报文,则规则ipsec-policy =, ipsec匹配Gre数据包,但规则是什么ipsec-policy =,没有将匹配ESP报文。

ipv4-options任意| loose-source-routing | no-record-route | no-router-alert | no-source-routing | no-timestamp | none | record-route | router-alert | strict-source-routing | timestamp;默认值:) 匹配IPv4报头选项。
  • 任何-至少匹配一个ipv4选项
  • loose-source-routing-匹配松散源路由选项的报文。此选项用于根据源提供的信息路由internet数据报
  • no-record-route-匹配无记录路由选项的报文。此选项用于根据源提供的信息路由internet数据报
  • no-router-alert-匹配不带router alter选项的报文
  • no-source-routing-匹配不带源路由选项的报文
  • no-timestamp-匹配不带时间戳选项的报文
  • 记录路由-匹配带有记录路由选项的报文
  • router-alert-使用router alter选项匹配报文
  • strict-source-routing-匹配严格源路由选项的报文
  • 时间戳-使用时间戳匹配报文
跳转目标的名字;默认值:) 要跳转到的目标链的名称。只适用于以下情况action =跳
layer7-protocol的名字;默认值:) 中定义的Layer7过滤器名称Layer7协议菜单。
限制整数,整数;默认值:) 匹配数据包,直到超过给定的PPS限制。参数的格式如下:数(/时间),破裂
  • -以包数为单位的最大平均包速率时间时间间隔
  • 时间-指定测量数据包速率的时间间隔(可选,如果没有指定,将使用1s)
  • 破裂-不按包率统计的包数
日志是|否;默认值:没有 在系统日志中增加一条消息,内容包括:in-interface, out-interface, src-mac, protocol, src-ip:port->dst-ip:端口,报文长度。
log-prefix字符串;默认值:) 在每条日志消息的开头添加指定的文本。如果适用action =日志日志= yes配置。
out-bridge-port的名字;默认值:) 如果出接口是网桥,报文离开路由器的实际接口
out-interface(;默认值:) 当报文离开路由器时,在接口上发送
packet-mark无标记|字符串;默认值:) 匹配通过绞轧设备标记的数据包与特定的数据包标记。如果无标记设置后,规则是否匹配任何未标记的包
数据包大小整数(整数):0 . . 65535;默认值:) 以字节为单位匹配指定大小或大小范围的数据包
per-connection-classifierValuesToHash:分母/余数;默认值:) PCC匹配器允许将流量划分为相等的流,并能够在一个特定的流中保持具有特定选项集的数据包
港口整数(整数):0 . . 65535;默认值:) 如果任何(源或目的)端口与指定的端口或端口范围列表匹配,则进行匹配。只适用于以下情况协议是TCP还是UDP
协议名称或协议ID;默认值:tcp 匹配由协议名称或编号指定的特定IP协议
psd整数,整数,整数;默认值:) 试图检测TCP和UDP扫描。参数格式如下所示WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight
  • WeightThreshold—来自同一主机的不同目的端口的最新TCP/UDP报文的总权重作为端口扫描序列处理
  • DelayThreshold—来自同一主机的目的端口不同的报文的延迟,作为可能的端口扫描子序列处理
  • LowPortWeight—特权目的端口(<1024)报文的权值
  • HighPortWeight-具有非特权目的端口的数据包的重量
随机整数:1 . . 99;默认值:) 以给定的概率随机匹配数据包
routing-mark字符串;默认值:) 将轧片设备标记的数据包与特定路由标记匹配
same-not-by-dst是|不是;默认值:) 选择新的源IP地址时是否考虑目的IP地址。如果适用action =相同
src-addressIp/Netmaks, Ip范围;默认值:) 匹配源等于指定IP地址或在指定IP范围内的报文。
src-address-list的名字;默认值:) 匹配自定义的源地址地址列表
src-address-type单播|本地|广播|组播;默认值:)

匹配源地址类型:

  • 单播—点对点传输的IP地址
  • 当地的-如果一个地址被分配给路由器的一个接口
  • 广播- packet发送到子网内的所有设备
  • 多播- packet被转发到指定的设备组
src-port整数(整数):0 . . 65535;默认值:) 源端口列表及源端口范围。仅当协议为TCP或UDP时适用。
src-mac-addressMAC地址;默认值:) 匹配报文的源MAC地址
tcp-mss整数(整数):0 . . 65535;默认值:) 匹配IP报文的TCP MSS值
时间时间时间,星期六,星期五,星期四,星期三,星期二,星期一,太阳;默认值:) 允许基于数据包的到达时间和日期创建过滤器,或者对于本地生成的数据包,创建离开时间和日期
收件人地址IP地址[-IP地址];默认值:0.0.0.0 用指定的地址替换原来的地址。当动作为dst-nat, netmap, same, src-nat时适用
与港口整数(整数):0 . . 65535;默认值:) 将原有端口替换为指定端口。适用于动作为dst-nat、redirect、masquerade、netmap、same、src-nat时
ttl整数:0 . . 255;默认值:) 匹配数据包的TTL值

统计数据

财产 描述
字节整数 规则匹配的字节总数
整数 规则命中的报文总数

为了显示额外的只读属性:

[admin@雷竞技网站MikroTik] > ip firewall nat print stats all标志:X - disabled, I - invalid, D - dynamic # CHAIN ACTION BYTES PACKETS 0 srcnat masquerade 265 659 987

IPv6

从RouterOS v .开始支持NAT66l雷竞技7.1.

ipv6 /防火墙/ nat /

属性

财产 描述
行动动作名称;默认值:接受 当数据包被规则匹配时采取的动作:
  • 接受-接受报文。报文没有传递到下一个NAT规则。
  • add-dst-to-address-list-将目的地址添加到的一个ddress列表指定的地址列表参数
  • add-src-to-address-list-将源地址添加到的一个ddress列表指定的地址列表参数
  • dst-nat-将IP报文的目的地址和/或端口替换为收件人地址而且与港口参数
  • -跳转到由值指定的用户自定义链跳转目标参数
  • 日志—在系统日志中增加一条消息,内容包括:in-interface、out-interface、src-mac、protocol、src-ip:port—>dst-ip:报文的端口和长度。数据包匹配后,它被传递到列表中的下一个规则,类似于透传
  • 化妆舞会-将IP报文的源端口替换为与港口参数,并将IP数据包的源地址替换为由路由设施确定的IP地址。
  • netmap—静态1:1映射一组IP地址到另一组IP地址。通常用于将公网IP地址分配给私有网络中的主机
  • 透传—如果匹配到该规则,则增加计数器,转到下一条规则(方便统计)。
  • 重定向-将IP报文的目的端口替换为与港口参数和目的地址到路由器的本地地址之一
  • 返回-将控制从跳转发生的地方传递回链
  • src-nat-将IP报文的源地址替换为收件人地址而且与港口参数
地址列表字符串;默认值:) 要使用的地址列表的名称。适用于以下情况add-dst-to-address-listadd-src-to-address-list
address-list-timeoutnondynamic | nonstatic |时间;默认值:none-dynamic 指定的地址列表中删除地址的时间间隔地址列表参数。与…一起使用add-dst-to-address-listadd-src-to-address-list行动
  • 的价值none-dynamic00:00:00)会将地址留在地址列表中,直到重新启动
  • 的价值none-static是否将该地址永远留在地址列表中,并将包含在配置导出/备份中
的名字;默认值:) 指定要向哪个链规则添加。如果输入与已经定义的链的名称不匹配,则会创建一个新的链
评论字符串;默认值:) 规则的描述性注释
connection-bytesinteger-integer;默认值:) 仅当特定连接传输了给定数量的字节时才匹配数据包。例如,0 -表示无穷大connection-bytes = 2000000 - 0表示如果通过相关连接传输的数据超过2MB,则规则匹配
连接上限整数,子网掩码;默认值:) 在达到给定值后,匹配每个地址或地址块的连接
connection-mark无标记|字符串;默认值:) 匹配包标记通过破损设备与特定的连接标记。如果无标记设置后,规则是否匹配任何未标记的连接
连接率整数0 . . 4294967295;默认值:) 连接速率是一个防火墙匹配器,允许基于当前连接速度捕获流量
连接状态已建立的|无效|新|相关|未跟踪;默认值:) 解释特定数据包的连接跟踪分析数据:
  • 建立了-属于已存在连接的报文
  • 无效的—在连接跟踪中没有确定状态的报文(通常是严重的乱序报文、序列/ack号错误的报文、路由器资源过度使用的报文),因此无效报文将不会参与NAT转换(只有connection-state=new报文才会),路由时仍会包含原始源IP地址。我们强烈建议放弃一切连接状态=无效防火墙过滤器中的数据包转发和输入链
  • -数据包已经开始了一个新的连接,或者与一个没有在两个方向上看到数据包的连接关联。
  • 相关的—与现有连接相关但不是现有连接的一部分的报文,例如ICMP错误报文或开始FTP数据连接的报文
  • 一个无路径的-防火墙设置绕过连接跟踪的报文表。
连接类型FTP | h323 | irc | PPTP | quake3 | sip | TFTP;默认值:) 根据来自相关连接跟踪助手的信息匹配来自相关连接的数据包。下必须启用相关的连接帮助程序. /ip firewall service-port .使用实例
内容字符串;默认值:) 匹配包含指定文本的报文
dscp整数:0 . . 63;默认值:) 匹配DSCP IP报头字段。
dst-addressIP/netmask | IP范围;默认值:) 匹配目的地址等于指定IP地址或指定IP地址范围的报文。
dst-address-list的名字;默认值:) 报文的目的地址与用户自定义的匹配地址列表
dst-address-type单播|本地|广播|组播;默认值:) 匹配目的地址类型:
  • 单播—点对点传输的IP地址
  • 当地的-如果dst-address被分配给路由器的一个接口
  • 广播- packet发送到子网内的所有设备
  • 多播- packet被转发到指定的设备组
dst-limitInteger [/time], dst-address | dst-port | src-address[/time];默认值:) 匹配数据包,直到超过给定的PPS限制。而不是限制每个目的IP地址/目的端口都有自己的限制。参数的格式如下:数(/时间),破裂,模式[/到期]
  • -以包数为单位的最大平均包速率时间时间间隔
  • 时间-指定测量数据包速率的时间间隔(可选)
  • 破裂-不按包率统计的包数
  • 模式—报文限速的分类器
  • 到期-指定删除记录的IP地址/端口的时间间隔(可选)
dst-port整数(整数):0 . . 65535;默认值:) 目的端口号或端口号范围的格式列表范围(、港口),例如,dst-port = 123 - 345456 - 678
icmp-options整数:整数;默认值:) 匹配ICMP类型:code字段
in-bridge-port的名字;默认值:) 如果入接口是网桥,则数据包已经进入路由器的实际接口
in-bridge-port-list的名字;默认值:) 中定义的接口集接口列表。工作原理与in-bridge-port
系统界面的名字;默认值:) 当报文进入路由器的接口
in-interface-list的名字;默认值:) 中定义的接口集接口列表。工作原理与系统界面
ingress-priority整数:0 . . 63;默认值:) 匹配入报文的优先级。优先级可以由VLAN位、WMM位或MPLS EXP位派生。
ipsec-policyIn | out, ipsec | none;默认值:) 匹配IPSec使用的策略。取值的格式如下:方向,政策.方向为“用于”选择是匹配解封装策略还是匹配封装策略。
  • -在PREROUTING、INPUT和FORWARD链中有效
  • -在POSTROUTING, OUTPUT和FORWARD链中有效
  • ipsec-如果报文进行IPsec处理,则匹配;
  • 没有一个-匹配不经过IPsec处理的报文(如IPsec传输报文)。

例如,如果路由器收到IPsec封装的Gre报文,则规则ipsec-policy =, ipsec匹配Gre数据包,但规则是什么ipsec-policy =,没有将匹配ESP报文。

跳转目标的名字;默认值:) 要跳转到的目标链的名称。只适用于以下情况action =跳
layer7-protocol的名字;默认值:) 中定义的Layer7过滤器名称Layer7协议菜单。
限制整数,整数;默认值:) 匹配数据包,直到超过给定的PPS限制。参数的格式如下:数(/时间),破裂
  • -以包数为单位的最大平均包速率时间时间间隔
  • 时间-指定测量数据包速率的时间间隔(可选,如果没有指定,将使用1s)
  • 破裂-不按包率统计的包数
日志是|否;默认值:没有 在系统日志中增加一条消息,内容包括:in-interface, out-interface, src-mac, protocol, src-ip:port->dst-ip:端口,报文长度。
log-prefix字符串;默认值:) 在每条日志消息的开头添加指定的文本。如果适用action =日志日志= yes配置。
out-bridge-port的名字;默认值:) 如果出接口是网桥,报文离开路由器的实际接口
out-bridge-port-list的名字;默认值:) 中定义的接口集接口列表。工作原理与out-bridge-port
out-interface(;默认值:) 当报文离开路由器时,在接口上发送
out-interface-list的名字;默认值:) 中定义的接口集接口列表。工作原理与out-interface
packet-mark无标记|字符串;默认值:) 匹配通过绞轧设备标记的数据包与特定的数据包标记。如果无标记设置后,规则是否匹配任何未标记的包
数据包大小整数(整数):0 . . 65535;默认值:) 以字节为单位匹配指定大小或大小范围的数据包
per-connection-classifierValuesToHash:分母/余数;默认值:) PCC匹配器允许将流量划分为相等的流,并能够在一个特定的流中保持具有特定选项集的数据包
港口整数(整数):0 . . 65535;默认值:) 如果任何(源或目的)端口与指定的端口或端口范围列表匹配,则进行匹配。只适用于以下情况协议是TCP还是UDP
协议名称或协议ID;默认值:tcp 匹配由协议名称或编号指定的特定IP协议
优先级整数:0 . . 63;默认值:) 在设置了新的优先级后,匹配数据包的优先级。优先级可以来自VLAN、WMM、DSCP、MPLS EXP位,也可以来自已使用设置优先级行动。
随机整数:1 . . 99;默认值:) 以给定的概率随机匹配数据包
routing-mark字符串;默认值:) 将轧片设备标记的数据包与特定路由标记匹配
src-addressIp/Netmaks, Ip范围;默认值:) 匹配源等于指定IP地址或在指定IP范围内的报文。
src-address-list的名字;默认值:) 匹配自定义的源地址地址列表
src-address-type单播|本地|广播|组播;默认值:)

匹配源地址类型:

  • 单播—点对点传输的IP地址
  • 当地的-如果一个地址被分配给路由器的一个接口
  • 广播- packet发送到子网内的所有设备
  • 多播- packet被转发到指定的设备组
src-port整数(整数):0 . . 65535;默认值:) 源端口列表及源端口范围。仅当协议为TCP或UDP时适用。
tcp-flagsAck | CWR | ece | fin | PSH | RST | syn | urg;默认值:) 匹配指定的TCP标志
  • -确认数据
  • -阻塞窗口减少
  • ece- ECN-echo标志(显式拥塞通知)
  • -紧密连接
  • psh-推送功能
  • rst- drop连接
  • syn-新连接
  • 开始-紧急数据
src-mac-addressMAC地址;默认值:) 匹配报文的源MAC地址
tcp-mss整数(整数):0 . . 65535;默认值:) 匹配IP报文的TCP MSS值
时间时间时间,星期六,星期五,星期四,星期三,星期二,星期一,太阳;默认值:) 允许基于数据包的到达时间和日期创建过滤器,或者对于本地生成的数据包,创建离开时间和日期
收件人地址IP地址[-IP地址];默认值:0.0.0.0 用指定的地址替换原来的地址。当动作为dst-nat, netmap, same, src-nat时适用
与港口整数(整数):0 . . 65535;默认值:) 将原有端口替换为指定端口。适用于动作为dst-nat、redirect、masquerade、netmap、same、src-nat时

统计数据

财产 描述
字节整数 规则匹配的字节总数
整数 规则命中的报文总数

为了显示额外的只读属性:

ipv6 /防火墙/ nat /打印数据
  • 没有标签