设为首页收藏本站language 语言切换
查看: 2166|回复: 8
收起左侧

[已解决] 对于网关和Arp协议的一些理解和疑问,求前辈指点~

[复制链接]
发表于 2011-11-22 14:51:51 | 显示全部楼层 |阅读模式
本帖最后由 ggkoko 于 2011-11-22 15:01 编辑


小弟刚刚考完NA,开始学NP得课程
我觉得论坛里的一句话说得很好:考完NA或NP,不证明已经掌握了NA或NP,这只是代表你得NA或NP旅程刚刚开始.....

前几天碰到一些疑问,经过反复查资料学习,有了些理解.但感觉某些地方理解的不是很顺畅,所以写出来请前辈们指点下

不知道有没有说得不对的地方,如果有,还望指点~~~
两主机不在同一网段,直连状态下:
都以自己IP 作网关,结果应该是互通。测试结果为互通!
其实PCROUTER是类似的,对于PC来说 ,网关就是默认路由
对于router来说,默认路由类似网关...
说到这里,什么叫网关?
百度百科的定义:在采用不同体系结构或协议的网络之间进行互通时,用于提供协议转换、路由选择、数据交换等网络兼容功能的设施。
那么网关到底是什么呢?网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络AIP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络BIP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主
机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。
接着开始的话题,
那么  为什么会通呢?
Aping BA首先会用本地子网掩码计算B是否跟自己子在同一网络,如果在同一网络,则直接发送一个arp广播,请求BMAC地址进行2层封装,然后通过HUBSW直接进行转发。如果不在同一网络,A会查找自己的网关(对router来说就是默认路由),如果没有网关或默认路由,则A会认为B不可达。如果配置了网关或者默认路由,A就会把数据包交给自己的网关处理,这里A的网关就是A自己, 于是A就把数据交给自己的网卡,此时A的网卡就会发送一个ARP广播,询问BMAC地址,而此时,B会发现Aarp广播找得是自己,于是就会做出一个回应,包括自己的MAC地址。如果B主机没有配置网关,B依然会收到该ARP广播并回应,但B无法对A发来的数据做出回应或者叫回包....
而如果A的网关指向BB的网关指向A
其实道理是一样的,只是通信的动作不太一样
A要联系B
首先A会计算得知B跟自己不在同一网段
所以要通过自己的网关来转发
但是A跟自己的网关也不在同一网段啊
A是怎么找到自己的网关的呢?
虽然A跟自己的网关不在同一网段,但是A事先是知道网关IP的,只是不知道网关的MAC地址,于是A发送ARP广播给,希望获得网关的MAC地址,网关收到ARP广播,发现该广播是寻问自己的MAC地址,于是对A做出一个回应,告诉A自己的MAC地址,然后A就可以进行2层和3层封装,通过网关即B,来跟B主机通信...B端同理
这种情况在不同vlan的情况下,是不成立的,因为vlan之间是隔离广
播的...
这样的话就不难理解,哪怕是A的网关指向自己,B的网关也指向自己,依然是可以通信的...
由此, 我们可以延伸到,A,B,C三台主机,都不在同个网段,但在同个vlan,如何让他们互通呢?
首先,如果他们的网关都是指向自己的,是可以通的
其次,对于ROUTER而言,他可以有很多不同的路由,或者说有很多不同的网关,到不同的网络根据路由协议来判断使用哪个路由或者哪个网关.
而对于PC来说,同样是可以有多个网关的,但在TCP/IP属性里面是无法配置的,这里只能写一个默认网关。
那么怎么为PC配置多个网关呢?
我们知道,在PC上有条命令 ROUTE PRINT,这条命令是用来查看PC的路由表的

QQ截图20111121174211.png
这里是我主机的路由表,这里因为有多块网卡,所以看起来比较多,不过看第一条我们很眼熟,前往0.0.0.0 的网络 ,网关为1.1 ,这就是PC的默认网关,即默认路由了,而当我们需要配置多个网关(当我们主机连接到多个网段的时候,前往各个网段需要从不同下一跳走的时候,就可以配多个网关,即写入静态路由),需要用到命令route ADD DESTINATION  MASK NETMASK  GATEWAY  METRIC,ROUTER原理相同!
另外,还有个特殊的案例
某一次,一台服务器有两块网卡,分别连接内网和外网,当然,这两块网卡都需要配置网关,但是,当你给双网卡都配置一个网关的时候,windows会报一个错,大概意思就是说当你配置了多个网关的时候可能会出现问题,这种时候我们就要手动改写PC的路由表
因为windows默认会选择一个网关做默认路由的,也就是说前往所有网段的数据都要通过默认路由来做转发(除了直连网段),这样的话如果默认路由的下一跳是连接外网的接口,那么你可以正常上网,但当你访问内网的其他非直连网段的时候,就会无法访问,而如果默认路由的下一跳是连接内网的接口,那么你就无法正常上网。
这个时候,如果想要修复这种问题,我们可以删除默认路由(如果默认路由的下一跳是外网接口则无需删除),然后添加静态路由(内网有多少个网段就添加多少条),指明前往某网段要通过连接内网的接口,这样方能实现内外网正常通信


说回来,还是对基层打的一些网络理解不够透彻
学到的知识得不到汇总,这一块那一块的
可能刚开始都是这样过来的吧
当走到一定的程度的时候,才能融汇贯通~~
.



评分

参与人数 1鸿鹄币 +5 收起 理由
纸纸纸 + 5 赞一个!

查看全部评分

 楼主| 发表于 2011-11-22 15:17:28 | 显示全部楼层
自沙下
沙发 2011-11-22 15:17:28 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2011-11-23 13:11:43 | 显示全部楼层
加油!
板凳 2011-11-23 13:11:43 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2011-11-23 18:25:47 | 显示全部楼层
两主机不在同一网段,直连状态下:
都以自己IP 作网关,结果应该是互通。测试结果为互通!

这里是有问题的,楼主应该是说以自己的接口作为网关,因为以自己IP作为网关,命令是敲不上D。
LZ帖子太长,忙着上课,下课回来再看,呵呵
地板 2011-11-23 18:25:47 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-11-23 21:47:23 | 显示全部楼层

嗯,有时间帮我看下具体哪里有问题,只是我的一些理解  希望能指教下~~~
5# 2011-11-23 21:47:23 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2011-11-23 22:12:43 | 显示全部楼层
好贴,学习了
6# 2011-11-23 22:12:43 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2011-11-23 23:07:44 | 显示全部楼层
某一次,一台服务器有两块网卡,分别连接内网和外网,当然,这两块网卡都需要配置网关,但是,当你给双网卡都配置一个网关的时候,windows会报一个错,大概意思就是说当你配置了多个网关的时候可能会出现问题,这种时候我们就要手动改写PC的路由表.

这里的话,根本不需要值默认路由到内网,只需要值到外网,为什么呢,因为内网数据要访问外网,比如百度,A.B.C.D,服务器路由表中会有这条路由吗,没有对吧。那怎么办?给服务器配默认路由指向外网出口,那不得了,当外网要访问内网,经过NAT转换也得出结果了,如果内网有服务器,那必须手工NAT映射。当NAT转换成功,内网接口跟内网所有主机是不是同一网段,正常情况下是的,无论你配多少个VLAN,服务器都知道怎么转发,这时候在内网配置一个默认路由有什么用,根本就不合理

评分

参与人数 1鸿鹄币 +10 威望 +1 收起 理由
fulltimes + 10 + 1 赞一个!

查看全部评分

7# 2011-11-23 23:07:44 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-3-3 19:47:47 | 显示全部楼层
{:soso_e163:}
8# 2012-3-3 19:47:47 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-6-24 11:32:54 | 显示全部楼层
9# 2012-6-24 11:32:54 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-4 07:04 , Processed in 0.071989 second(s), 19 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表