在 Cisco IOS NAT 中打开一系列 TCP 端口

网络工程 思科 通讯协议 纳特
2021-07-25 16:39:48
ip nat inside source static 192.168.1.10 10.10.10.9 route-map RANGE
!
route-map RANGE permit 100
  match ip address 102
!
access-list 102 permit tcp host 192.168.1.10 range 3000 3389 any

配置似乎不起作用.. 只是创建一个一对一的静态 NAT ...

有谁知道如何打开端口范围?

我有多个外部 IP,并且想使用多个外部 IP 为多个主机打开相同的端口,因此旋转方法不起作用。

2个回答

(编辑)

似乎内部-> 外部按预期工作,如下面的答案所示,但外部-> 内部实际上并没有,正如 OP 所建议的那样,它允许一切。

在 NAT 行中添加“可逆”,它开始遵守外部->内部的路由映射,不幸的是它似乎不适用于端口:

  1. 允许 ip 任何主机 194.100.7.226工作
  2. 允许 tcp 任何工作
  3. 允许 tcp any any eq 80不匹配,不起作用
  4. 允许 tcp 任何 eq 80 任何匹配,不起作用
  5. 允许 tcp 任何 eq 80 主机 194.100.7.226匹配,不起作用
  6. 允许 tcp 任何 eq 0 主机 194.100.7.226工作

在 '194.100.7.226' 我正在执行 'telnet 91.198.120.222 80',即我的源是 194.100.7.226:临时目的地是 91.198.120.222:80。正如示例#1 一样,我们可以得出结论,reversible实际上“反转”了 ACL,因此它在两个方向上都以相同的方式工作,这是有道理的。

当连接匹配但不起作用时,在“拒绝任何日志输入行”中,我得到以下信息:

.Jul 7 07:58:59.118 UTC: %SEC-6-IPACCESSLOGP: list MOO denied tcp 91.198.120.2(0) (Tunnel101) -> 194.100.7.226(0), 1 packet

所以看起来真的像L4协议类型被携带,但在NAT逆转期间不携带端口。所以外部->内部范围不起作用。


正如问题Cisco 867 forward UDP port range所建议的,这适用于外部->内部

ip nat pool MOO 91.198.120.2 91.198.120.2 prefix-length 30 type rotary
ip nat inside destination list MOO pool MOO
ip access-list extended MOO
 permit tcp any any range 22 100
 deny   ip any any log-input

我觉得这有点贫民窟,因为你对外部 IP 没有很好的控制。池是内部IP,外部IP 是路由器外部IP。


内部->外部使用端口的原始答案:

ip nat inside source static 91.198.120.2 91.198.120.222 route-map MOO
!
ip access-list extended MOO
 permit icmp any any
 permit tcp any any range 22 telnet
!
route-map MOO permit 100
 match ip address MOO
!
route-map MOO deny 200
!

@ 91.198.120.2 我在做:

  • telnet 测试主机 22
  • telnet 测试主机 23
  • telnet 测试主机 24

在 testhost 我可以观察到:

1   0.000000 91.198.120.222 -> 194.100.7.226 TCP 74 50925 > ssh [SYN] Seq=0 Win=14600 Len=0 MSS=1350 SACK_PERM=1 TSval=7995067 TSecr=0 WS=128

2   9.838471 91.198.120.222 -> 194.100.7.226 TCP 74 41586 > telnet [SYN] Seq=0 Win=14600 Len=0 MSS=1350 SACK_PERM=1 TSval=7997586 TSecr=0 WS=128

5  16.773181 91.198.120.2 -> 194.100.7.226 TCP 74 53307 > 24 [SYN] Seq=0 Win=14600 Len=0 MSS=1350 SACK_PERM=1 TSval=7999327 TSecr=0 WS=128

测试:

bu.ip.fi#sh ver | i ^Cisco
Cisco IOS Software, C880 Software (C880DATA-UNIVERSALK9-M), Version 15.1(2)T5, RELEASE SOFTWARE (fc1)
Cisco 881G (MPC8300) processor (revision 1.0) with 236544K/25600K bytes of memory.
bu.ip.fi#

所以为了解决我的问题,我所做的是

ip nat inside source static 91.198.120.2 91.198.120.222 route-map MOO
!
ip access-list extended MOO
 permit icmp any any
 permit tcp any any range 22 telnet
!
route-map MOO permit 100
 match ip address MOO
!

我还在我的外部接口上包含了一个访问列表 199

access-list 199 permit tcp any host external_host eq 3389
access-list 199 deny   ip any host external_host

此访问列表负责允许所有端口问题。