在上一篇文章 04.设置DHCPv4 中,已经设置了 DHCPv4 服务器。

此时,连接上 RouterOS 的内网设备可以正常获取到 IPv4 地址,但还不能正常访问外网。

因为此时的 RouterOS 不仅关闭了 PPPoE 连接,而且还未设置防火墙。

1.1.设置 IPv4 防火墙

在设置防火墙之前,请再次检查各 网络接口 以及对应的 端口组 是否正确。

联网模式端口组名称端口组成员
PPPoEWANpppoe-out1
LANbridge1
ONUether1
DHCPv4WANether1
LANbridge1

防火墙配置内容包括 address-list 、filter 、nat 、mangle 、raw 以及一些和防火墙相关的系统参数。

防火墙配置命令是基于 RouterOS 官方文档 Building Advanced Firewall 经过少许修改而来。

主要修改了 DDoS 、 ICMP 、 DNS Redirect 等规则,但尽可能的保证了和官方文档的一致性。

与连接跟踪相关的配置项,在参考了 Linux 内核默认值以及官方文档 Connection tracking 后做了如下调整:

参数值说明
tcp-syn-sent-timeout120sTCP SYN 发送超时,系统默认值为 5s
tcp-syn-received-timeout60sTCP SYN 接收超时,系统默认值为 5s
tcp-established-timeout7440sTCP 已建立连接超时,系统默认值为 1d
tcp-fin-wait-timeout120sTCP FIN 等待超时,系统默认值为 10s
tcp-close-wait-timeout60sTCP 关闭等待超时,系统默认值为 10s
tcp-last-ack-timeout30sTCP 最后确认超时,系统默认值为 10s
tcp-time-wait-timeout120sTCP TIME-WAIT 超时,系统默认值为 10s
tcp-close-timeout10sTCP 关闭超时,未修改
tcp-max-retrans-timeout300sTCP 最大重传超时,未修改
tcp-unacked-timeout300sTCP 未确认超时,未修改
udp-timeout30sUDP 超时,未修改
udp-stream-timeout120sUDP 数据流超时,系统默认值为 180s
icmp-timeout30sICMP 超时,系统默认值为 10s
generic-timeout600s通用超时,未修改

同样是复制防火墙配置命令,一次性全部粘贴到 CLI 中执行,即可完成 “一键配置” 。

由于防火墙的配置命令很长,因此请根据实际情况选择对应的 IPv4 防火墙配置脚本。

联网模式内网 DNS检测 DDoS防火墙等级配置脚本
PPPoE否否初级ros_firewall_ipv4.pppoe.basic.conf
否否高级ros_firewall_ipv4.pppoe.advanced.conf
是是高级ros_firewall_ipv4.pppoe.expert.conf
DHCP否否初级ros_firewall_ipv4.dhcp.basic.conf
否否高级ros_firewall_ipv4.dhcp.advanced.conf
是是高级ros_firewall_ipv4.dhcp.expert.conf

需要注意的是,防火墙配置命令中的部分 IPv4 地址,需要根据实际情况进行调整。

  • 光猫 IPv4 地址: 192.168.1.1
  • 内网 IPv4 地址段: 172.16.1.0/24
    • RouterOS IPv4 地址: 172.16.1.1
  • 内网 DNS 服务器 IPv4 地址: 172.16.1.2 、 172.16.1.3 、 172.16.1.50

需要对应修改 address-list 表中的 local_onu_ipv4 、 local_subnet_ipv4 、 local_dns_ipv4 这几个地址参数。

防火墙配置命令

点击 Winbox 左侧导航 IP 菜单的子菜单 Firewall 并查看防火墙各个选项卡中内容。

检查防火墙

确认防火墙条目与命令中的条目一致后,便可在 Interfaces 中启用 PPPoE 拨号。

启用后, PPPoE 拨号前面的状态显示为 R ,则表示 PPPoE 已连接。

此时打开电脑浏览器,尝试对常用的网站进行访问,检查网络是否可用。

激活PPPoE拨号

1.2.设置 IPv4 黑洞路由

IPv4 黑洞路由 blackhole route 是一组静态路由,基于 RFC6890 - Special-Purpose IP Address Registries 创建,本段内容为可选步骤。

黑洞路由是一种高效的网络安全机制,用于丢弃特定目的地的流量。

黑洞路由与常规路由条目可共存于路由表中,但仅在没有更具体匹配时生效,遵循最长前缀匹配原则。

在复杂网络中实施时,建议先测试并验证黑洞路由对业务数据的影响,以确保不会意外中断关键的业务流量。

配置 IPv4 黑洞路由时,将以下命令一次性全部粘贴到 CLI 中执行即可。

如果不便复制代码,请查阅文件 ros_blackhole_ipv4.conf 。

/ip route

add blackhole comment="defconf: RFC6890 - this network" disabled=no dst-address=0.0.0.0/8
add blackhole comment="defconf: RFC6890 - private networks" disabled=no dst-address=10.0.0.0/8
add blackhole comment="defconf: RFC6890 - shared address" disabled=no dst-address=100.64.0.0/10
add blackhole comment="defconf: RFC6890 - private networks" disabled=no dst-address=172.16.0.0/12
add blackhole comment="defconf: RFC6890 - reserved" disabled=no dst-address=192.0.0.0/24
add blackhole comment="defconf: RFC6890 - DS-Lite" disabled=no dst-address=192.0.0.0/29
add blackhole comment="defconf: RFC6890 - TEST-NET-1" disabled=no dst-address=192.0.2.0/24
add blackhole comment="defconf: RFC6890 - 6to4 relay" disabled=no dst-address=192.88.99.0/24
add blackhole comment="defconf: RFC6890 - private networks" disabled=no dst-address=192.168.0.0/16
add blackhole comment="defconf: RFC6890 - benchmarking" disabled=no dst-address=198.18.0.0/15
add blackhole comment="defconf: RFC6890 - TEST-NET-2" disabled=no dst-address=198.51.100.0/24
add blackhole comment="defconf: RFC6890 - TEST-NET-3" disabled=no dst-address=203.0.113.0/24
add blackhole comment="defconf: RFC6890 - reserved" disabled=no dst-address=240.0.0.0/4

点击 Winbox 左侧导航 IP 菜单的子菜单 Routes 并查看防火墙各个选项卡中内容。

检查IPv4黑洞路由

至此,RouterOS 设置 IPv4 防火墙步骤完成。