(编辑)
似乎内部-> 外部按预期工作,如下面的答案所示,但外部-> 内部实际上并没有,正如 OP 所建议的那样,它允许一切。
在 NAT 行中添加“可逆”,它开始遵守外部->内部的路由映射,不幸的是它似乎不适用于端口:
- 允许 ip 任何主机 194.100.7.226工作
- 允许 tcp 任何工作
- 允许 tcp any any eq 80不匹配,不起作用
- 允许 tcp 任何 eq 80 任何匹配,不起作用
- 允许 tcp 任何 eq 80 主机 194.100.7.226匹配,不起作用
- 允许 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#