军训心得体会总结:〔转〕玩转双网卡

来源:百度文库 编辑:中财网 时间:2024/04/27 23:18:42
玩转双网卡第一讲:兵分两路,双网卡分别访问内外网之一
作者:一剑
环境:内置网卡接内网,IP 192.168.0.2 网关192.168.0.1
   外置无线网卡接外网,IP 192.168.1.102 网关192.168.1.1
C:\Documents and Settings\user>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 15 f3 a7 6c c3 ...... Realtek RTL8168/8111 PCI-E Gigabit Ethernet NIC
- 数据包计划程序微型端口
0x10004 ...00 a0 f5 30 5a 36 ...... Realtek RTL8187 Wireless 802.11g 54Mbps USB
2.0 Network Adapter - 数据包计划程序微型端口
===========================================================================
===========================================================================
Active Routes:
Network Destination             Netmask             Gateway             Interface  Metric
                  0.0.0.0                  0.0.0.0        192.168.0.1       192.168.0.2     20
                  0.0.0.0                  0.0.0.0        192.168.1.1   192.168.1.102     25
              127.0.0.0              255.0.0.0            127.0.0.1           127.0.0.1       1
          169.254.0.0          255.255.0.0        192.168.0.2       192.168.0.2     20
          192.168.0.0      255.255.255.0        192.168.0.2       192.168.0.2     20
          192.168.1.0      255.255.255.0    192.168.1.102   192.168.1.102     25
          192.168.0.2  255.255.255.255            127.0.0.1           127.0.0.1     20
      192.168.1.102  255.255.255.255            127.0.0.1           127.0.0.1     25
      192.168.0.255  255.255.255.255        192.168.0.2       192.168.0.2     20
      192.168.1.255  255.255.255.255    192.168.1.102   192.168.1.102     25
              224.0.0.0              240.0.0.0        192.168.0.2       192.168.0.2     20
              224.0.0.0              240.0.0.0    192.168.1.102   192.168.1.102     25
  255.255.255.255  255.255.255.255        192.168.0.2       192.168.0.2       1
  255.255.255.255  255.255.255.255    192.168.1.102   192.168.1.102       1
Default Gateway:       192.168.0.1
===========================================================================
Persistent Routes:
  None

解决:建立以下命令就可以了:
route delete 0.0.0.0
route -p add 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 25
route -p add 0.0.0.0 mask 0.0.0.0 192.168.0.1 metric 30
route -p add 192.168.0.0 mask 255.255.0.0 192.168.0.1 metric 20
或者
route delete 0.0.0.0
route -p add 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 19
route add 192.168.0.0 mask 255.255.0.0 192.168.0.1 metric 20
但如果这样是不对的
route delete 0.0.0.0
route -p add 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 25
route add 192.168.0.0 mask 255.255.0.0 192.168.0.1 metric 20
因为内部已有一条默认的路由
0.0.0.0       0.0.0.0        192.168.0.1       192.168.0.2     20 (默认路由)
0.0.0.0       0.0.0.0        192.168.1.1   192.168.1.102     25    (新增路由)
由于默认路由跌点数20比新增路由跌点数25更小,使得192.168.0.1成为默认的网关,导致访问internet失败。

说明:
          -p为写入注册表中永久生效,在注册表中的位置为
      [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes]
             可以用route delete 0.0.0.0和route delete 192.168.0.0删除或者route -f全部清除,也可以到注册表中手工删除
   当存在两条相同路由时,跌点数低的将会优行使用
完整的route命令为
route [-f] [-p] ADD 157.0.0.0 MASK 255.0.0.0  157.55.80.1 METRIC 3 IF 2
                              destination^              ^mask      ^gateway          metric^      ^Interface
-f清空路由表
metric为跌点数,通俗讲就是经过了多少个路由器转发
Interface为端口索引,如0x10004,用route print可以查看

玩转双网卡第二讲:兵分两路,双网卡分别访问内外网之二
作者:一剑

       在上一讲两个不同的网关具有不同的跌点数,internet自动选择低跌点数出口,使得问题比较容易地解决了,那么这一讲情况复杂了,两个路由器的网关相同,那又该如何解决问题呢?

环境:内置网卡接内网,IP 192.168.1.2 网关192.168.1.1
   外置无线网卡接外网,IP 192.168.1.103 网关192.168.1.1

C:\Documents and Settings\user>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 15 f3 a7 6c c3  ...... Realtek RTL8168/8111 PCI-E Gigabit Ethernet NIC
- 数据包计划程序微型端口
0x10004 ...00 a0 f5 30 5a 36 ...... Realtek RTL8187 Wireless 802.11g 54Mbps USB
2.0 Network Adapter - 数据包计划程序微型端口
===========================================================================
===========================================================================
Active Routes:
Network Destination             Netmask             Gateway             Interface  Metric
                  0.0.0.0                  0.0.0.0        192.168.1.1   192.168.1.103     25
                  0.0.0.0                  0.0.0.0        192.168.1.1       192.168.1.2     20
              127.0.0.0              255.0.0.0            127.0.0.1           127.0.0.1       1
          169.254.0.0          255.255.0.0        192.168.1.2       192.168.1.2     20
          192.168.1.0      255.255.255.0        192.168.1.2       192.168.1.2     20
          192.168.1.0      255.255.255.0    192.168.1.103   192.168.1.103     25
          192.168.1.2  255.255.255.255            127.0.0.1           127.0.0.1     20
      192.168.1.103  255.255.255.255            127.0.0.1           127.0.0.1     25
      192.168.1.255  255.255.255.255        192.168.1.2       192.168.1.2     20
      192.168.1.255  255.255.255.255    192.168.1.103   192.168.1.103     25
              224.0.0.0              240.0.0.0        192.168.1.2       192.168.1.2     20
              224.0.0.0              240.0.0.0    192.168.1.103   192.168.1.103     25
  255.255.255.255  255.255.255.255        192.168.1.2       192.168.1.2       1
  255.255.255.255  255.255.255.255    192.168.1.103   192.168.1.103       1
Default Gateway:       192.168.1.1
===========================================================================
Persistent Routes:
  None

要求:局域网内能互访,internet畅通

解决:CMD窗口运行以下命令就可以了,相当于到网卡的TCP/IP属性中设为指定IP,默认网关留空。

netsh interface ip set address name = "本地连接 1" source=static addr=192.168.1.2 mask=255.255.255.0

下面查看到双路出口被封掉了一个,问题就解决了,
C:\Documents and Settings\user>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 15 f2 a8 c6 f7 ...... Realtek RTL8168/8111 PCI-E Gigabit Ethernet NIC
- 数据包计划程序微型端口
0x10004 ...00 e0 4c 03 3f 40 ...... Realtek RTL8187 Wireless 802.11g 54Mbps USB
2.0 Network Adapter - 数据包计划程序微型端口
===========================================================================
===========================================================================
Active Routes:
Network Destination             Netmask             Gateway             Interface  Metric
                  0.0.0.0                  0.0.0.0        192.168.1.1   192.168.1.103     25
              127.0.0.0              255.0.0.0            127.0.0.1           127.0.0.1       1
          169.254.0.0          255.255.0.0    192.168.1.103   192.168.1.103     20
          192.168.1.0      255.255.255.0        192.168.1.2       192.168.1.2     20
          192.168.1.0      255.255.255.0    192.168.1.103   192.168.1.103     25
          192.168.1.2  255.255.255.255            127.0.0.1           127.0.0.1     20
      192.168.1.103  255.255.255.255            127.0.0.1           127.0.0.1     25
      192.168.1.255  255.255.255.255        192.168.1.2       192.168.1.2     20
      192.168.1.255  255.255.255.255    192.168.1.103   192.168.1.103     25
              224.0.0.0              240.0.0.0        192.168.1.2       192.168.1.2     20
              224.0.0.0              240.0.0.0    192.168.1.103   192.168.1.103     25
  255.255.255.255  255.255.255.255        192.168.1.2       192.168.1.2       1
  255.255.255.255  255.255.255.255    192.168.1.103   192.168.1.103       1
Default Gateway:       192.168.1.1
===========================================================================
Persistent Routes:
  None

玩转双网卡第三讲:负载均衡,多路internet带宽合并

作者:一剑
       这一讲开始讲解多路internet带宽合并的问题,比较简单的情况是多路通路网关并不一样,原计划为第三讲,通过前两节的学习后,这个很容易解决,有时间再回头讲。那么这一讲重点讲解,多路internet访问时,网关相同的情况,原计划是第四讲的内容,因为大多时候我们并不能控制路由器,去修改为不同的网关,比如上多块无线网卡时^-^。
环境:无线网卡A,IP 192.168.1.8 网关192.168.1.1
   无线网卡B,IP 192.168.1.106 网关192.168.1.1
C:\Windows\system32>route print
===========================================================================
接口列表
 16...00 a0 f5 30 5a 36 ......Realtek RTL8187 Wireless 802.11b/g 54Mbps USB 2.0
Network Adapter
 13...00 3e fc 09 23 a6 ......Broadcom NetLink (TM) Fast Ethernet
 12...00 15 f3 a7 6c c3 ......Intel(R) WiFi 链接 5100 AGN
  1...........................Software Loopback Interface 1
 17...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #3
 18...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #4
 11...00 00 00 00 00 00 00 e0 Microsoft Teredo Tunneling Adapter
===========================================================================
IPv4 路由表
===========================================================================
活动路由:
网络目标        网络掩码          网关       接口   跃点数
          0.0.0.0          0.0.0.0      192.168.1.1      192.168.1.8     30
          0.0.0.0          0.0.0.0      192.168.1.1    192.168.1.106     40
        127.0.0.0        255.0.0.0            在链路上         127.0.0.1    306
        127.0.0.1  255.255.255.255            在链路上         127.0.0.1    306
  127.255.255.255  255.255.255.255            在链路上         127.0.0.1    306
      192.168.1.0    255.255.255.0            在链路上       192.168.1.8    286
      192.168.1.0    255.255.255.0            在链路上     192.168.1.106    296
      192.168.1.8  255.255.255.255            在链路上       192.168.1.8    286
    192.168.1.106  255.255.255.255            在链路上     192.168.1.106    296
    192.168.1.255  255.255.255.255            在链路上       192.168.1.8    286
    192.168.1.255  255.255.255.255            在链路上     192.168.1.106    296
        224.0.0.0        240.0.0.0            在链路上         127.0.0.1    306
        224.0.0.0        240.0.0.0            在链路上       192.168.1.8    286
        224.0.0.0        240.0.0.0            在链路上     192.168.1.106    296
  255.255.255.255  255.255.255.255            在链路上         127.0.0.1    306
  255.255.255.255  255.255.255.255            在链路上       192.168.1.8    286
  255.255.255.255  255.255.255.255            在链路上     192.168.1.106    296
===========================================================================
永久路由:
  无

问题:我们发现,即使是最新的win7,也只是把两路internet作为备用关系,并不能同时利用,问题的关键就是路由表的前两句:
网络目标        网络掩码          网关                    接口            跃点数
   0.0.0.0          0.0.0.0      192.168.1.1      192.168.1.8       30
   0.0.0.0          0.0.0.0      192.168.1.1    192.168.1.106     40
        由于两路出口有不同的跃点数,所以30的那路总是被优先使用,40那路始终利用不上。
        那么我们手工把它们改成一样是不是就可以了呢,经测试发现这样处理,所以程序会随机选择internet出口,导致外网IP地址不停地变换,结果就是程序不停地掉线,比如QQ,即便是P2P软件,我们可以通过netstat -n查看到,两路internet都被利用上了,但p2p软件的下载速度反而很低,这是因为你不能固定一个IP给别人流量,导致别人给你的流量也大大减少了。这也是网络上很多同类软件的通病。
解决:就是要把internet上的所有IP地址固定分摊到两块网上就可以了,这可以通过修改路由表实现。
        由于有相同的网关,事情变得复杂起来了,还记得那个if参数吗?对,相同网关,我们可以用if来区分经由不同的网卡出口,比如:
route add 202.0.0.0 mask 255.0.0.0 192.168.1.1 metric 20 if 16
route add 203.0.0.0 mask 255.0.0.0 192.168.1.1 metric 20 if 12
      我们就把两大类IP访问分摊到两张网卡上了。
      如果我们穷举所有的IP分类,并分摊到两张网卡上,问题就解决了。
      那么,如何验证呢?一是看P2P软件的下载流量增加了,二是更具体的用netstat -n查看所有外网连接都被均匀经由两张网卡出去了。
      需要说明的是,该方法只对多点下载有效,比如P2P软件,对单点下载无效。
      为了方便操作,我已把它做成了批命,下载附件执行一下就OK了,批命令会轮询你的网卡中哪些是连上了internet的,支持最多五块网卡同时连通internet。
      (win7需要以管理员身份运行)
     多网合并时,如果你在使用中有问题,重启就可以了,这个批命令重启就会失效。


==========================================
  发觉不能上传附件
把下面的命令保存为BAT批处理即可
===========================================
@echo off
echo.
echo               ╭─────────╮
echo   ╭─────┤   internet加速   ├─────╮
echo   │          ╰─────────╯          │
echo   │     仅支持不超过五路internet负载均衡     │
echo   │                                          │
echo   │         msn: aswordok@hotmail.com        │
echo   ╰─────────────────────╯
echo.
echo 请以管理员身份运行此批命令
echo.
echo 运行此命令前:
echo ------请先把各网卡连通internet
echo ------请先行用ipconfig /all查看各网卡对应网关情况
echo.
setlocal EnableDelayedExpansion

rem 获取网卡信息-----------------------------------------
for /f "delims=" %%i in ('route print ^| find "..."') do (
set /a n+=1
set line!n!=%%i
)
echo.

rem 获取网关信息-----------------------------------------
set m=1 & set o=1
:getinter
for /f "tokens=2 delims==" %%i in ('set line%m%') do set line%m%=%%i
set yn=
set /p yn=!line%m%! 是internet通路吗[直接回车默认n][y/n]?:
if "%yn%" == "y" (
for /f "tokens=1,* delims=. " %%i in ("!line%m%!") do set interface%o%=%%i
set /p gateway%o%=...........网关[直接回车默认192.168.1.1]:
if "#!gateway%o%!" == "#" set gateway%o%=192.168.1.1
set /a o+=1
)
set /a m+=1
if %m% leq %n% goto getinter

rem 设置路由-----------------------------------------
echo.

if "#%interface1%" == "#" (
echo 没有internet通路
goto ext
)

if "#%interface2%" == "#" (
echo 只有一块网卡上网,不能负载均衡
goto ext
)

rem 排除IP:10 127 172 169 192
if "#%interface3%" == "#" (
echo 有二块网卡上网,开始负载均衡...
set n1=1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 125 129 131 133 135 137 139 141 143 145 147 149 151 153 155 157 159 161 163 165 167 171 173 175 177 179 181 183 185 187 189 191 193 195 197 199 201 203 205 207 209 211 213 215 217 219 221 223
set n2=2 4 6 8 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 156 158 160 162 164 166 168 170 174 176 178 180 182 184 186 188 190 194 196 198 200 202 204 206 208 210 212 214 216 218 220 222
rem route delete 0.0.0.0 >nul
route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 %gateway1% metric 30 if %interface1%
for %%i in (!n1!) do route add %%i.0.0.0 mask 255.0.0.0 %gateway1% metric 25 if %interface1%
for %%i in (!n2!) do route add %%i.0.0.0 mask 255.0.0.0 %gateway2% metric 25 if %interface2%
goto ext
)

if "#%interface4%" == "#" (
echo 有三块网卡上网,开始负载均衡...
set n1=1 4 7 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100 103 106 109 112 115 118 121 124 130 133 136 139 142 145 148 151 154 157 160 163 166 175 178 181 184 187 190 193 196 199 202 205 208 211 214 217 220 223
set n2=2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 65 68 71 74 77 80 83 86 89 92 95 98 101 104 107 110 113 116 119 122 125 128 131 134 137 140 143 146 149 152 155 158 161 164 167 170 173 176 179 182 185 188 191 194 197 200 203 206 209 212 215 218 221
set n3=3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93 96 99 102 105 108 111 114 117 120 123 126 129 132 135 138 141 144 147 150 153 156 159 162 165 168 171 174 177 180 183 186 189 195 198 201 204 207 210 213 216 219 222
route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 %gateway1% metric 30 if %interface1%
for %%i in (!n1!) do route add %%i.0.0.0 mask 255.0.0.0 %gateway1% metric 25 if %interface1%
for %%i in (!n2!) do route add %%i.0.0.0 mask 255.0.0.0 %gateway2% metric 25 if %interface2%
for %%i in (!n3!) do route add %%i.0.0.0 mask 255.0.0.0 %gateway3% metric 25 if %interface3%
goto ext
)

if "#%interface5%" == "#" (
echo 有四块网卡上网,开始负载均衡...
set n1=1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77 81 85 89 93 97 101 105 109 113 117 121 125 129 133 137 141 145 149 153 157 161 165 173 177 181 185 189 193 197 201 205 209 213 217 221
set n2=2 6 14 18 22 26 30 34 38 42 46 50 54 58 62 66 70 74 78 82 86 90 94 98 102 106 110 114 118 122 126 130 134 138 142 146 150 154 158 162 166 170 174 178 182 186 190 194 198 202 206 210 214 218 222
set n3=3 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63 67 71 75 79 83 87 91 95 99 103 107 111 115 119 123 131 135 139 143 147 151 155 159 163 167 171 175 179 183 187 191 195 199 203 207 211 215 219 223
set n4=4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156 160 164 168 176 180 184 188 196 200 204 208 212 216 220
route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 %gateway1% metric 30 if %interface1%
for %%i in (!n1!) do route add %%i.0.0.0 mask 255.0.0.0 %gateway1% metric 25 if %interface1%
for %%i in (!n2!) do route add %%i.0.0.0 mask 255.0.0.0 %gateway2% metric 25 if %interface2%
for %%i in (!n3!) do route add %%i.0.0.0 mask 255.0.0.0 %gateway3% metric 25 if %interface3%
for %%i in (!n4!) do route add %%i.0.0.0 mask 255.0.0.0 %gateway4% metric 25 if %interface4%
goto ext
)

if not "#%interface5%" == "#" (
echo 有五块网卡上网,开始负载均衡...
set n1=1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116 121 126 131 136 141 146 151 156 161 166 171 176 181 186 191 196 201 206 211 216 221
set n2=2 7 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97 102 107 112 117 122 132 137 142 147 152 157 162 167 177 182 187 197 202 207 212 217 222
set n3=3 8 13 18 23 28 33 38 43 48 53 58 63 68 73 78 83 88 93 98 103 108 113 118 123 128 133 138 143 148 153 158 163 168 173 178 183 188 193 198 203 208 213 218 223
set n4=4 9 14 19 24 29 34 39 44 49 54 59 64 69 74 79 84 89 94 99 104 109 114 119 124 129 134 139 144 149 154 159 164 174 179 184 189 194 199 204 209 214 219
set n5=5 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145 150 155 160 165 170 175 180 185 190 195 200 205 210 215 220
route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 %gateway1% metric 30 if %interface1%
for %%i in (!n1!) do route add %%i.0.0.0 mask 255.0.0.0 %gateway1% metric 25 if %interface1%
for %%i in (!n2!) do route add %%i.0.0.0 mask 255.0.0.0 %gateway2% metric 25 if %interface2%
for %%i in (!n3!) do route add %%i.0.0.0 mask 255.0.0.0 %gateway3% metric 25 if %interface3%
for %%i in (!n4!) do route add %%i.0.0.0 mask 255.0.0.0 %gateway4% metric 25 if %interface4%
for %%i in (!n5!) do route add %%i.0.0.0 mask 255.0.0.0 %gateway5% metric 25 if %interface5%
goto ext
)

if "#%interface6%" == "#" (
echo 未作开发,如有需要,请自行扩展...
rem 扩展第六块网卡支持,仅需要参照前面改写此if命令块语句即可,以下同。
goto ext
)

if %o% geq 7 echo echo 未作开发,如有需要,请自行扩展...

:ext
echo.
echo 负载均衡完毕!
echo.
pause