取消
显示结果 
搜索替代 
您的意思是: 
cancel
13558
查看次数
124
有帮助
16
回复

一道NAT面试题引起的疑问

Liyongg3135
Level 1
Level 1
最初在网上看到一个公司的关于NAT的面试题目,内容如下:
————————————————————————————topo图和配置————————————————————————————
(lo0-outside)R1(f0/0-inside)--------------------------------(f0/0)R2
R1 config:
interface f0/0
ip add 172.168.1.1 255.255.255.252
ip nat inside
interface loopback 0
ip add 10.10.10.1 255.255.255.0
ip nat outside
ip nat inside source static tcp 20.20.20.1 23 10.10.10.254 23
ip route 20.20.20.0 255.255.255.0 172.168.1.2
R2 config:
interface f0/0
ip add 172.168.1.2 255.255.255.252
interface loopback 0
ip add 20.20.20.1 255.255.255.0
ip route 10.10.10.0 255.255.255.0 172.168.1.1
line vty 0 4
password cisco
login
————————————————————————————题目要求————————————————————————————
问题:如果在R1上telnet 10.10.10.254 会通吗?
如果通,请说明原因
如不通,请给出solution(只能修改R1配置)
——————————————————————————————————————————
大家先做做看,看能否搞定。
等有了答案后疑问才能发出来,得先卖个关子~~:)
16 条回复16

Mansur
Spotlight
Spotlight
有意思的题目,应该是跟ip redirect 和arp 有关吧,明天试试

byl_qware_com
Level 8
Level 8
想了好久都没有看出来哪点有问题

Mansur
Spotlight
Spotlight
TCP连接建立不了,第二个包是syn ack,之后R1没有ack,直接发了reset……

Liyongg3135
Level 1
Level 1
maguanghua2013 发表于 2018-5-22 16:54
TCP连接建立不了,第二个包是syn ack,之后R1没有ack,直接发了reset……

嗯,问题找到了,如何解决喃~~:lol

Mansur
Spotlight
Spotlight
Liyongg3135 发表于 2018-5-22 19:09
嗯,问题找到了,如何解决喃~~

R1发出的是映射了的,R2返回的包是inside到local,不是inside到outside,所以没匹配原来的nat条目……这咋解决

Liyongg3135
Level 1
Level 1
maguanghua2013 发表于 2018-5-23 19:55
R1发出的是映射了的,R2返回的包是inside到local,不是inside到outside,所以没匹配原来的nat条目……这 ...

没有匹配的条目,可想办法创建一条,找到了问题,离解决它就不远了~~~

liuyj
Level 1
Level 1
本帖最后由 liuyj 于 2018-6-5 11:09 编辑
这个有点问题啊,回来的包不是指向outside的,而是指向local的

完全感觉
Spotlight
Spotlight
这题目有意思,但实际生产环境用不上

byl_qware_com
Level 8
Level 8
实验配置修改了好多次,就是不能!楼主赶快公布答案

Liyongg3135
Level 1
Level 1
byl@qware.com 发表于 2018-5-29 09:51
实验配置修改了好多次,就是不能!楼主赶快公布答案

答案就是在R1上加上: ip nat outside source static 10.10.10.1 10.10.10.254

Liyongg3135
Level 1
Level 1
现在说说疑问,希望有大神能给出解释:
——————————————在R1上NAT配置为:——————————————
ip nat inside source static tcp 20.20.20.1 23 10.10.10.254 23
ip nat outside source static 10.10.10.1 10.10.10.254
使用debug ip packet ,debug ip nat detailed 输出信息如下,有一些省略。(#后为我自己的判断,不一定正确)
*Mar 1 01:28:52.319: NAT: o: tcp (10.10.10.1, 27111) -> (10.10.10.254, 23) [12632] #(o 代表数据流从外部到内部)
*Mar 1 01:28:52.319: NAT: s=10.10.10.1->10.10.10.254, d=10.10.10.254 [12632] #(数据流从外部到内部,ip nat ouside source static转源IP)
*Mar 1 01:28:52.323: NAT: s=10.10.10.254, d=10.10.10.254->20.20.20.1 [12632] #(数据流从外部到内部,ip nat inside source static转目标IP,再查路由表)
*Mar 1 01:28:52.327: IP: tableid=0, s=10.10.10.254 (local), d=20.20.20.1 (FastEthernet0/0), routed via FIB
*Mar 1 01:28:52.327: IP: s=10.10.10.254 (local), d=20.20.20.1 (FastEthernet0/0), len 44, sending
*Mar 1 01:28:52.367: IP: tableid=0, s=20.20.20.1 (FastEthernet0/0), d=10.10.10.254 (Loopback0), routed via RIB
*Mar 1 01:28:52.371: NAT: i: tcp (20.20.20.1, 23) -> (10.10.10.254, 27111) [49839] #(i 代表数据流从内部到外部)
*Mar 1 01:28:52.371: NAT: s=20.20.20.1->10.10.10.254, d=10.10.10.254 [49839] #(数据流从内部到外部,ip nat inside source static转源IP)
*Mar 1 01:28:52.375: NAT: s=10.10.10.254, d=10.10.10.254->10.10.10.1 [49839] #(数据流从内部到外部,ip nat outside source static转目标IP)
——————————————在R1上NAT配置只为:——————————————
ip nat outside source static 10.10.10.1 10.10.10.254
使用debug ip packet ,debug ip nat detailed 输出信息如下:
*Mar 1 01:08:05.779: IP: tableid=0, s=10.10.10.1 (local), d=10.10.10.254 (Loopback0), routed via RIB
*Mar 1 01:08:05.779: IP: s=10.10.10.1 (local), d=10.10.10.254 (Loopback0), len 44, sending
*Mar 1 01:08:05.783: NAT: setting up outside mapping 10.10.10.254->10.10.10.1, with mapping-id 0
*Mar 1 01:08:05.787: NAT: i: tcp (10.10.10.1, 32292) -> (10.10.10.254, 23) [38404]
*Mar 1 01:08:05.791: NAT: s=10.10.10.1, d=10.10.10.254->10.10.10.1 [38404] #(数据流从内部到外部,先查路由表,再NAT转目标IP)
*Mar 1 01:08:05.799: IP: tableid=0, s=10.10.10.1 (Loopback0), d=10.10.10.1 (Loopback0), routed via RIB
*Mar 1 01:08:05.803: IP: s=10.10.10.1 (Loopback0), d=10.10.10.1 (Loopback0), len 44, rcvd 3
*Mar 1 01:08:05.815: NAT: o: tcp (10.10.10.1, 23) -> (10.10.10.1, 32292) [52559]
*Mar 1 01:08:05.819: NAT: s=10.10.10.1->10.10.10.254, d=10.10.10.1 [52559] # (数据流从外部到内部,先NAT转源IP,再查路由表)
我的疑问是:
当R1单独用ip nat outside
根据debug信息,我推测的是:路由器认为10.10.10.1->10.10.10.254 这个流量是内部到外部。
而和ip nat inside一起用时,根据debug信息,路由器认为10.10.10.1->10.10.10.254 这个流量是外部到内部。
为啥会这样的呢?
——————————————————————
我参考的一些NAT资料:
https://www.cisco.com/c/zh_cn/support/docs/ip/network-address-translation-nat/13773-2.html
https://www.cisco.com/c/zh_cn/support/docs/ip/network-address-translation-nat/6505-nat-on-stick.html

byl_qware_com
Level 8
Level 8
Liyongg3135 发表于 2018-5-29 10:22
答案就是在R1上加上: ip nat outside source static 10.10.10.1 10.10.10.254

我没有想到ip nat outside source static ,看来自己的水平还很菜!

13nash
Level 8
Level 8
看不出什么

Mansur
Spotlight
Spotlight
Liyongg3135 发表于 2018-5-29 10:22
答案就是在R1上加上: ip nat outside source static 10.10.10.1 10.10.10.254

兄弟,你这个有点混淆了。其实10.10.10.1不一定非要转换成254这个地址,同网段其他地址也可以。感觉这样更好理解。比如你改成这样,也是通的。
ip nat outside source static 10.10.10.1 10.10.10.111
具体我再看看,咱们继续讨论
快捷链接