(编辑)
似乎 inside->outside 按预期工作,如下面的答案所示,但 outside->inside 实际上没有,它允许一切,正如 OP 建议的那样。
在 NAT 行中添加“可逆”它开始尊重外部->内部的路由映射,不幸的是它似乎不适用于端口:
- 允许 ip 任何主机 194.100.7.226工作
- 允许 tcp 任何任何工作
- permit tcp any any eq 80不匹配,不起作用
- 允许 tcp any eq 80 任何匹配,不起作用
- 允许 tcp 任何 eq 80 主机 194.100.7.226匹配,不起作用
- 允许 tcp any 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转发UDP端口范围所建议的那样,这适用于外部->内部
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 我在做:
- 远程登录测试主机 22
- 远程登录测试主机 23
- 远程登录测试主机 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#