关于 双网卡访问一个地址,请大家讲讲原理(300)

  • 主题发起人 主题发起人 Dstorm
  • 开始时间 开始时间
D

Dstorm

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在有两个网卡一个能上外网,一个能上局域网,当我访问一个地址的时候,会自动选择网卡,怎么自动选择的?我要知道 底层原理!~然后模仿!~
 
看不明白你问的问题,一般双网卡,要解决路由问题,访问外网和内网自动选择,网上有该解决办法。
 
外网和内网自动选择,怎么自动选择的,我要知道 底层原理!~然后模仿!~
 
经常遇到一台计算机要同时访问两个网络(一个是互联网,一个内部网)的要求 机器有两块网卡,接到两台交换机上 ,都是自动分配IP或者也可以自己设置IP,网关一定要知道。internet地址:192.168.0.5,子网掩码:255.255.255.0,网关:192.168.0.1 企业内部网地址:202.202.**,子网掩码:255.255.255.*,网关:202.202如果按正常的设置方法设置每块网卡的ip地址和网关,再cmd下使用route print查看时会看到 Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.0.5 192.168.0.1 0.0.0.0 0.0.0.0 202.202.** 202.202.** 这里就是路由访问时候出现了问题,所以只有一个网络可以访问!!! 即指向0.0.0.0的有两个网关,这样就会出现路由冲突,两个网络都不能访问。要实现同时访问两个网络就要用到route命令 第一步:route delete 0.0.0.0 "删除所有0.0.0.0的路由" 第二步:route add 0.0.0.0 mask 0.0.0.0 192.168.0.1"添加0.0.0.0网络路由,指向你访问外网用的IP的网关" 第三步:route add 202.202.0.0(此处是一个IP范围,即202.202打头的IP都通过后面的网关访问) mask 255.255.0.0 202.202.**(要写完整的IP不能用*)"添加202.202.0.0网络路由" 如果不知道自己的IP和网关,可以先使用自动分配IP,察看自己的IP地址和网关.(网关和掩码一般是固定的) 这时就可以同时访问两个网络了,但碰到一个问题,使用上述命令添加的路由在系统重新启动后会自动丢失, 在win2000 和XP下可以使用route add -p 添加静态路由(在命令最后添加 -p),即重启后,路由不会丢失。注意使用前要在tcp/ip设置里去掉接在企业内部网的网卡的网关 在win98下没有-p 参数,可以把以上命令存入到一个.bat文件中,然后在启动时调用即可 bat文件可以用记事本编辑,编辑完了存为*.bat就可以了
 
当内网 1号主机 192.168.97.2要与 2号主机 192.168.97.3通讯,主机1检查目标地址ip 192.168.97.3的网段为 192.168.97.3与运算255.255.255.0为192.168.97.0,跟本主机处于同一网段,经交换机(根据MAC地址转发)直接把数据包发给目标主机,而不会走路由器。 当本机器要上外网的时候,经查找本机的路由表,在route print命令显示出来的路由表中,路由查询是从下往上查询的,最上面的路由条目为默认路由。经网关把数据包发出去,从而达到与外网通讯的目的。 如果内网还分好几个网段,这时候,如果内网的本地连接不设网关,显然是不能与内网的其他网段通讯的。例:如果内网主机192.168.97.1要与192.168.98.1通讯,该主机查找本地路表,由于没有找到192.168.98.0的相关路由表项,最后只好走默认路由,把数据包送到网关10.42.29.10,而这个网关是外部网的网关,该数据包显然是无法到达我们内部网的(设内外网的目的主要是为了隔绝,所以外网是无法把此数据包路由到内网的相应目的主机上的)
 
谢谢,正在研究,有结果马上结贴”例:如果内网主机192.168.97.1要与192.168.98.1通讯,该主机查找本地路表,由于没有找到192.168.98.0的相关路由表项,最后只好走默认路由,把数据包送到网关10.42.29.10“那我 能不能 192.168.98.1通讯走10.42.29.10,192.16.98.2走内网,是不是又要Add?程序能解决吗?自己往指定的网卡写数据?
 
程序可以解决,但较麻烦,需要在驱动和应用程序之间插入一层并进行编程,如服务提供者,虚拟网卡等防火墙技术
 
需要在驱动和应用程序之间插入一层并进行编程我的想法看看对不对: 如果 虚拟网卡,我设置它在所在的网关先路由(用route add),然后从虚拟网卡中读到目标IP,对应把截获的数据写到那个真实的网卡!~是这样吗,仔细看看我描述有错吗?
 
希望我上面的描述是对的,不然我真的没办法了!~
 
建议你参考一下VPN采用的隧道技术,好些VPN应用在多网卡系统中可以选择用那一块物理网卡
 
默认网关。
 
老白好早啊。
 
ROUTE DELETE 0.0.0.0 ROUTE DELETE 192.168.8.0ROUTE DELETE 192.168.9.0ROUTE DELETE 192.168.10.0ROUTE DELETE 192.168.11.0ROUTE ADD 0.0.0.0 MASK 0.0.0.0 192.168.1.1 METRIC 1ROUTE ADD 192.168.8.0 MASK 255.255.255.0 192.168.10.1 METRIC 1ROUTE ADD 192.168.9.0 MASK 255.255.255.0 192.168.10.1 METRIC 1ROUTE ADD 192.168.10.0 MASK 255.255.255.0 192.168.10.1 METRIC 1ROUTE ADD 192.168.11.0 MASK 255.255.255.0 192.168.10.1 METRIC 1
 
我们公司有多个网段,我每次开机,执行这个BAT文件就OK.
 
192.168.1.1 是外网网关192.168.10.1 是内网关口
 
谢谢。正在尝试,散分
 
后退
顶部