登陆 / 注册 搜索

USERCENTER

站内搜索引擎

查看:6947| 回复: 5
打印 上一主题 下一主题

一个路由器的自述

[复制链接]
跳转到指定楼层
楼主
仗剑天涯吾是土豪 发表于 2017-7-5 23:45:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
        我就是网卡TP-Link7954经常和大家提起的网关路由器,我在网络中的位置是这样的:
* P+ z8 S1 |( E( n1 k
! @- m; N- R! [7 L6 `
 1-路由器.jpg 一个路由器的自述
5 s" m# J/ }& J0 s: T% w
1 S! x2 q( G& w( k
        为啥叫网关呢?因为大家想上网,一定得经过我这一关#j330:
1 Q# L  z: ^6 O" N1 w+ P1 P# F( ?5 y+ R
        这不是开玩笑,确实是这样,所有的对局域网之外的访问那非得经过我不可。其实我直接和ISP(就是联通!)的网络相连,我从联通那里搞了一个外网的地址:61.52.247.112。
) a& ?  ~+ M7 Q# @
4 ?! D, |  f/ y' B# U: m        可是只有这么一个地址,我们局域网内这么多电脑,如果轮流着让每个电脑去用,那大家可就抱怨死了。
: ]' U8 H; }( o; W( N/ c% g) y! _/ Y: m
        于是我巧妙的构思了一个网络世界,成功的欺骗了TP-Link7954这些网卡们。- a& {7 b5 a: d2 |
        8 X! T6 C8 y4 ^' a' Y9 S
NAT (网 络 地 址 转 换)
( S# X7 d( X' i& y! Y
        ( P# Q( N* [) ~7 i$ y
        还记得上次TP-Link7954向我要地址的事儿吗?因为我不仅仅是个路由器,还是一个DHCP服务器,掌握着这个局域网的IP生杀大权。
3 @& d5 c8 p) B. I1 Q# \- }: r
" V6 f" b# a2 L2 n: g+ @        我给TP-Link7954分配的IP是192.168.1.2,但是他拿这个地址是无法直接上网的,因为这是属于我管辖的内网地址,别的网站像 www.guhei.net 根本都不知道!5 b% c5 N% M+ z. Z6 z
6 e/ o( }9 O+ l5 n: w4 B8 @
        即使知道了也没用,因为在这个世界上可能有无数的路由器都会分配192.168.xxx.xxx这样的地址,你到底要找哪一个?
1 _! e. t  ~8 Z3 Y% {# D* _# j9 I. x
        所以TP-Link7954想上网必须得通过我,我需要施展一点点小魔法,比如说它想访问百度,通过交换机给我发来这么一个数据帧:
6 p; B2 I3 u: h# f$ u+ J& h  s' A( X1 u8 S' ]1 c3 c; ]
 2-路由器.png 一个路由器的自述

0 U% R* s* E' C# v
; ^$ G* c% l9 _7 ?, Y2 v* c        我把数据链路层的外衣去掉,发现IP数据包中的目标地址是115.239.211.112,我就知道这是要向外网发出请求了。于是我就把IP数据包中的源地址192.168.1.2替换成我从联通那里搞到的外网地址61.52.247.112。
: V' {6 M# R2 t  Y! E0 H7 M
3 T- ?# s" y' J6 V/ ]% ]/ Z  U        这还不够,我会创建一个新的端口号2001,把TCP数据包中的源端口也替换掉,数据包就变成了这个样子:& }7 q+ Q' H1 f" @0 e

6 l; p# \/ P' j% r& s. U3 x
 3-路由器.png 一个路由器的自述
/ l8 U) c5 @  G. P
! u1 V; [' I! a& |/ N3 V& |* @
        不知道你看出来其中的奥妙没有,我把源地址和源端口都替换了,其实我的目的就是让外部的网络认为这是我(路由器)发出的,他们根本不知道什么TP-Link7954这个网卡!; m2 S& n/ D( K4 _

3 E* Q* Y' d1 k9 A; k        然后我需要查一下我的路由表,确定到底转发到哪个输出端口去,再给这个IP数据报穿上数据链路层的外衣,把数据包发给了联通的网络,剩下的事我就不管了。
4 u* X+ B/ w3 H. Q' `
% x% p6 o$ t$ i! ?$ M
 4-路由器.png 一个路由器的自述

& h1 I$ a+ E  z; s: F( ~1 \
: C% @+ u* l; A! w9 F! t        注意看以太网帧的MAC地址,源地址已经是我了,而不是TP-Link7954了,因为这是我和联通网络之间的数据链路。这个替换源地址和源端口的小把戏就叫做网络地址转换,人类简称为NAT。
5 Y5 Z8 \; c' B, Q% E, v2 w) k, y  D) m; Z& n) u1 `
        当然不只是TP-Link7954通过我上网,还有很多别的电脑呢,我得把我的小把戏记下来,形成这么一张表:
, g, U9 C3 q6 y
9 H! M% T; {! O( ?
 5-路由器.png 一个路由器的自述

% h6 x* B! }& ?: h; P
) k* P( q$ E# i! ?        过了不久,baidu网站的回复就会通过别的路由器转到我这里,正如你所想的,我需要反过来处理一遍:1 P! i8 R9 t6 r* y
       
  Z3 m2 t; P# B  P1 R        首先去掉数据链路层的外衣,发现TCP和IP数据报中包含这样的信息:7 w1 j% x8 ^, s; z( Q' I
       
7 E4 {$ C4 |# l; ~$ F. j        目的地IP:61.52.247.112,端口2001
! R% S% I, U  F2 ^" G% W. i# R+ M0 m  P3 M$ V/ G: b/ ?
        这时候我就去查表,找到了192.168.1.2:3345,我就明白这是给TP-Link7954的信了。
5 c- Q$ `0 L  C0 v+ ]1 T. I! Z" J: i, _( C
        那就再次把数据报中的IP地址和端口号改了吧,让TP-Link7954认为这个数据包就是我给他的。就这样,我成功的用区区一个外网的IP就支持了局域网内多个电脑的上网需求,并且他们根本就不知道是怎么回事!# v! q  ~* g  F5 A' |" Q; M

4 i& w, b+ J- F. v( Z: a/ U, w: D
NAT 穿 越

1 i! {( P- U" g$ h8 z; o+ I! g+ P$ @( \2 h' z1 {2 H4 K3 S
        欺骗终究是不能长久的,我的麻烦很快就来了。TP-Link7954所在的机器为了下载一个大电影,安装了一个P2P软件:电驴。" X8 c  S$ ^4 {$ V7 v! L' O
; D* n; V5 i) l$ X0 G
        所谓的P2P就是Peer to Peer,即网络中的机器是对等的。% U$ g7 T& _1 g6 B7 Y7 ^$ [$ z

8 i6 o+ ^9 S6 f1 v% U2 d        所有使用电驴的机器不仅仅是一个发起请求下载数据的客户端,他们同时也是一个能够接受请求,向外发送数据的服务器。- g+ f8 c$ _. X# T! l1 l, D5 K3 ]

- x3 e) O, ]- o7 p        这样一来,当下载大文件的时候,你就可以从很多安装了电驴的机器上分块下载,而不是仅仅从一个服务器上下载,速度快了很多。
* o9 B: A+ T9 p3 f$ Z' z5 g" w! A
8 P& m0 \! {8 b# Z$ J# `% w        人人为我,我为人人啊。#j344:2 \( ?; m3 s8 c
0 N7 ~& i7 T% f5 \7 Y% J1 |* P
        可是TP-Link7954很快就发现,当它试图做服务器的时候,其他电驴根本就连不上它,为什么?
* _. S( e: H- ^8 K" p* W; c2 p( F3 {/ }' K% _
        因为IP地址是我分配的啊,是个内网地址192.168.1.2,外网的人根本就不知道,怎么连?TP-Link7954给我发了一封措辞严厉的信件,质问我为什么他没法作为一个服务器接受外边的连接,这强烈的阻碍了他们下载各种电影的需求。$ d1 g( W; G  w# T! N

1 C+ H' D$ P( Y: s! T+ s" x        我估摸着是瞒不住了,只好把所有的网卡都召集起来,开个会大家商量一下。
# T) V- w0 I, n" J# J$ U" U2 n
7 c. k3 B1 E$ W) r  \3 O! Q$ U        我解释说:“现在IP地址很稀缺,我用这种NAT的方法也是不得已而为之,要不然大家怎么上网啊,你们之前不是过的也挺好吗?我听说电驴会占用很大的流量,我们公司很快就会禁止的。”
8 [9 r+ D3 m: \5 @7 ~: p" @0 u+ k  N
        D-Link3925说:"公司的政策根本不是你应该考虑的事,你考虑的是怎么才能让外网的电驴连上我们!"
$ T2 r2 M/ b( l& k9 S7 A+ t# x# `  D- M* `% B! Q
        可是我实在是没有办法,就这一个外网的IP地址啊。
' G! x7 P- S5 L7 q; E2 G4 Q4 G8 \( e. l
        TP-Link7954倒是很聪明, 他立刻就意识到了问题所在,想出了解决办法:“这样吧,路由器,你不是擅长搞玩小把戏吗,可以继续玩下去,但是得允许我们这些网卡参与进来玩,比如说我(ip地址192.168.1.2)会主动的要求你建立一个NAT映射(192.168.1.2:4096)<->(61.52.247.112:3001)。
' c' K5 @- a* ^& v  k: K9 s: B8 s
        “你还可以保存在你的NAT表中,然后我就会对外通告了,我是一个电驴服务器,谁要是想连接我的话,请到这里来:61.52.247.112:3001,当外网的连接来的时候,你必须把连接请求转发到我这里来”。" v7 U6 C' Z$ D3 F7 w/ j
4 f0 K6 b# l+ ?( O
        大家一致认为这个方法很简单,很实用,就这么决定了。
) r3 L  W" A. Q/ u; I) i7 j9 B% M3 k* t, e* R2 j) e" O$ e8 D0 ]
        这其实就是UPnP,你打开你的无线路由器,就能看到:* _% m1 P& L( i3 x" k" M/ E

& ?! V% B! F2 |0 ^( F* e2 B) j
 QQ截图20170705233334.jpg 一个路由器的自述

" d: D! |/ o- t$ c4 a$ P9 ]2 g7 h& Z! ?$ g# `: L! I
        事情就这么解决了,生活又恢复了平静,当然,我作为一个路由器,这些NAT,UPnP都是我的附加功能,我最重要的事情还是建立路由表,做路由选择,转发IP数据包,下次再说吧。
  \2 r$ Q6 r. c( o
上一篇:一块网卡的自述摘要:我知道我一生的使命就是传递信件,但有一个前提:我 ...
下一篇:CPU的自述摘要:上帝把我制造出来,给我了一个很小的脑容量,为数不 ...

评分

参与人数 1成长值 +1 金币 +1 收起 理由
清风徐来 + 1 + 1 我很赞同!

查看全部评分

回复

使用道具 举报

逆天技「初入古黑」 发表于 2017-7-6 11:54:22 | 只看该作者
看不懂啊呜呜
板凳
我的世界是安定「初入古黑」 发表于 2017-7-7 23:09:11 来自手机 | 只看该作者
还有更多的分享吗?
地板
清风霁月出类拔萃 发表于 2017-10-3 23:15:47 来自手机 | 只看该作者
LZ是天才,坚定完毕
5#
安心的味道「锋芒初露」 发表于 2018-1-21 12:23:16 来自手机 | 只看该作者
无论是不是沙发都得回复下
6#
映画出类拔萃 发表于 2018-1-21 22:48:59 | 只看该作者
解释就系掩饰,掩饰等于无出色,无出色不如回家休息!!!
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

关于我们|小黑屋|手机版|Archiver|古黑论

GMT+8, 2019-6-25 12:19 , Processed in 0.130326 second(s), 52 queries , Redis On.

© 2015-2019 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表