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

[求助] 关于主机和网关不在同一个网段

[复制链接]
发表于 2014-9-28 17:13:31 | 显示全部楼层 |阅读模式
3鸿鹄币
如果主机和默认网关的ip地址故意配置成不在同一个网段,比如主机的ip是192.168.2.2/24,网关的ip是192.168.1.1/24,那么主机还能和外界通信吗?为什么?在不改变双方ip地址的前提下,有什么办法能使主机和外界通信?谢谢各位

最佳答案

查看完整内容

发出arp的条件: ip routing:路由表有目的地址的路由 no ip routing:1,不配网关 arp目的底子好 2,配网关,arp网关 你这问题: 主机发出了arp,router收到arp就丢弃了,路由器看目的地址在路由表中没有啊,怎么给你回复arp reply
发表于 2014-9-28 17:13:32 | 显示全部楼层
发出arp的条件:
ip routing:路由表有目的地址的路由
no ip routing:1,不配网关 arp目的底子好
                       2,配网关,arp网关


你这问题:
主机发出了arp,router收到arp就丢弃了,路由器看目的地址在路由表中没有啊,怎么给你回复arp reply
沙发 2014-9-28 17:13:32 回复 收起回复
回复

使用道具 举报

 楼主| 发表于 2014-9-28 17:28:21 | 显示全部楼层
可能是我描述的不够详细吧。。。。正常情况下,主机会根据要发送出去的数据包的IP地址来决定往哪儿发,如果目标ip地址在同一个网段中,那么主机就会直接发给本网段中的主机,如果目标ip地址不在同一网段中,那么主机就会发送给默认网关,然后网关再根据目标ip地址进行转发。

现在问题来了,假设主机的ip地址跟默认网关的ip地址不在同一个网段中,那么上述逻辑是否还行得通?
板凳 2014-9-28 17:28:21 回复 收起回复
回复

使用道具 举报

发表于 2014-9-28 17:56:06 | 显示全部楼层
发出arp的条件:
ip routing:路由表有目的地址的路由
no ip routing:1,不配网关 arp目的底子好
                       2,配网关,arp网关


你这问题:
主机发出了arp,router收到arp就丢弃了,路由器看目的地址在路由表中没有啊,怎么给你回复arp reply
地板 2014-9-28 17:56:06 回复 收起回复
回复

使用道具 举报

 楼主| 发表于 2014-9-28 18:04:35 | 显示全部楼层
本帖最后由 huangdgm 于 2014-9-28 18:09 编辑
ihorse 发表于 2014-9-28 17:56
发出arp的条件:
ip routing:路由表有目的地址的路由
no ip routing:1,不配网关 arp目的底子好


多谢解答。。。。。不过没看太懂,为啥主机要发arp出去呢?

假设主机配了网关,但是如上所述该网关和主机不在同一个网段里面,且主机有网关的arp信息 (主机和网关是直连的)
5# 2014-9-28 18:04:35 回复 收起回复
回复

使用道具 举报

发表于 2014-9-28 20:14:40 | 显示全部楼层
huangdgm 发表于 2014-9-28 18:04
多谢解答。。。。。不过没看太懂,为啥主机要发arp出去呢?

假设主机配了网关,但是如上所述该网关 ...

你有没有设置网关?你的说法是不成立的,因为主机的网关跟主机不同网段 根本设置不上去!
2.主机里面有路由表,主机ping不同网段的是不会发ARP请求的,他会交给网关,至于主机跟网关不在一个网段,我只能说,ARP请求的请求帧,跨网段根本生成不了
6# 2014-9-28 20:14:40 回复 收起回复
回复

使用道具 举报

发表于 2014-9-28 20:15:54 | 显示全部楼层
huangdgm 发表于 2014-9-28 18:04
多谢解答。。。。。不过没看太懂,为啥主机要发arp出去呢?

假设主机配了网关,但是如上所述该网关 ...

主机和网关不在同一网段 主机不可能有网关的ARP信息,
7# 2014-9-28 20:15:54 回复 收起回复
回复

使用道具 举报

发表于 2014-9-28 20:16:32 | 显示全部楼层
xiaoyueraymond 发表于 2014-9-28 20:15
主机和网关不在同一网段 主机不可能有网关的ARP信息,

如果有 ,请问你的ARP信息怎么来的?
8# 2014-9-28 20:16:32 回复 收起回复
回复

使用道具 举报

发表于 2014-9-28 21:10:34 | 显示全部楼层
9# 2014-9-28 21:10:34 回复 收起回复
回复

使用道具 举报

发表于 2014-9-28 22:14:59 | 显示全部楼层
pppoe这个协议熟悉吧。。你拨号之前你本地的是一个169的地址。而你的服务器呢,肯定不是的,所以我觉得你这种情况只能用PPP来解决。。。
10# 2014-9-28 22:14:59 回复 收起回复
回复

使用道具 举报

 楼主| 发表于 2014-9-28 23:38:43 | 显示全部楼层
xiaoyueraymond 发表于 2014-9-28 20:16
如果有 ,请问你的ARP信息怎么来的?

可以这么来吧:比如先配置一个正常的网络,让主机和网关在同一个网段,然后让主机ping一下网关,这样就获取了网关的arp信息,然后再修改主机的ip到另外一个网段,这样就可以使主机虽然和网关不属于同一个网段但是有了网关的arp信息。
11# 2014-9-28 23:38:43 回复 收起回复
回复

使用道具 举报

发表于 2014-9-28 23:50:18 | 显示全部楼层
主机和默认网关不在同一个网段内,因为是在内部的局域网里,所以转发数据包不是根据IP地址来转发的。只有跨网段的数据包在传输的时候才需要IP地址,如果是同一个网段的话就是靠MAC地址去转发的。根据你说的情况的话,如果在建立的初期,你的主机上还没有默认网关的MAC地址,正常情况是用ARP请求包来获得IP地址和MAC地址的映射关系的(基于数据链路层)。但是如果你的IP地址和默认网关的IP地址不在同一个网段中的话,就无法生成一个有效的ARP请求,那么你怎么能和默认网关通信呢?更不用谈和外网通信了思密达。
12# 2014-9-28 23:50:18 回复 收起回复
回复

使用道具 举报

发表于 2014-9-29 00:00:35 | 显示全部楼层
huangdgm 发表于 2014-9-28 23:38
可以这么来吧:比如先配置一个正常的网络,让主机和网关在同一个网段,然后让主机ping一下网关,这样就获 ...

如果按你这样操作的话,就算是主机有了网关的arp信息,但是你一旦修改了你的其中一个IP地址让主机和默认网关的IP地址不在同一个网段上的话,你原来的映射关系就没有用了啊,那还是不能和默认网关通信的啊。
就比如你自己是主机,你的一个朋友是默认网关,IP地址是他的居住地(有可能改变吧?就像你的操作改了IP地址一样,这里比喻是改了居住地),MAC地址是他的身份证(一个人就只有一个吧?就像是MAC地址一样是不会改变的标识符),你现在知道了你朋友的身份证和居住地,能和他通信了,那么有一天你的朋友般去了另一个地方,但是你知道的还是旧的地址,那你怎么找得到他???
所以,在同一个网段就是在同一个居住地一样的道理啊
希望对你有帮助~~~
13# 2014-9-29 00:00:35 回复 收起回复
回复

使用道具 举报

 楼主| 发表于 2014-9-29 00:02:55 | 显示全部楼层
本帖最后由 huangdgm 于 2014-9-29 00:04 编辑
Winston302302 发表于 2014-9-28 23:50
主机和默认网关不在同一个网段内,因为是在内部的局域网里,所以转发数据包不是根据IP地址来转发的。只有跨 ...


我刚才实验了一下,
1.主机配的静态IP为172.16.1.14,子网掩码255.255.248.0,默认网关是172.16.8.1,(由此可以得出主机跟网关不在同一个网段内),同时配置了DNS信息;
2.点击ok之后,系统弹出警告说主机IP和掩码得出来的网段跟默认网关不在同一个网段,但是点击ok之后还是可以继续的,系统并没有说不允许这样配置;
3.在cmd模式下arp -a能找到172.16.8.1所对应的mac信息;
4.打开网页能够正常上网。
14# 2014-9-29 00:02:55 回复 收起回复
回复

使用道具 举报

发表于 2014-9-29 02:31:14 | 显示全部楼层
huangdgm 发表于 2014-9-29 00:02
我刚才实验了一下,
1.主机配的静态IP为172.16.1.14,子网掩码255.255.248.0,默认网关是172.16.8.1, ...


我也做了一下实验,但是我配置来配置去,如果不在同一个网段上的话就是上不了网啊。你看看你的默认网关的子网掩码是不是255.255.0.0???如果是这样的话,那你的这两个IP地址是属于同一个网段上面的了,这样就是可以继续上网的了。

如果上面的情况你证实了不是255.255.0.0的话,那就是我们都没有深入理解网络通信的原理:
网络通信是在物理层和数据链路层的,源地址和目的地址是用过源MAC地址和目的MAC地址来通信的,而不是IP地址。
当源主机访问目的主机的时候,首先看IP地址是不是在同一个网段上:
如果是在同一个网段上的话,就查看本地的ARP缓存表,看看是否有IP地址和MAC地址的对应表。有的话就直接发包,根据源MAC地址和目的MAC地址。没有的话就会发送arp请求广播,来查找与目标对应的MAC地址。查到了之后就向网络发包。没有查到的话就不发包。
按照你的操作,修改了IP地址后,主机和默认网关不在同一个网段上,则把目标地址转为网关的地址(这个就是你所说的主机上有了默认网关的iP和MAC地址的对应),那么是可以通信的。
所以,可以看出,源主机和网关的通信过程中,并不会检查两者是不是在同一个网段上,而是直接查看ARP缓存表的,所以你所说的情况是可以通信的。
道理是这样,但是我还是没有实践成功。。。。。。求解答怎么配置能实现在IP地址和默认网关的IP地址不在同一个网段的时候可以上网。谢谢~
15# 2014-9-29 02:31:14 回复 收起回复
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-24 15:59 , Processed in 0.086295 second(s), 22 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

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