ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

烽火FR2600/FR2610路由器NAT Server端口映射配置与排错指南

烽火FR2600/FR2610路由器NAT Server端口映射配置与排错指南 1. 项目缘起一次真实的网络改造需求最近接手了一个小企业网络改造的项目客户那边有几台服务器需要对外提供服务但公网IP地址就那么一个预算又有限没法上更高级的防火墙设备。客户现场用的是一台烽火Fiberhome的FR2600路由器这设备在运营商和企业边缘接入场景里挺常见的性能稳定该有的功能也都有。核心需求很明确要把内网的Web服务器、文件服务器和视频会议服务器映射出去让外网能访问。说实话刚拿到这个需求时我心里是有点打鼓的。烽火的设备命令行界面和常见的思科、华为风格不太一样网上能找到的、针对具体型号的详细配置案例尤其是关于NAT Server也就是端口映射这块的确实不多。大部分资料都停留在基础的路由和NAT Outbound内网访问外网配置真到了需要精细映射的时候就得自己一点点摸索了。这次项目正好把FR2600和它的兄弟型号FR2610的NAT配置特别是静态NATNAT Server这块从头到尾踩了一遍把关键步骤、容易出错的点以及背后的原理都整理了出来。如果你也正在和烽火的路由器打交道特别是需要做端口映射那这篇笔记应该能帮你省下不少查资料和排错的时间。2. 理解烽火FR系列路由器的NAT逻辑框架在动手敲命令之前我们必须先搞清楚烽火FR路由器处理NAT的“思维方式”。这和我们熟悉的有些品牌不太一样理解了这个框架配置起来才能得心应手而不是照猫画虎。2.1 核心概念NAT Outbound 与 NAT Server 的分离与联动烽火FR系列包括FR2600/FR2610的NAT配置体系可以理解为两个相对独立但又可能产生交集的模块NAT Outbound出方向NAT或动态NAT这是最常见的场景解决内网大量私网IP通过一个或少数几个公网IP访问互联网的问题。它的核心是ACL访问控制列表和NAT地址池。配置逻辑是定义一个ACL匹配需要做NAT转换的内网网段例如192.168.1.0/24再定义一个NAT地址池里面是可供转换的公网IP地址可以是单个IP也可以是连续地址段最后将ACL和地址池绑定到路由器的出接口通常是连接互联网的WAN口上。当内网数据包匹配ACL并从该接口发出时路由器就会从地址池中动态选取一个公网IP替换源地址。NAT Server静态NAT或端口映射这就是我们本次项目的重点解决从外网主动访问内网服务器的问题。它的配置更“静态”和“精确”。你需要明确指定一个公网IP的某个特定端口或端口范围对应到内网某个服务器的IP的某个特定端口。例如将公网IP 202.96.1.100的TCP 80端口映射到内网服务器192.168.1.100的TCP 80端口。关键点在于在很多场景下这两个功能是共存的。内网用户需要通过NAT Outbound上网同时外网用户需要通过NAT Server访问内网服务。烽火设备能很好地处理这种并存。但配置顺序和逻辑关联需要留意通常建议先配置好基础的接口IP、路由再配置NAT Server最后配置NAT Outbound。2.2 配置视图与模式切换烽火FR系列采用类华为的VRP命令行风格但有自己的一些特点。配置通常在系统视图[Fiberhome]下进行。进入各种功能配置子视图的命令也类似比如进入接口视图是interface gigabitethernet 0/0/1进入ACL视图是acl number 3000。一个非常重要的细节是在配置NAT相关规则时必须进入相应接口的视图下进行绑定。也就是说NAT Server和NAT Outbound的规则最终都要在连接外网的WAN口如GigabitEthernet0/0/1下用nat server和nat outbound命令来激活。这是配置生效的关键一步很多人配完了ACL和地址池却发现不生效问题往往就出在忘了在接口下绑定。3. FR2600/FR2610 NAT Server 配置全流程拆解下面我们以一个典型场景为例一步步完成配置。假设网络拓扑如下路由器WAN口GE0/0/1IP 202.96.1.100/29网关 202.96.1.97。路由器LAN口GE0/0/0IP 192.168.1.1/24。内网Web服务器192.168.1.100需要将80端口映射出去。内网文件服务器使用SFTP192.168.1.101需要将TCP 22端口映射出去。公网IP只有一个202.96.1.100。3.1 第一步基础网络与接口配置首先确保路由器的基础连通性是正确的。通过Console线或Telnet/SSH登录设备。# 进入系统视图 Fiberhome system-view [Fiberhome] sysname FR2600 # 配置WAN口地址 [FR2600] interface gigabitethernet 0/0/1 [FR2600-GigabitEthernet0/0/1] ip address 202.96.1.100 29 [FR2600-GigabitEthernet0/0/1] description To-Internet [FR2600-GigabitEthernet0/0/1] quit # 配置LAN口地址 [FR2600] interface gigabitethernet 0/0/0 [FR2600-GigabitEthernet0/0/0] ip address 192.168.1.1 24 [FR2600-GigabitEthernet0/0/0] description Internal-LAN [FR2600-GigabitEthernet0/0/0] quit # 配置默认路由指向互联网网关 [FR2600] ip route-static 0.0.0.0 0.0.0.0 202.96.1.97注意这里的子网掩码29对应255.255.255.248可用主机地址为202.96.1.97到202.96.1.102其中.97是网关.100是我们的路由器接口地址。务必向运营商确认清楚你的公网IP地址、网关和掩码信息配错了整个外网就不通了。3.2 第二步配置NAT Server端口映射这是核心步骤。烽火的nat server命令语法相对直观。# 进入WAN口接口视图 [FR2600] interface gigabitethernet 0/0/1 # 映射Web服务器TCP 80端口 [FR2600-GigabitEthernet0/0/1] nat server protocol tcp global 202.96.1.100 80 inside 192.168.1.100 80 # 映射文件服务器SFTPTCP 22端口 [FR2600-GigabitEthernet0/0/1] nat server protocol tcp global 202.96.1.100 22 inside 192.168.1.101 22 # 如果需要映射UDP端口例如某个视频会议服务的5004端口 # [FR2600-GigabitEthernet0/0/1] nat server protocol udp global 202.96.1.100 5004 inside 192.168.1.102 5004 # 配置完成后退出接口视图并保存配置 [FR2600-GigabitEthernet0/0/1] quit [FR2600] save命令参数解读protocol指定协议tcp或udp这是必须的。global后面跟公网IP和公网端口。inside后面跟内网服务器IP和内网端口。如果公网端口和内网端口一致可以只写一个端口号但为了清晰建议都写上。一个高级技巧映射端口范围有时需要映射一段连续的端口例如FTP的被动模式可能需要开放一系列端口。烽火也支持[FR2600] interface gigabitethernet 0/0/1 [FR2600-GigabitEthernet0/0/1] nat server protocol tcp global 202.96.1.100 20000 20010 inside 192.168.1.101 20000 20010这条命令将公网IP 202.96.1.100的20000到20010端口映射到内网192.168.1.101的相同端口范围。3.3 第三步配置NAT Outbound内网上网虽然我们的主要需求是NAT Server但内网电脑也需要上网所以必须配置NAT Outbound。# 1. 创建一个高级别ACL3000以上定义需要做NAT的内网网段 [FR2600] acl number 3001 [FR2600-acl-adv-3001] rule 5 permit ip source 192.168.1.0 0.0.0.255 # rule后面的数字是规则ID用于排序5、10、15这样间隔配置便于后续插入新规则 [FR2600-acl-adv-3001] quit # 2. 创建一个NAT地址池。如果我们只有一个公网IP地址池就只包含这个IP。 # 注意这个公网IP就是路由器WAN口自身的IP202.96.1.100。 # 在配置NAT Server时这个IP已经被占用了“特定端口”但做NAT Outbound源地址转换时它依然可以使用“其他未被占用的端口”。 [FR2600] nat address-group 1 [FR2600-address-group-1] address 202.96.1.100 202.96.1.100 # 如果运营商给了一段地址例如202.96.1.100-202.96.1.102这里就写 address 202.96.1.100 202.96.1.102 [FR2600-address-group-1] quit # 3. 在WAN口上绑定ACL和地址池启用NAT Outbound [FR2600] interface gigabitethernet 0/0/1 [FR2600-GigabitEthernet0/0/1] nat outbound 3001 address-group 1关键原理剖析这里有一个非常重要的概念叫做NAT会话表。当内网主机192.168.1.50访问外网网站时路由器会创建一个NAT会话源192.168.1.50:1234- 转换为202.96.1.100:5555。这个5555端口是路由器从可用端口中动态分配的通常从1024开始。而我们之前配置的NAT Server相当于在路由器上预先写死了一条静态的会话条目目标202.96.1.100:80- 转发给192.168.1.100:80。这两张“表”动态会话表和静态Server表是并行处理的互不冲突。路由器收到外来数据包时会先查静态Server表如果匹配比如目标端口是80就直接转发到内网如果不匹配再查动态NAT会话表看是不是内网主机发起的连接的回包。3.4 第四步至关重要的安全策略与防火墙规则配置完NAT服务能通了吗很可能还不行。烽火FR系列设备通常默认启用了区域Zone防火墙或包过滤功能。即使NAT映射正确防火墙也可能将外部的访问请求拦截。安全策略的核心思路是“域间策略”。常见的模型是将接口划分到不同的安全区域如Trust、Untrust然后配置区域间的访问规则。# 查看默认的安全区域和接口绑定情况 [FR2600] display zone # 通常LAN口会被自动或手动加入“Trust”区域WAN口加入“Untrust”区域。 # 配置从Untrust到Trust的安全策略允许外部访问我们映射的服务 [FR2600] security-policy [FR2600-policy-security] rule name Permit_Web [FR2600-policy-security-rule-Permit_Web] source-zone untrust [FR2600-policy-security-rule-Permit_Web] destination-zone trust [FR2600-policy-security-rule-Permit_Web] destination-address 192.168.1.100 32 # 目标写内网服务器IP [FR2600-policy-security-rule-Permit_Web] service tcp destination-port 80 [FR2600-policy-security-rule-Permit_Web] action permit [FR2600-policy-security-rule-Permit_Web] quit [FR2600-policy-security] rule name Permit_SFTP [FR2600-policy-security-rule-Permit_SFTP] source-zone untrust [FR2600-policy-security-rule-Permit_SFTP] destination-zone trust [FR2600-policy-security-rule-Permit_SFTP] destination-address 192.168.1.101 32 [FR2600-policy-security-rule-Permit_SFTP] service tcp destination-port 22 [FR2600-policy-security-rule-Permit_SFTP] action permit [FR2600-policy-security-rule-Permit_SFTP] quit [FR2600-policy-security] quit踩坑实录这是我最初测试时失败的主要原因。我配好了NAT Server从内网测试telnet 202.96.1.100 80是通的因为数据包根本没出路由器走了环回但从外网测试死活不通。排查了半天最后用display firewall session table命令查看会话表发现外部来的SYN包被防火墙丢弃了。加上这条安全策略后立刻就能看到建立的会话问题解决。所以在烽火设备上做端口映射十有八九的问题出在防火墙策略上而不是NAT配置本身。4. 配置验证与深度排错指南配置保存后不要以为就万事大吉了。必须进行系统的验证和测试。4.1 基础验证命令检查NAT Server配置[FR2600] display nat server这个命令会列出所有在接口上配置的静态映射条目检查协议、全局地址、端口、内部地址、端口是否正确。检查NAT Outbound配置[FR2600] display nat outbound查看绑定的ACL和地址池信息。检查NAT地址池[FR2600] display nat address-group检查ACL配置[FR2600] display acl 30014.2 动态会话查看最直接的“晴雨表”这是排错中最有用的命令之一可以实时看到NAT转换是否在工作。# 查看所有NAT会话信息量大 [FR2600] display nat session all # 更清晰地查看可以指定协议和地址 [FR2600] display nat session protocol tcp global 202.96.1.100 80如何解读输出你会看到类似这样的条目Slot 0: Source IP/port: 203.0.113.5/62001 Destination IP/port: 202.96.1.100/80 DS-Lite tunnel peer: - Protocol: TCP(6) State: TCP_ESTABLISHED Application: HTTP Start time: 2023-10-27 14:30:01 TTL: 3577s Initiator-Responder: 7 packets 434 bytes Responder-Initiator: 5 packets 312 bytes Total sessions found: 1Source这是外部访问者的公网IP和端口。Destination这是你路由器的公网IP和端口。最关键的是看State如果是TCP_ESTABLISHED说明连接已经成功建立NAT映射和防火墙策略都是通的。如果外部尝试连接后这里什么都没有或者状态一直是TCP_SYN_RCVD然后很快消失那问题大概率在防火墙策略或服务器本身。4.3 分层排查法当外网访问不通时按照从外到内、从底层到上层的顺序排查效率最高链路层与公网IP可达性从互联网其他位置先ping你的公网IP202.96.1.100。如果不通说明运营商线路、路由器WAN口配置或上游防火墙有问题。这是前提。路由器NAT与防火墙层使用display nat server确认配置无误。使用display security-policy rule或display firewall session table检查安全策略是否放行会话是否建立。一个快速测试技巧在路由器上临时添加一条宽松的策略允许所有从外网到内网的流量仅用于测试生产环境切勿长期使用。[FR2600] security-policy [FR2600-policy-security] rule name Test_All [FR2600-policy-security-rule-Test_All] source-zone untrust [FR2600-policy-security-rule-Test_All] destination-zone trust [FR2600-policy-security-rule-Test_All] action permit添加后立刻从外网测试。如果通了说明就是策略问题再回头细化策略。如果还不通问题可能更底层。服务器与内网层从路由器的LAN口直接telnet或访问内网服务器的IP和端口例如telnet 192.168.1.100 80。这步是检查服务器本身的服务是否正常监听以及服务器自身的防火墙如Windows防火墙、iptables是否放行了来自路由器IP的流量。检查服务器的默认网关是否指向了路由器LAN口192.168.1.1。端口冲突与特殊协议端口占用确保路由器本身没有占用你打算映射的端口。例如路由器的Web管理界面默认是80端口如果你把公网80端口映射给内网服务器就会冲突。需要修改路由器的管理端口或服务器的映射端口。特殊协议像FTP、SIP、H.323这类协议除了控制端口21、5060等外还会动态协商数据端口。简单的nat server映射控制端口是不够的可能需要开启NAT ALG应用层网关功能。# 查看和开启FTP ALG [FR2600] display nat alg [FR2600] nat alg ftp enableALG功能能识别协议报文中的内网地址信息并动态创建临时的NAT会话表项来放行数据端口对于这类协议至关重要。5. 进阶考量与生产环境建议基础映射搞定后在真实的生产环境中我们还需要考虑更多。5.1 多公网IP场景下的精细化管理如果运营商分配了多个公网IP例如202.96.1.100-102我们可以做更灵活的规划IP 202.96.1.100专门用于NAT Outbound给内网员工上网使用。IP 202.96.1.101专门用于NAT Server映射Web服务器80/443。IP 202.96.1.102专门用于NAT Server映射其他业务服务器。配置时只需在nat server命令中指定不同的globalIP并在nat address-group中只将上网用的IP.100加入地址池即可。这样实现了业务流量和管理流量的隔离。5.2 连接数限制与超时配置对于公开的服务防止恶意扫描或CC攻击是必要的。烽火路由器支持对NAT Server条目进行连接数限制。# 在配置NAT Server时可以加上连接数限制参数 [FR2600-GigabitEthernet0/0/1] nat server protocol tcp global 202.96.1.100 80 inside 192.168.1.100 80 connection-limit 5000这条命令限制了这个映射条目同时最多只能建立5000个连接。超过限制的新连接请求会被丢弃。此外还可以调整NAT会话的超时时间。默认的TCP ESTABLISHED状态超时时间可能较长例如24小时对于某些业务可以适当调短以更快释放资源。# 进入NAT会话管理视图不同版本命令可能略有差异 [FR2600] nat session [FR2600-nat-session] tcp timeout established 7200 # 设置为7200秒2小时5.3 日志与监控开启NAT日志功能对于审计和排错非常有帮助但要注意日志量可能很大。# 开启NAT流日志 [FR2600] nat log flow enable # 指定日志主机 [FR2600] nat log host 192.168.1.200 514更实用的方法可能是利用SNMP或通过display nat session statistics命令定期查看NAT会话的创建速率和总数监控业务流量是否正常。5.4 与DDNS动态域名解析的结合很多中小企业的公网IP是动态获取的PPPoE拨号。这时我们需要用DDNS服务将域名动态绑定到变化的公网IP上。烽火FR系列通常支持内置的DDNS客户端。# 示例配置花生壳orayDDNS [FR2600] ddns policy 1 [FR2600-dnns-policy-1] method oray [FR2600-dnns-policy-1] username your_username [FR2600-dnns-policy-1] password your_password [FR2600-dnns-policy-1] domain yourdomain.vicp.net [FR2600-dnns-policy-1] quit # 将DDNS策略应用到WAN口 [FR2600] interface gigabitethernet 0/0/1 [FR2600-GigabitEthernet0/0/1] ddns apply policy 1配置好DDNS后在外网访问时就可以使用域名如yourdomain.vicp.net:端口而非难记的IP地址了。NAT Server的配置不需要改变因为它映射的是路由器接口的IPDDNS会自动更新这个IP与域名的对应关系。经过以上从原理到配置从基础到进阶的完整梳理烽火FR2600/FR2610的NAT配置应该不再是一个黑盒。其核心在于理解“接口绑定”、“静态Server与动态Outbound并存”以及“防火墙策略放行”这三个关键点。实际配置时建议先在测试环境或业务低峰期操作每配置一步就用display命令验证一步并及时保存配置。遇到问题按照分层排查法重点检查防火墙会话表大部分难题都能迎刃而解。
返回列表