多IP路由
作者:游子 http://www.cnitblog.com/liaoqingshan/ 2008.12.22
一般个人电脑只需要一个IP,连接一个网络。但是经常,作为研发人员,常常需要用一台电脑连接多个不同的网络,有的是多个网卡,有的是一个网卡多个IP。这就涉及到IP路由问题:要连接对方,究竟是选择这块网卡,还是那块网卡?是用这个IP,还是那个IP?
我们知道,与另一台电脑(或其它联网设备)连接,需要4个数据:源IP、源端口、目的IP、目的端口,这叫一个socket对。确定了这4个值,就确定了一个连接。我们浏览器网页,或使用其它通讯软件时,目的IP,目的端口都是固定的,源端口通常是随机选择的。而源IP,如果一台电脑只有一个就简单了,如果有一个以上,就要做出正确的选择了。
我们还知道,两个IP要互相通讯,必须在同一子网内,何为子网?我这里只举例子,原理请参看:http://i.cn.yahoo.com/jinghai/blog/p_67/
通常局域网设置IP为:192.168.0.2,255.255.255.0,192.168.0.1,假设这台电脑为A,则另一台电脑B如果设置IP为:192.168.0.222,255.255.255.0,192.168.0.1,那么它们为同一子网。如果电脑B设置IP为:192.168.1.222,255.255.255.0,192.168.0.1,那么就不是同一子网了。或者B设置IP为:192.168.0.222,255.255.255.127,192.168.0.1,它们也不是同一子网。所以电脑A与B是不是同一子网,跟他们的IP和MASK有关系,但跟GATEWAY没有关系。那么,GATEWAY(网关),做什么用呢?
在这里,如果B用192.168.0.222,255.255.255.0,192.168.0.1的设置,那么A与B在同一子网,192.168.0.2与192.168.0.222可以直接通讯,A可以直接访问B,B也可以直接访问A。但是,如果A要访问一个220.181.5.222的IP(电脑C),显然,它不与A在同一子网,这时,A就无法直接访问C。怎么办呢?这就要用到网关了,A把要发给C的数据,发给网关,网关收到来自A的数据,转发给C,C收到后,回复给网关,网关再把来自C的数据转发给A,就间接的实现了A与C之间的通讯。
所以,如果一台电脑设置如下:
192.168.0.2
255.255.255.0
192.168.0.1
要访问220.181.5.222,因为不跟自己在同一子网,就会通过网关192.168.0.1来间接访问。
如果一台电脑设置如下:
192.168.0.2
255.255.255.0
0.0.0.0
要访问220.181.5.222,因为不跟自己在同一子网,又没有网关,就无法访问。
如果一台电脑设置如下:
IP1: IP2:
192.168.0.2 192.168.2.2
255.255.255.0 255.255.255.0
192.168.0.1 0.0.0.0
要访问192.168.0.3,它判断到与IP1同一网段,就直接用IP1访问。
要访问192.168.2.3,它判断到与IP2同一网段,就直接用IP2访问。
要访问220.181.5.222,因为不跟IP1,也不跟IP2在同一子网,就会通过网关192.168.0.1来间接访问。
如果一台电脑设置如下:
IP1: IP2:
192.168.0.2 192.168.2.2
255.255.255.0 255.255.255.0
192.168.0.1 192.168.2.1
要访问220.181.5.222,因为不跟IP1,也不跟IP2在同一子网,那它会选择谁呢?可能两个都尝试,也可能一个都不试,直接提示失败。有些操作系统,可以手工设置一些IP,那就叫做静态路由。也有些操作系统不支持手工设置,那就最好不要设置两个网关的IP,否则电脑可能不能与别人通讯了。
posted on 2008-12-22 16:13
游子 阅读(433)
评论(1) 编辑 收藏 引用 所属分类:
原创技术