请教一个路由问题

maybeisme 2019-06-18 05:17:21
最近碰到一个问题,自己脑子转不过来弯,比如A电脑IP 192.168.1.5,网关是192.168.1.1(可正常上网),电脑B IP是192.168.1.6,那要按照原理,我把电脑B的网关设置成电脑A的192.168.1.5,我知道是不能上网的,但是自己是这样分析的:电脑B 要访问公网(比如百度),那么IP数据包肯定是发给电脑A的,因为网关是电脑A,那么电脑A接收了这个源地址是192.168.1.6,目的地址是百度的IP数据包后,肯定是会直接丢弃(因为这个数据包的目的地址不是自己的192.168.1.6),但是我突然想,这个数据包发给电脑A后,电脑A里面也是自带路由表的,比如0.0.0.0 mask 0.0.0.0 192.168.1.1 ,那么这个电脑A接收的数据包应该会发给这个网关192.168.1.1呀,为什么会直接丢弃呢!
...全文
2467 2 收藏 40
写回复
40 条回复
ifish3014 2019年06月23日
引用 2 楼 m0_45212902 的回复:
问题是电脑b确实能够把数据发给自己的网关(电脑a),只是电脑a接收到的数据包的目的地址不是自己,所以丢弃,我就不知道为什么丢弃。那一般路由器接收到的数据包,虽然目的地址也不是自己,但是就可以转发这个数据,或者是通过路由表,或者是通过nat,但是电脑本身也有路由表,为什么就丢弃呢。。你要说电脑之间靠什么通信,和电脑于路由器之间通信没有本质区别,都是过去对方的mac地址,然后数据链路层发送,只是路由器和这个电脑a接受到数据包,去除mac帧之后,得到目的ip地址之后,的处理方法不同,一个是转发,一个是丢弃,谁能详细解释下。。。。
我理解的这个就是根据节点功能不同而设计的处理方式不同。路由器做路由,肯定得转发。主机不同啊,主机如果不做丢弃做转发的话,那么网络中一旦出现广播包的话那主机都转发到网关,那网关炸了啊。
回复 点赞
m0_45289152 2019年06月23日
路由器很无辜的眼神看着:你应该问设计路由器的工程技术人员
回复 点赞
hGQnBQKT 2019年06月23日
不是说什么时候都会丢弃,想要根据路由表转发要开启主机的路由功能,不开启的话按访问自己处理,然后解封装到ip层之后发现目的地址不是自己自然就会丢弃了。
回复 点赞
Jesse9806 2019年06月23日
引用 21 楼 m0_45212902 的回复:
那我在提问下,还是之前九楼的那个第一个拓扑结构,电脑b换成路由器b,lan口地址是192.168.1.6,电脑a网关还是指向这个1.6,然后我在这个路由b里添加一个静态路由 0.0.0.0 mask 0.0.0.0 192.168.1.1 注意,这个路由b的wan口我是不用的,请问电脑a访问外网的时候,电脑a的数据包能先发给路由b的lan口,然后路由b把这个数据包在通过lan口又发给192.168.1.1这个连接外网的路由(姑且叫总路由吧),也就是说这个电脑a的数据包没有直接发给总路由,而是通过路由b转发了一次,请问这样可以吗?注意,路由b的wan口我是不用的,没有什么二级路由一说,就是单纯的通过路由b的lan口,多转发一次数据包给总路由。可以实现吗??
可以实现,但是路由器的路由不是你这样写法.
回复 点赞
haiwen5668 2019年06月22日
你快要接触到交换机的核心部分了,尤其是第二层的东西
回复 点赞
maybeisme 2019年06月22日
引用 34 楼 haiwen5668 的回复:
你快要接触到交换机的核心部分了,尤其是第二层的东西


我现在探讨的是第三层的东西,第二层就是发送ARP,获得MAC帧,封装数据帧走2层设备而已!
回复 点赞
i_huawen 2019年06月22日
网卡共享喽,以前设备贵的时间用,现在没有这个必要了
回复 点赞
薄荷_红茶 2019年06月22日
其实楼上有一位同学答案已经有了,说白了就是默认情况下我们的主机没有开启路由转发功能。 我们的主机(windows、linux、mac)遇到目的ip不是自己网卡的数据就丢弃,我们可以通过更改系统的内核参数,开启路由转发功能就实现你的需求。 路由器不会是因为,系统内核里面路由功能转发默认是开启的。 如果对于windows server或者linux熟悉的话,就应该明白这两个系统都是可以拿来当路由器使用的。 为何不这么做,而用专业硬件路由器来,是因为当路由表项巨大时,比如几百万条(运营商的路由器里面的数量可比这多),windows server 、linux做不了。 至于专业的硬件路由器能处理,是因为里面优化了路由查找算法,也提供快速转发芯片,当然还有一些其他机制。
回复 点赞
maybeisme 2019年06月21日
引用 21 楼 m0_45212902的回复:
那我在提问下,还是之前九楼的那个第一个拓扑结构,电脑b换成路由器b,lan口地址是192.168.1.6,电脑a网关还是指向这个1.6,然后我在这个路由b里添加一个静态路由 0.0.0.0 mask 0.0.0.0 192.168.1.1 注意,这个路由b的wan口我是不用的,请问电脑a访问外网的时候,电脑a的数据包能先发给路由b的lan口,然后路由b把这个数据包在通过lan口又发给192.168.1.1这个连接外网的路由(姑且叫总路由吧),也就是说这个电脑a的数据包没有直接发给总路由,而是通过路由b转发了一次,请问这样可以吗?注意,路由b的wan口我是不用的,没有什么二级路由一说,就是单纯的通过路由b的lan口,多转发一次数据包给总路由。可以实现吗??
说错了,路由b的地址是192.168.1.5 电脑a地址是192.168.1.6,然后网关是指向这个路由b
回复 点赞
maybeisme 2019年06月21日
那我在提问下,还是之前九楼的那个第一个拓扑结构,电脑b换成路由器b,lan口地址是192.168.1.6,电脑a网关还是指向这个1.6,然后我在这个路由b里添加一个静态路由 0.0.0.0 mask 0.0.0.0 192.168.1.1 注意,这个路由b的wan口我是不用的,请问电脑a访问外网的时候,电脑a的数据包能先发给路由b的lan口,然后路由b把这个数据包在通过lan口又发给192.168.1.1这个连接外网的路由(姑且叫总路由吧),也就是说这个电脑a的数据包没有直接发给总路由,而是通过路由b转发了一次,请问这样可以吗?注意,路由b的wan口我是不用的,没有什么二级路由一说,就是单纯的通过路由b的lan口,多转发一次数据包给总路由。可以实现吗??
回复 点赞
maybeisme 2019年06月21日
引用 25 楼 yymmcc112233的回复:
[quote=引用 24 楼 m0_45212902 的回复:][quote=引用 23 楼 yymmcc112233的回复:]有两点,不大确定的地方。1我不确定你的路由器是否具有完整二层功能,当你发百度请求时(假设输入的事ip,不查dns),你会先arp查网关mac,查到后你会发送一个目的ip是百度,目的mac是网关.5的包,路由器如果具备完整二层功能,会转发给.5的接口,如果不具备完整二层功能可能直接丢弃,因为路由器本地没有此mac。第二个就是,你.5的相关防火墙是不是关了,默认windows操作系统都是开防火墙的,ping包都是过滤的。
就是普通的路由器,而且没听懂什么叫路由器本身没有比mac.... 路由器lan口本身就是有mac地址的,电脑a网关是这个路由b,当然能直接发给路由b了。而且这个和防火墙没啥关系吧[/quote]那就是网卡模式,混杂模式才可以监听目的地址不是你自己或者广播的包。一般模式不会响应,目的地址不是你的包。[/quote] 没太听懂,但是我觉得可以,我网关就是路由b的lan口,数据可以正常发送到路由b,然后路由b查找自己路由表是发到总路由的192.168.1.1,我觉得没问题,回头我做个测试
回复 点赞
ArclogicA 2019年06月21日
引用 24 楼 m0_45212902 的回复:
[quote=引用 23 楼 yymmcc112233的回复:]有两点,不大确定的地方。1我不确定你的路由器是否具有完整二层功能,当你发百度请求时(假设输入的事ip,不查dns),你会先arp查网关mac,查到后你会发送一个目的ip是百度,目的mac是网关.5的包,路由器如果具备完整二层功能,会转发给.5的接口,如果不具备完整二层功能可能直接丢弃,因为路由器本地没有此mac。第二个就是,你.5的相关防火墙是不是关了,默认windows操作系统都是开防火墙的,ping包都是过滤的。
就是普通的路由器,而且没听懂什么叫路由器本身没有比mac.... 路由器lan口本身就是有mac地址的,电脑a网关是这个路由b,当然能直接发给路由b了。而且这个和防火墙没啥关系吧[/quote]那就是网卡模式,混杂模式才可以监听目的地址不是你自己或者广播的包。一般模式不会响应,目的地址不是你的包。
回复 点赞
weixin_41683286 2019年06月21日
是不是可以这么想: 电脑A收到B发来的数据后,觉得自己不是路由器,不该干路由器的活儿,所以就丢弃了
回复 点赞
maybeisme 2019年06月21日
引用 23 楼 yymmcc112233的回复:
有两点,不大确定的地方。1我不确定你的路由器是否具有完整二层功能,当你发百度请求时(假设输入的事ip,不查dns),你会先arp查网关mac,查到后你会发送一个目的ip是百度,目的mac是网关.5的包,路由器如果具备完整二层功能,会转发给.5的接口,如果不具备完整二层功能可能直接丢弃,因为路由器本地没有此mac。第二个就是,你.5的相关防火墙是不是关了,默认windows操作系统都是开防火墙的,ping包都是过滤的。
就是普通的路由器,而且没听懂什么叫路由器本身没有比mac.... 路由器lan口本身就是有mac地址的,电脑a网关是这个路由b,当然能直接发给路由b了。而且这个和防火墙没啥关系吧
回复 点赞
ArclogicA 2019年06月21日
有两点,不大确定的地方。1我不确定你的路由器是否具有完整二层功能,当你发百度请求时(假设输入的事ip,不查dns),你会先arp查网关mac,查到后你会发送一个目的ip是百度,目的mac是网关.5的包,路由器如果具备完整二层功能,会转发给.5的接口,如果不具备完整二层功能可能直接丢弃,因为路由器本地没有此mac。第二个就是,你.5的相关防火墙是不是关了,默认windows操作系统都是开防火墙的,ping包都是过滤的。
回复 点赞
maybeisme 2019年06月21日
刚才在机房用真机做了实验了,按照我自己的那个拓扑结构,总路由192.168.1.1的lan口下面,接电脑a192.168.1.5和路由b的lan口192.168.1.6 然后电脑a网关是指向路由b 然后在路由b里面添加静态路由 0.0.0.0 0.0.0.0 192.168.1.1。。提示目的地址不对,也就说明路由b的lan口是不能配置默认网关的,也就是说路由器里面静态路由必须是一个明确的网段。于是我填写了百度的ip段 在路由b里面填写静态路由 14.215.177.0 255.255.255.0 192.168.1.1成功,然后电脑a访问别的别的公网ip都不行,但是浏览器里面输入14.215.177.39是可以访问百度的。也就是说 电脑a访问百度ip的时候,数据先发给了路由b,然后路由b又把数据通过静态路由发给192.168.1.1,然后1.1这个路由走nat,到了百度的ip
回复 点赞
ArclogicA 2019年06月21日
引用 26 楼 m0_45212902 的回复:
[quote=引用 25 楼 yymmcc112233的回复:][quote=引用 24 楼 m0_45212902 的回复:][quote=引用 23 楼 yymmcc112233的回复:]有两点,不大确定的地方。1我不确定你的路由器是否具有完整二层功能,当你发百度请求时(假设输入的事ip,不查dns),你会先arp查网关mac,查到后你会发送一个目的ip是百度,目的mac是网关.5的包,路由器如果具备完整二层功能,会转发给.5的接口,如果不具备完整二层功能可能直接丢弃,因为路由器本地没有此mac。第二个就是,你.5的相关防火墙是不是关了,默认windows操作系统都是开防火墙的,ping包都是过滤的。
就是普通的路由器,而且没听懂什么叫路由器本身没有比mac.... 路由器lan口本身就是有mac地址的,电脑a网关是这个路由b,当然能直接发给路由b了。而且这个和防火墙没啥关系吧[/quote]那就是网卡模式,混杂模式才可以监听目的地址不是你自己或者广播的包。一般模式不会响应,目的地址不是你的包。[/quote] 没太听懂,但是我觉得可以,我网关就是路由b的lan口,数据可以正常发送到路由b,然后路由b查找自己路由表是发到总路由的192.168.1.1,我觉得没问题,回头我做个测试[/quote]我实际环境试了下,.6的请求确实到.5了,但是.5不回应,我觉得是网卡自动丢弃。如果把网卡调成混杂模式,在添加相应路由,应该就可以了。
回复 点赞
maybeisme 2019年06月21日
楼上的 你根本就不明白我说的数据转发是什么意思。。。。我1.5的电脑 访问百度,是不是要发送数据包 交给路由器,让路由器走NAT 来转发这个数据包,我1.5的电脑访问的又不是1.6 我访问的百度,当然要通过路由转发了,你都没看明白 我到底要提问的是什么东西
回复 点赞
Iforgetmyid 2019年06月21日
先要明白什么是路由器,什么是交换机。路由器、网关这些是用来连接不同网段的,192.168.1.1、192.168.1.5、192.168.1.6都在一个网段上(除非你的掩码不一样),他们之间走的是二层,是交换,所以你那个拓扑就不对了。二层交换机转发的是帧,看的是mac地址,三层路由转发的是包,是把包从帧里剥出来,看的是IP地址。
回复 点赞
maybeisme 2019年06月21日
引用 27 楼 weixin_45287213的回复:
[quote=引用 1 楼 a010305的回复:]那按照这个想法,简单的网络都不需要路由器了,直接用主机就行了。请问电脑之间的通信运行在哪一层?
主机是可以当做路由器用的,但是性能就不行了,linux 和 windows server都可以当成路由器使用[/quote] 我意思是现在把那台电脑就换成普通路由器,看我前面重新提出的问题
回复 点赞
发动态
发帖子
交换及路由技术
创建于2007-09-28

1940

社区成员

1.2w+

社区内容

硬件使用 交换及路由技术相关问题讨论专区
社区公告
暂无公告