本帖最后由 ggkoko 于 2011-11-22 15:01 编辑
小弟刚刚考完NA,开始学NP得课程 我觉得论坛里的一句话说得很好:考完NA或NP,不证明已经掌握了NA或NP,这只是代表你得NA或NP旅程刚刚开始.....
前几天碰到一些疑问,经过反复查资料学习,有了些理解.但感觉某些地方理解的不是很顺畅,所以写出来请前辈们指点下
不知道有没有说得不对的地方,如果有,还望指点~~~ 两主机不在同一网段,直连状态下: 都以自己IP 作网关,结果应该是互通。测试结果为互通! 其实PC和ROUTER是类似的,对于PC来说 ,网关就是默认路由 对于router来说,默认路由类似网关... 说到这里,什么叫网关? 百度百科的定义:在采用不同体系结构或协议的网络之间进行互通时,用于提供协议转换、路由选择、数据交换等网络兼容功能的设施。 那么网关到底是什么呢?网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主 机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。 接着开始的话题, 那么 为什么会通呢? A要ping B,A首先会用本地子网掩码计算B是否跟自己子在同一网络,如果在同一网络,则直接发送一个arp广播,请求B的MAC地址进行2层封装,然后通过HUB或SW直接进行转发。如果不在同一网络,A会查找自己的网关(对router来说就是默认路由),如果没有网关或默认路由,则A会认为B不可达。如果配置了网关或者默认路由,A就会把数据包交给自己的网关处理,这里A的网关就是A自己, 于是A就把数据交给自己的网卡,此时A的网卡就会发送一个ARP广播,询问B的MAC地址,而此时,B会发现A的arp广播找得是自己,于是就会做出一个回应,包括自己的MAC地址。如果B主机没有配置网关,B依然会收到该ARP广播并回应,但B无法对A发来的数据做出回应或者叫回包.... 而如果A的网关指向B,B的网关指向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的路由表的 这里是我主机的路由表,这里因为有多块网卡,所以看起来比较多,不过看第一条我们很眼熟,前往0.0.0.0 的网络 ,网关为1.1 ,这就是PC的默认网关,即默认路由了,而当我们需要配置多个网关(当我们主机连接到多个网段的时候,前往各个网段需要从不同下一跳走的时候,就可以配多个网关,即写入静态路由),需要用到命令route ADD DESTINATION MASK NETMASK GATEWAY METRIC,同ROUTER原理相同! 另外,还有个特殊的案例 某一次,一台服务器有两块网卡,分别连接内网和外网,当然,这两块网卡都需要配置网关,但是,当你给双网卡都配置一个网关的时候,windows会报一个错,大概意思就是说当你配置了多个网关的时候可能会出现问题,这种时候我们就要手动改写PC的路由表 因为windows默认会选择一个网关做默认路由的,也就是说前往所有网段的数据都要通过默认路由来做转发(除了直连网段),这样的话如果默认路由的下一跳是连接外网的接口,那么你可以正常上网,但当你访问内网的其他非直连网段的时候,就会无法访问,而如果默认路由的下一跳是连接内网的接口,那么你就无法正常上网。 这个时候,如果想要修复这种问题,我们可以删除默认路由(如果默认路由的下一跳是外网接口则无需删除),然后添加静态路由(内网有多少个网段就添加多少条),指明前往某网段要通过连接内网的接口,这样方能实现内外网正常通信…
说回来,还是对基层打的一些网络理解不够透彻 学到的知识得不到汇总,这一块那一块的 可能刚开始都是这样过来的吧 当走到一定的程度的时候,才能融汇贯通~~ .
|