新足迹

 找回密码
 注册

精华好帖回顾

· 【原创】聊聊澳洲的信用记录 (2007-5-11) deckgun · 宝宝趣事--------挑拨离间的宝宝(新加挑拨离间者照片) (2007-10-4) poloand
· 悉尼单身聚会之最 (2006-10-3) maggie · 良辰美景-9月9的久 (2005-4-8) susan
Advertisement
Advertisement
楼主:wszhangxuan

一个cisco 精典面试题目。请先做答后google [复制链接]

发表于 2015-1-27 10:22 |显示全部楼层
此文章由 oed 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 oed 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dlcat 发表于 2015-1-27 11:17
哥trouble shooting过无数(上万)网络不通的情况,只遇到一例是两边网卡灯亮,物理通了,但不是IP设置的 ...

只能说你的经历太浅还爱显摆。

灯亮了网络出问题的情况多的很,很多情形是一些烂驱动造成的,早期还有要设置中断跳线的问题
Advertisement
Advertisement
头像被屏蔽

禁止访问

发表于 2015-1-27 10:42 |显示全部楼层
此文章由 dlcat 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dlcat 所有!转贴必须注明作者、出处和本声明,并保持内容完整
oed 发表于 2015-1-27 11:22
只能说你的经历太浅还爱显摆。

灯亮了网络出问题的情况多的很,很多情形是一些烂驱动造成的,早期还有要 ...

你在电脑城工作过么,呵呵,原来是这样的高手。

发表于 2015-1-27 10:57 |显示全部楼层
此文章由 oed 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 oed 所有!转贴必须注明作者、出处和本声明,并保持内容完整
economist 发表于 2015-1-26 15:11
楼上两位别吵啦。
我说一下我的理解,为什么添加了 default gateway, A 就能Ping B. 

不好意思,很久没有看底层网络协议代码了,想说下但是不一定正确。。。。

2:  IP 层应该要先进行路由后,才会丢给下一层

3: 如果b和a不在一个子网,系统是不会企图去找b的mac地址并且进行封装的。此时系统会将网关的mac地址当作目标mac地址进行封装并且通过对应的interface发送出去。

3.2: 这里你提到了default gateway。但是按照你的说法的顺序,这里的数据处理已经离开了ip层,这里的协议栈代码已经在数据链路层了,它是不会回头去处理ip层的功能的,这个和网络分层的思想相违背。

具体牵涉到路由以后如何调用arp,如何进行目的mac地址的封装我已经基本忘记的差不多了,如果有时间,如果有兴趣我可以去查查。。。

评分

参与人数 1积分 +3 收起 理由
economist + 3 感谢分享

查看全部评分

发表于 2015-1-27 10:58 |显示全部楼层
此文章由 oed 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 oed 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dlcat 发表于 2015-1-27 11:42
你在电脑城工作过么,呵呵,原来是这样的高手。

嘴尖、皮厚、腹中空,就是你的写照
头像被屏蔽

禁止访问

发表于 2015-1-27 12:01 |显示全部楼层
此文章由 dlcat 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dlcat 所有!转贴必须注明作者、出处和本声明,并保持内容完整
oed 发表于 2015-1-27 11:57
不好意思,很久没有看底层网络协议代码了,想说下但是不一定正确。。。。

2:  IP 层应该要先进行路由后 ...

还用查?

这都是基础的在脑子里的,还”应该,可能“的,心那个虚。

这个题里的IP,通过掩码设置做不到控制在一个网段,

只能通过互指网关,这也是我当时第一个答案有问题的地方,因为不设置网关,windows在第一次找另一台机器的时候,不能将包转发出去,只能通过设置网关让windows对找不到目标的包直接甩给网关处理,因为网关是互指,所以把包互相甩给对方,从而互联互通。

就是只有一台机器的两个 vlan,这台机器同时做客户端和路由器,最小化的vlan+单臂路由让两个网段互通。

发表于 2015-1-27 13:04 |显示全部楼层
此文章由 oed 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 oed 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dlcat 发表于 2015-1-27 13:01
还用查?

这都是基础的在脑子里的,还”应该,可能“的,心那个虚。

又来装b了
有种你详细分析下ip数据包在整个协议栈的处理过程,像别人那样一步一步的写出来。不要别人写了分析了,你才来马后炮。

来个不算太复杂的例子吧,tcp连接的建立过程你从头到尾给大家分析下
Advertisement
Advertisement

发表于 2015-1-27 15:38 来自手机 |显示全部楼层
此文章由 economist 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 economist 所有!转贴必须注明作者、出处和本声明,并保持内容完整
oed 发表于 2015-1-27 11:57
不好意思,很久没有看底层网络协议代码了,想说下但是不一定正确。。。。

2:  IP 层应该要先进行路由后 ...

其实我也好久没看底层协议的东西了。


2:  IP 层应该要先进行路由后,才会丢给下一层
~~~~~~~~~~~
同意,IP层会查找自己是否有去到destination ip的路由。有的话才会扔给二层封装。因为路由跟这里无关,我省略了这个。


3: 如果b和a不在一个子网,系统是不会企图去找b的mac地址并且进行封装的。此时系统会将网关的mac地址当作目标mac地址进行封装并且通过对应的interface发送出去。

~~~~~~~~~~
这个我不太同意。
在layer2的设备是不会知道这个frame对于的 destination ip address是否在同一网段的。二层设备只会做:
1) 检查自己的 arp cache,有 arp record就直接使用。
2) 如果没有,发 arp request 广播。其他网段的设备不会受到这个广播(因为broadcast 只在 broadcast doamain 里 flooding),这样source就收不到任何 arp reply。
3) 如果source有配置 default gateway,source会把 arp request 转发给 default gateway。default gateways根据自己的路由表判断自己是否有去往destination的路由。如果有,就会把这个arp request转发出去,同时用自己的ip address 和 mac address作为arp request的源地址。

回答这个题目,因为  destination ip是default gate way本机,所以不用转发,直接把自己的mac address 作为  arp reply发回去。


3.2: 这里你提到了default gateway。但是按照你的说法的顺序,这里的数据处理已经离开了ip层,这里的协议栈代码已经在数据链路层了,它是不会回头去处理ip层的功能的,这个和网络分层的思想相违背。

具体牵涉到路由以后如何调用arp,如何进行目的mac地址的封装我已经基本忘记的差不多了,如果有时间,如果有兴趣我可以去查查。。

~~~~~~~~~~
这个顺序问题我也解释不清楚,我回头查一下资料再来回复。手机发帖查资料不方便。

上面就是我的理解,如果不对请指正。

发表于 2015-1-27 15:42 来自手机 |显示全部楼层
此文章由 economist 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 economist 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dlcat 发表于 2015-1-27 13:01
还用查?

这都是基础的在脑子里的,还”应该,可能“的,心那个虚。

“这个题里的IP,通过掩码设置做不到控制在一个网段”
这个题改mask是肯定可以做到的。
你可以用packet tracer 或 gns3试一下。
配置224.0.0.0 或更大的mask,这两个ip就在一个是subnet了。
头像被屏蔽

禁止访问

发表于 2015-1-27 16:51 |显示全部楼层
此文章由 dlcat 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dlcat 所有!转贴必须注明作者、出处和本声明,并保持内容完整
economist 发表于 2015-1-27 16:42
“这个题里的IP,通过掩码设置做不到控制在一个网段”
这个题改mask是肯定可以做到的。
你可以用packet t ...

我最早的答案就是这个方式,arp cache手工设置IP和MAC对应,但这种方式欠考虑。

因为互指对方IP为网关才可以,如果两个机器单纯的设置各自的IP而不设置网关,会出现不知道从哪里向外发包的问题,还是找不到对方,这是我第一个答案的问题。

如果互指对方为网关,掩码如何设置就不用考虑太多了,对于系统,设置网关的意义实际是包要从这个网卡出去,出去了,另一个机器知道对方包过来到自己IP上了,要接受,就OK了,其他都不是问题,这个可以做实验看到。
头像被屏蔽

禁止访问

发表于 2015-1-27 16:57 |显示全部楼层
此文章由 dlcat 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dlcat 所有!转贴必须注明作者、出处和本声明,并保持内容完整
economist 发表于 2015-1-27 16:42
“这个题里的IP,通过掩码设置做不到控制在一个网段”
这个题改mask是肯定可以做到的。
你可以用packet t ...

设置在同一网段,只有在一种情况下有意义,就是另有一个网关,以前机房的三层交换机都是每个端口都是一个网关,自己有一个IP,同时作为该网段的网关,为网段内的机器互相转发,所以我第一个想法是设置成同一网段,然后IP与MAC加入ARP缓存里,实际来说是没必要的,如果存在另一个共同的网关,不用绑定,也能通过网关互相找到。

发表于 2015-1-27 17:38 来自手机 |显示全部楼层
此文章由 economist 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 economist 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dlcat 发表于 2015-1-27 17:51
我最早的答案就是这个方式,arp cache手工设置IP和MAC对应,但这种方式欠考虑。

因为互指对方IP为网关才 ...

改mask的话不用设网关的。
因为arp request在第一步发广播的时候,对方就会收到了。
你试一下就知道了。
Advertisement
Advertisement

发表于 2015-1-27 18:00 来自手机 |显示全部楼层
此文章由 economist 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 economist 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dlcat 发表于 2015-1-27 17:51
我最早的答案就是这个方式,arp cache手工设置IP和MAC对应,但这种方式欠考虑。

因为互指对方IP为网关才 ...

改network mask跟你说的做 static arp cache是不一样的。

改mask的目的是把两台设备放到一个broadcast domain里,这样同computer B可以收到A发的arp request 的broadcast frame.

你说的光添加 arp cache record,我觉得是不行的。这个记录只能告诉computerA与20.20.20.1对应的Mac地址是多少,但computer A不知道怎么到达20.20.20.1。
头像被屏蔽

禁止访问

发表于 2015-1-27 20:25 |显示全部楼层
此文章由 dlcat 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dlcat 所有!转贴必须注明作者、出处和本声明,并保持内容完整
economist 发表于 2015-1-27 19:00
改network mask跟你说的做 static arp cache是不一样的。

改mask的目的是把两台设备放到一个broadcast d ...

暂时存疑,你说的如果可能,不设置网关,只将两者放在同一网段中。那么理论上同一网段把网关撤掉,是可以互通的,我印象里这是做不到的。

发表于 2015-1-28 08:51 |显示全部楼层
此文章由 oed 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 oed 所有!转贴必须注明作者、出处和本声明,并保持内容完整
economist 发表于 2015-1-27 16:38
其实我也好久没看底层协议的东西了。

3: 如果b和a不在一个子网,系统是不会企图去找b的mac地址并且进行封装的。此时系统会将网关的mac地址当作目标mac地址进行封装并且通过对应的interface发送出去。

~~~~~~~~~~
这个我不太同意。
在layer2的设备是不会知道这个frame对于的 destination ip address是否在同一网段的。二层设备只会做:
1) 检查自己的 arp cache,有 arp record就直接使用。
2) 如果没有,发 arp request 广播。其他网段的设备不会受到这个广播(因为broadcast 只在 broadcast doamain 里 flooding),这样source就收不到任何 arp reply。
3) 如果source有配置 default gateway,source会把 arp request 转发给 default gateway。default gateways根据自己的路由表判断自己是否有去往destination的路由。如果有,就会把这个arp request转发出去,同时用自己的ip address 和 mac address作为arp request的源地址。

回答这个题目,因为  destination ip是default gate way本机,所以不用转发,直接把自己的mac address 作为  arp reply发回去。


兄弟你前面回的那个帖,显然不是指layer2的设备的----layer2的设备根本不会去处理ip包。arp包也不属于layer2的,它属于layer3,和ip包同层,但是实现2,3层之间的功能。

你提到layer2的设备,如果你的意思是2层交换机的话,它不处理ip包更不会路由和发送arp包。它只会维护一张mac地址和端口的映射表,而不是arp cache。arp cache是三层设备才有的。

如果源mac地址没有在这个映射表里面,它就往映射表里加入源mac地址和这个端口的映射。
如果目的mac地址在这个映射表里面,它就往映射的端口转发这个数据桢。
如果目的mac地址没有在这个映射表里面,它就往所有的端口转发这个数据桢,等目标机器回复的时候它就知道目标机器插在哪个端口,并且建立目标机器的端口映射。
所以交换机很容易被欺骗而且被攻击等它的映射表塞满垃圾映射了后它就会广播所有包造成网络拥塞