|
作者:匙 转自黑基bbs原创精华版
: ?9 [) d+ a7 l1 o$ y版权归黑客基地所有,转载请注明出处 ! u' u- Q' M6 ?/ C* W( v p9 R
1 B; f% _" Q. V+ X
看到标题,$ o5 D# i; N8 W) Y5 T2 m& h$ Y; r
你不会认为这里说的是路由模拟软件吧?; o4 ^, A" l* ^- [2 j
不啊,说的就是一个台普通终端。
5 A0 y0 R9 _% y% j' O而且是单网卡的机器。
' w+ f- N! e/ Y1 D* k; q也许你会说单网卡的机器做路有器不奇怪,2 k7 U" s# U! i
比如类似cisco单臂路由…… 4 [8 P: b6 r7 {
但是这里说的就是一台再普通不过的机器,
' a' s7 }; ?0 S2 ^, y- M: v! g甚至是刚刚安装好的win95。
3 H+ \' e1 h4 H) n! R……
7 ^) M: b( Y" u. I' D6 j9 o其实是讲ip协议在单机中的基本运行,1 U) e0 `3 ~. t" q% c: l
本文比较片面,+ E1 Z- y d- [% v
因为对ip协议在终端的运行机理没有深刻的理解。
. G2 \9 }& v) I3 Yip协议在电脑上安装后,/ r# y( X3 U( x
就变成了你上网的基石,2 V, n1 H6 s3 Y5 ]+ E3 @
每一步连接,
1 ~1 C# h, L* g" ^ u$ B每一步探索,$ S2 K# {( C* P
都由ip协议群在幕后安成。 ) k* }/ Z2 f* P; I7 o" |
ip协议的安装是要和网络接口(NETWORK INTERFACE)绑定的,
6 p" ]( {4 O6 M O* p: I也就是说要和网络适配器搭配着安装。
9 m: }/ v1 [2 l- o& ?2 s0 H比如:MODEM 网卡、 虚拟的网络适配器、 VPN网络适配器、 拨号网络适配器、 等。 6 A7 s7 _; G0 M! L0 R$ N/ s
IP协议安装后,
( ^, }$ Z J5 m7 D9 B会为网络连接创建堆栈,/ ^0 t) ?+ F& ~- L* P( a3 {
为自己创建一个127.0.0.x的本地回路,: {/ K: c7 ?+ F: `- G0 q7 D: Q1 W
自动获取或者等待用户手工设定一个IP地址,
% y$ S( P% Q8 W9 k1 G向网络公布自己并探索相邻的协议载体,
8 z$ B. k) w" F) U- f/ T* p侦听来自网络的数据包,
$ _/ ^/ S3 w( j/ l按照IP属性设定的DHCP,DNS,GATEWAY等网络规则通讯。 1 l" [) Y) o& j) Q7 q
INTERNET中不同网段无法直接互访,1 Z: W \2 }7 I% g y" U
需要借助于路由器包转发功能解决,
( T& `; Z) g) Y8 v2 V1 \2 K规则的根据是一个自动或者手工编制路由信息表。 4 J' r: T& P/ Y
其实在单机内部也是存在包转发过程的,
: Z" b1 Y( Z. T# cROUTE命令可以为我们展示一张路由信息表:
! L* z' n* r2 H2 Y; |" q; dC:\WINNT\system32>ROUTE PRINT' M7 L$ {( g3 {: |$ a' _ e9 @" N
===========================================================================7 Z. @% l+ W/ |) Z9 } S
Interface List' ?+ c5 p! M2 d* y% E* k
0x1 ........................... MS TCP Loopback interface
4 k( S+ n% y9 e# A/ Z0 s; O" M0x4000003 ...00 XX XX a8 XX c7 ...... Intel(R) PRO Adapter
3 g' j, o" C2 h===========================================================================
3 x2 D8 K: A8 j) f===========================================================================: I+ B" J* v1 Y2 m/ @
Active Routes:; j8 i4 V* } g3 ?# _7 t* q
Network Destination Netmask Gateway Interface Metric
; W1 H' e" a4 D' T2 L 0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.111 1
! ^3 _! b# H) N {3 D 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
3 M, b2 j0 a8 U- B' @" u$ V% ] 192.168.0.0 255.255.255.0 192.168.0.111 192.168.0.111 1" Y2 r1 T ?; P& N! {: s1 i
192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1
' g' o2 k$ n l3 v0 O 192.168.0.255 255.255.255.255 192.168.0.111 192.168.0.111 11 F$ X4 k5 J" }( E L" J+ J: @
224.0.0.0 224.0.0.0 192.168.0.111 192.168.0.111 1& k0 g% A9 B! v Q
255.255.255.255 255.255.255.255 192.168.0.111 192.168.0.111 1
' L! z( X# [- N4 g3 IDefault Gateway: 192.168.0.14 b4 q3 b ?3 I* n" Y4 _
===========================================================================% s7 S& b) G8 R* o& F0 u- D. J
Persistent Routes:
$ Y7 E0 \# a. J$ H9 m) P# b3 q- p None " o# o" q% J' b8 L; M2 y6 Q
这张表告诉我们单机内部IP协议是怎么样维护着不同网络段数据包的转发,
: j+ y6 E! f( @0 Y4 |! x8 E也许你会认为电脑pc应该只存在于一个网络段,
. z# Q) I3 b* f0 w' _4 A宏观的看是这样的,: s4 ]$ M" r* e' A* z
这里说的却是从协议内部微观角度查看。 o1 C5 P7 `! Z) c
在内环境中,
+ c6 ?4 q2 Q$ A X& H1 s电脑工作相关的网段是:
$ F) G$ r& r# I1: 255.255.255.255 255.255.255.255 192.168.0.111 192.168.0.111 1% c- b! R# u9 ^ g6 _
面向网络接口的广播,不论你是什么网络段,LAN还是INTERNET,都存在这个网络段。他是这台电脑与身边IP
3 `$ p* [+ M7 Z+ [, p环境通讯的基础。 ' z8 L6 r& Q" Y3 R4 y
2: 224.0.0.0 224.0.0.0 192.168.0.111 192.168.0.111 1( f# X7 G4 |" ], V
多播地址(multicast)同样是探知网络。多播地址利用不同的多播地址所代表的协议或者设备 有针对性的对网
+ I- r9 F! f0 N* U络环境进行发现。
& ~* B4 d: n: t; \) [4 _) ?4 Q" A# ^3: 192.168.0.255 255.255.255.255 192.168.0.111 192.168.0.111 1
7 G& @7 u( u1 ~本计算机所在网络的广播地址。他的存在是与同一网段的机器进行通讯的基础。
& J# g5 ^: u# }' k4: 192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1 , d. O3 [* y1 C$ f7 d* @: _# y6 @- C$ j
本计算机自身IP访问自身IP的环路。这个路由定义了如果这台计算机访问自己的IP不要经过别的网关,直接通
( Z B2 z% r7 j* o过127.0.0.1本地回路IP访问自己。相当于自己是自己的网关。 # V+ a7 Y& h& _
5: 192.168.0.0 255.255.255.0 192.168.0.111 192.168.0.111 1
5 @& d: }7 Y- I% }9 |本计算机所在的网络地址,代表了一个网段。 ) w9 K2 _& P! s3 K. U- A* }
6: 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
- P+ N) C1 ]8 X3 G2 vIP协议规定的本地回路的固定地址。只要安装了IP协议,就可以用127.X.X.X访问自己。为了数值的统一,都 . t' |( c2 s8 @) y5 E- [$ ~- C
用127.0.0.1代表自己。 ) }) O4 C9 v7 Y/ O. I: ~5 Q0 |. w
7: 0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.111 1; K; g9 D9 e' |9 u" O% X
这个和一般路由器配置的默认路由是一个含义。代表了面向应用的,所有目标不是多播,广播,本地回路,本
3 v2 \) |3 P9 {$ q地IP的数据包,全部通过指定的网关进行转发访问。 % \* S( z b9 R" e3 \- \6 H* _
0 Y5 G6 ?( m/ ?4 q4 k$ U- s* u9 m
路由表在路由器中的配置有很大学问,( h5 f; O/ L2 W; x2 Z
很重要的就是表项目的顺序。- @9 b6 V; |; m9 d- h
一个顺序合理的路由表代表了性能、安全、高效。 1 N' j7 Z+ {! h* s! s0 [
本地计算机中的静态路由表,$ A) U$ O; ^ W! V" `4 f$ }
如上面所述的表,4 m2 K. C( u1 Y9 M5 ~5 L; t' e3 [
也同样采用了选择顺序,
: f$ H. E$ C: ?' A. h从下到上。
' N% z' {5 N. u! T3 g7 Z- D本地计算机的环路路由是本地静态路由表的特色,
$ ^1 A- V; S/ F: m7 q9 H9 y 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
, `4 x& |9 \' m- m) @0 j6 r/ m192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1- c. {! z. s, h' Z* C* O* `9 X
这个条路由信息可以:- J" t: A0 @8 ~$ x/ L& l
1: 有帮助的。4 w1 Y& Z+ _0 N: |* W. X* T
可以帮助没有真实网络环境的人,测试本地网络应用程序。用得最多的是本机构造IIS、网络程序编制等。: k8 m. Z8 i: ?
2: 安全的。 " |7 q$ ^5 N) z) w
比如计算机在启动过程中运行的很多虚拟子程序,服务程序,防火墙,系统进程等,都要访问甚至和连接本机
% i- ~6 h% e* O) s其它程序端口。有了本地回路这种路由,就不用通过网关,很大程度避免了系统信息外漏。0 @* o1 d) I" P
3: 高效的。# @3 w J+ y) w" D: J! @8 ^9 ]8 I
减少网络中的流量,并且直接采用本地环路,减少网络质量差的错误等待时间。
8 F3 t" H% l5 ^3 d用户完全可以自己增加和修改路由表,
- K; ?5 n* Y# B! ~6 F1 a; Y7 x, q比如一台电脑和其它电脑连接成为网络。1 |; [$ E* _: F( m- w
但是他们的网络ip不在同一个网络段中,3 S1 Q3 U& M( Q. s1 l {" P
可以通过修改静态路由表,' v w" O0 c) e: S- A3 e
达到网络相通。
6 g) m/ A; e2 s" \, T这里要说的是,, [& W; f: i6 w) [
有网友问怎么修改静态路由表和不同网段通讯,: I! j1 u4 ^3 D; Q
网上的我见过最多的回答是:
& I5 n2 D2 i/ y“用 route add xxx.xxx.xxx.xxx mask 255.xxx.xxx.xxx xxx.xxx.xxx.xxx metric x 增加一条静态路由就可
# R& Z( P" C. {5 |/ f7 G6 ]以了”
7 ?* z3 @) W9 R, p但是实际上要增加两条。
; O. s2 Q# s$ c: J3 q' Y网络协议服务的对象就是多方的,
# `6 g) V; K! _6 ]2 t( w只有一台机器知道一条规则是不够的啊,
7 q, k3 ?: h- n- M8 e所以两台或更多机器上面同时增加到对方的静态路由信息,
' h: C( `7 b& ?双方都知道怎么连接,
7 q: A6 x5 P: R1 x才能建立连接。 - B! q) b8 b" B1 X2 W" C9 {
本文由于我对tcp/ip的理解还很浅薄,6 O; J5 f4 @( e, y, t- |1 ?5 ~6 ^1 o
有不对的地方,
q9 t- N' C9 c' _8 o还请高手赐教。
: [) J, z* [, I8 Q7 @附:
( d* P% Z4 y! u/ Mroute命令" h& n/ e: L2 a$ N. q! E0 D ?7 J H
ROUTE [-f] [-p] [command [destination] [MASK netmask] [gateway] [METRIC metric] [IF interface] |