问题:话说两台电脑在一个局域网内,把它们的IP地址都设成不同的网段,请问,它们可不可以通讯?如果能,请问应该怎么做?
(1)其实不论怎么设置,目的都是为了添加路由
网关只是间接添加了0.0.0.0的默认路由
要通,只要添加路由,出接口选择自己的IP地址,就可以了
因为这样你将自动使用IP头的DESTINATION做为下一跳。
也就是说,不通是因为没路由,通,也是因为添加了路由
如
A:192.168.237.1 255.255.255.0
B:192.168.238.1 255.255.255.0
其实相互设置网关,和设自己为网关,区别在于,设对方为网关的时候
设置的是下一跳为对方。将对方设置自己为网关的时候设置的是出接口为自己
下一跳为IP头的DESTINATION。
我们可以发现,
当PING对方的时候这两种设置起到的作用是一样的,都是出接口为自己
下一跳为对方。
由于WINDOWS的路由表达的十分不清楚(特别是出接口和下一跳的概念上)
容易让人产生混淆
大家可以在路由器上试下,应该会清楚很多。
(2)把自己当成网关,等于将下一跳设为IP数据包的目的地址
(这样的设置在P2P上是可以的,但是在以态网上这样设置是很不好的)
比如我是192.168.237.1
网关是192.168.237.1(自己)
PING 192.168.238.1
的时候我首先查找路由发现下一跳是192.168.238.1
(由于网关是自己)
再查看192.168.238.1的MAC地址是否在本地缓存里
如果没有,就发送FFFFFFFFFFFF的ARP请求,得到REPlY以后
填写数据包,发送。
也就是说顺序是:
1:先查路由确定下一跳。
2:查下一跳的MAC地址,如果本地有就直接发,没有就发送ARP请求询问后再发。
(3)设置自己为网关是添加了一条
0.0.0.0 自己IP地址
的路由,这里不是说下一跳是自己,而是说出接口是自己的某一个网卡接口
这个接口的IPV4地址就是你添的(自己为网关)
在多接口的情况下这样可以唯一的标识一个出接口但是下一跳是没有定义的
当你要对某一个地址发送IP报文的时候,这个数据包的
下一跳将是IP包的目的地址,比如你PING
1.2.3.4下一跳就将是1.2.3.4
WINDOWS将自己设置为网关的时候的确容易让人将出接口和下一跳的概念混淆
简单的说,设置自己为网关的意思就是:
认为要访问的所有的机器都和自己的机器在同
一个广播网络内,这样将导致你无法访问多跳外的节点
(4)网关的意思实际上就是指在没有其他的路由的情况下的默认的下一跳地址
其本质是一条静态路由,我们知道静态路由的优先级别没有直连路由高,
所以当访问和接口IP地址在同一广播网络内的节点的时候不会使用到这条静态路由。
在路由器中配置路由,严格的说是要指明出接口和下一跳的
当然在POS上可以只定义出接口,由于POS的下一跳是唯一的,并且协商好了的
在以态接口上,我们又习惯只定义下一跳,省略出接口
这都是由于路由器的路由管理模块和接口管理模块会自动的帮你完成这条路由
如果有机会获得路由器内部的SHELL的话,可以看看路由器内部的各个转发表
其中出接口和下一跳都是必须的,不然路由器内部就无法知道要将数据包下发到
哪快板卡上的哪个接口上。
所谓的“路由器的网关”也就是路由器中配置的0.0.0.0的静态路由
这样是定义一个在找不到路由情况下的默认下一跳,这样的配置在路由器上
具体作用,我们可以举个简单的例子:
一般的说在撇开动态路由协议的情况下,我们一般将出口路由器
或者和别的AS连接的路由器设置为默认的下一跳,
因为理论上他们知道应该怎样访问外部的网络。
但是在动态路由协议越来越成熟的今天,这样配置....似乎不大好
比较欠缺灵活,至少无法在网关失效的情况下发现其他可能存在的外出链路
(另:网关使用了足够多的节点跑VRRP的情况除外)
(5)由于将默认路由的出接口定义为自己的IP地址,并且不指定下一跳的地址
所以在查转发表的时候,将使用数据包的目的地址作为下一跳的地址
这就导致了数据包中的MAC地址就是IP头中目的IP地址的物理地址
这样发出的数据包,由于其他节点不会接受目的MAC地址不是自己的数据包
所以要么就一跳直接到达目的地,要么就是根本找不到接收节点的MAC地址而无法组装成形
通过这样的推理,在不考虑多IP层的隧道封装的情况下,这样的数据包是不会被转发的
(6)"要当访问和接口IP地址在同一广播网络内的节点的时候不会使用到这条静态路由。"
这句话的意思不是说不查找路由,而是说
要当访问和接口IP地址在同一广播网络内的节点的时候
由于你配置接口IP地址的时候将产生一条直连路由,而这样的直连路由的优先级
和掩码都比静态配置的默认路由来的高。
所以在访问和接口IP地址在同一广播网络内的节点的时候,优先匹配到的
是接口的直连路由,自然就不会使用到0.0.0.0的静态路由了
关于交换.....我说一下我的理解吧(仅供参考哦~^_^)
大家喜欢将交换分为2层和三层交换
2层交换应该是指在接口号和MAC地址之间建立
一种一对多的关系(不考虑有多个节点共用一个MAC地址的情况下)
在不考虑IP头的情况下将数不同目的MAC的数据包“交换”到各个接口上
而三层交换应该就是路由了,拿我们常说的VLAN来说,
在使用IP地址标记的VLAN与VLAN之间的通讯实际上也是要通过查转发表来实现
所以我的理解是三层交换机实际上已经是一个性能缩减的路由器了。
如果你把交换机的每一个接口都配置成不同的VLAN~~
(实际上就是都配上了IP吧?)
那么它就只能在这些接口之间进行路由了~~:)
(7)在MS系统中设置网关的效果:
1.不设网关...............................不向本网段以外的地址发包
2.网关设为自己.........................proxy arp,
对任何地址发ARP请求,路由器响应
3.网关设为路由器地址................普通模式,PC
ARP解释路由器地址,然后跨网段数据包交路由器转发
4.网关设为未使用的本网段地址....普通模式,PC
ARP解释路由器地址,失败,无法跨网段访问
5.网关设为非本网段地址.............proxy arp,
对任何地址发ARP请求,路由器响应
想搞网关欺骗的时候,可以把自己的网关设为一其他网段的IP,以免自己上网也不顺畅。在路由器(或三层交换机)开proxy
arp的情况下,你就可以直接上网了。否则,用arp -s
其他网段IP(即你本机上设的网关的IP)真实网关的mac 设置后,也就可以了。
(8)所以这个问题的解决方法有3种:
其一:双方互相设置对方ip为默认网关;
其二:双方设置自己ip为默认网关;
其三:如果局域网两台电脑都是用的windows2000以上的操作系统,一台电脑绑定双IP(就是另一个网段的IP),然后我们在地址栏里面直接用IP访问。
如:
a:192.168.0.10
192.168.111.10
b:192.168.111.10
192.168.0.10
转发至微博
转发至微博
访问网络内不同ip段的计算机 [转]问题:话说两台电脑在一个局域网内 把它们的IP地址都设成不同的网段 请问 它们可不可以通讯?如...