羁绊是那不可切断的深切联系。即使分离,心与心也紧紧的连在一起。 收藏本站
登陆 / 注册 搜索

阅读: 8.2K   回复: 5

一个路由器的自述

仗剑天涯论坛大牛 2017-7-5 23:45 |显示全部楼层

今生相逢便是缘分,何苦去怨恨,何苦去仇视。

主题破百
        我就是网卡TP-Link7954经常和大家提起的网关路由器,我在网络中的位置是这样的:
7 l' l* f4 i- b1 {  r% ~+ w7 o
2 i  M7 U$ }3 Z$ P% W$ z
一个路由器的自述 1-路由器.jpg
2 w5 r$ _" A5 m+ ~6 `

; }$ q: D0 l8 L! L: F+ g        为啥叫网关呢?因为大家想上网,一定得经过我这一关#j330:
! i! u, L) k* w
! J6 X: P7 p; y- F        这不是开玩笑,确实是这样,所有的对局域网之外的访问那非得经过我不可。其实我直接和ISP(就是联通!)的网络相连,我从联通那里搞了一个外网的地址:61.52.247.112。
; R# ]/ c! E" C; y/ o
7 D/ ]2 X9 u) E# Q* {9 l, G        可是只有这么一个地址,我们局域网内这么多电脑,如果轮流着让每个电脑去用,那大家可就抱怨死了。4 W3 F! S4 Y) m/ Y' A0 D8 y, [( ?

$ T4 A7 E  t  O2 V3 t" N        于是我巧妙的构思了一个网络世界,成功的欺骗了TP-Link7954这些网卡们。4 V! z" r; X4 ~5 P' k( e
       
$ B: r% B9 {' w4 z. l
NAT (网 络 地 址 转 换)

, @* [- c# R  g% y: J       
4 i" ?  H+ V& V2 }, @' ?9 F        还记得上次TP-Link7954向我要地址的事儿吗?因为我不仅仅是个路由器,还是一个DHCP服务器,掌握着这个局域网的IP生杀大权。
: t. l9 n( L- B6 x8 S0 |
/ n3 S( g$ T1 h) D' C3 t        我给TP-Link7954分配的IP是192.168.1.2,但是他拿这个地址是无法直接上网的,因为这是属于我管辖的内网地址,别的网站像 www.guhei.net 根本都不知道!
7 |, T' t5 G8 x! W! D9 }
$ c7 i+ P( @8 A, {        即使知道了也没用,因为在这个世界上可能有无数的路由器都会分配192.168.xxx.xxx这样的地址,你到底要找哪一个?/ }! o) H; N2 i  r* I

4 x- C3 s! J9 v9 u% n        所以TP-Link7954想上网必须得通过我,我需要施展一点点小魔法,比如说它想访问百度,通过交换机给我发来这么一个数据帧:) `) s7 ~+ Z4 ]  ^5 h
9 `9 i1 v( ~9 O, t& w' K
一个路由器的自述 2-路由器.png

, q$ ^/ v0 Q+ x& M
" V3 L. x* [& W/ ]9 `        我把数据链路层的外衣去掉,发现IP数据包中的目标地址是115.239.211.112,我就知道这是要向外网发出请求了。于是我就把IP数据包中的源地址192.168.1.2替换成我从联通那里搞到的外网地址61.52.247.112。
, _: b) n2 V, T- W! E
( J  O+ ?' B" }) _* V( ^        这还不够,我会创建一个新的端口号2001,把TCP数据包中的源端口也替换掉,数据包就变成了这个样子:
; d/ _+ k! g: q. B9 }* u: G& P. |% x8 v
一个路由器的自述 3-路由器.png

1 C' o  I9 Q1 K1 g+ U% B; P
1 ~/ H6 |8 H" p' l3 }& m        不知道你看出来其中的奥妙没有,我把源地址和源端口都替换了,其实我的目的就是让外部的网络认为这是我(路由器)发出的,他们根本不知道什么TP-Link7954这个网卡!
- d* ~/ a' p, o6 x6 d3 E7 L: b3 v# X+ X- [
        然后我需要查一下我的路由表,确定到底转发到哪个输出端口去,再给这个IP数据报穿上数据链路层的外衣,把数据包发给了联通的网络,剩下的事我就不管了。
2 p" u  G5 H1 p3 g  G2 Y0 L; |; ]$ _# D$ t8 g( B, M
一个路由器的自述 4-路由器.png
" |$ k) _. X. |$ N

$ r$ T/ X) @/ x" r0 z4 U; M        注意看以太网帧的MAC地址,源地址已经是我了,而不是TP-Link7954了,因为这是我和联通网络之间的数据链路。这个替换源地址和源端口的小把戏就叫做网络地址转换,人类简称为NAT。
; f" w* L! a/ C6 v6 D: n0 r( L* D2 w: a/ a4 L8 T6 b! p
        当然不只是TP-Link7954通过我上网,还有很多别的电脑呢,我得把我的小把戏记下来,形成这么一张表:
! B5 J3 h9 g, |5 a; i  g& I( d. F! h- y. [0 K
一个路由器的自述 5-路由器.png
* ~; I. w% G3 G$ J3 S
5 {' v+ y; S/ p: p$ l- ^
        过了不久,baidu网站的回复就会通过别的路由器转到我这里,正如你所想的,我需要反过来处理一遍:, A! p& b2 o6 A! Q$ w0 l
        # g, Z; Y) B; U$ E
        首先去掉数据链路层的外衣,发现TCP和IP数据报中包含这样的信息:
, M8 h7 x8 ~' ]2 g       
+ D; [" k2 ?  B* z* R% F        目的地IP:61.52.247.112,端口20018 g7 S7 ]) w) z" E$ ]

" y- m3 s( h( T        这时候我就去查表,找到了192.168.1.2:3345,我就明白这是给TP-Link7954的信了。- }; `; n4 J; {1 E( V0 d& _

, A0 s) t' o4 q        那就再次把数据报中的IP地址和端口号改了吧,让TP-Link7954认为这个数据包就是我给他的。就这样,我成功的用区区一个外网的IP就支持了局域网内多个电脑的上网需求,并且他们根本就不知道是怎么回事!8 K$ {) A( U, g1 ]4 K
* b, J" M$ t8 r2 B
NAT 穿 越

* m* n2 Z# R$ }: ^% a7 W6 G- l* k7 e
        欺骗终究是不能长久的,我的麻烦很快就来了。TP-Link7954所在的机器为了下载一个大电影,安装了一个P2P软件:电驴。
. q* [) w2 V5 ^/ u0 h
( d% U1 p$ g# r        所谓的P2P就是Peer to Peer,即网络中的机器是对等的。9 o3 r% V1 r9 m) X2 ]0 b8 z
& v- d9 k/ b4 \$ j# T' ]9 ]3 G
        所有使用电驴的机器不仅仅是一个发起请求下载数据的客户端,他们同时也是一个能够接受请求,向外发送数据的服务器。  n& b: S! z+ U5 _# R) L; |
( X2 r+ o& c' d' |
        这样一来,当下载大文件的时候,你就可以从很多安装了电驴的机器上分块下载,而不是仅仅从一个服务器上下载,速度快了很多。
: y- h5 W# s9 C1 z2 J2 E5 {3 V/ a- `& C! H) x
        人人为我,我为人人啊。#j344:' t' M7 F% {6 J$ X1 T

/ I  H0 V0 j" n, _        可是TP-Link7954很快就发现,当它试图做服务器的时候,其他电驴根本就连不上它,为什么?% k2 @7 k7 g$ z* g0 [1 \

0 |; l& j5 ?- {& c; a0 @3 i        因为IP地址是我分配的啊,是个内网地址192.168.1.2,外网的人根本就不知道,怎么连?TP-Link7954给我发了一封措辞严厉的信件,质问我为什么他没法作为一个服务器接受外边的连接,这强烈的阻碍了他们下载各种电影的需求。& e# M4 c9 Y  B$ o) j1 j8 y! \

+ G9 S1 P* }  d$ {, t9 I( h6 K        我估摸着是瞒不住了,只好把所有的网卡都召集起来,开个会大家商量一下。
% \* _) ?8 A1 E& @4 l! c$ F5 h# u
        我解释说:“现在IP地址很稀缺,我用这种NAT的方法也是不得已而为之,要不然大家怎么上网啊,你们之前不是过的也挺好吗?我听说电驴会占用很大的流量,我们公司很快就会禁止的。”
* ?0 F) }5 c0 _( e. V5 \: u
4 H: {$ V! Q' q: f! U- U2 B        D-Link3925说:"公司的政策根本不是你应该考虑的事,你考虑的是怎么才能让外网的电驴连上我们!"
. U  N+ C  Y2 A! n
" M: A1 `. u7 A        可是我实在是没有办法,就这一个外网的IP地址啊。6 Q- I. A7 X% ?1 ^- X  H
/ Q2 M, A7 `8 K& |7 J" L
        TP-Link7954倒是很聪明, 他立刻就意识到了问题所在,想出了解决办法:“这样吧,路由器,你不是擅长搞玩小把戏吗,可以继续玩下去,但是得允许我们这些网卡参与进来玩,比如说我(ip地址192.168.1.2)会主动的要求你建立一个NAT映射(192.168.1.2:4096)<->(61.52.247.112:3001)。! A$ n; x% B. z, J

* {" f/ w6 f  d3 ~1 N6 w        “你还可以保存在你的NAT表中,然后我就会对外通告了,我是一个电驴服务器,谁要是想连接我的话,请到这里来:61.52.247.112:3001,当外网的连接来的时候,你必须把连接请求转发到我这里来”。
# U, @5 m+ ?& S% _/ t! Q6 R! ^; [; ]  Q/ w+ w% |
        大家一致认为这个方法很简单,很实用,就这么决定了。
  p+ ]8 t6 Z; _8 D5 ^1 a( |2 M( @, S& C5 l2 d8 F
        这其实就是UPnP,你打开你的无线路由器,就能看到:% I1 g4 r+ I0 z# w
6 c7 o) z( p! h+ Q1 W6 h) P3 o( q
一个路由器的自述 QQ截图20170705233334.jpg

( i' i1 t! K& ?  b  k  b/ l: p1 H7 n" Y5 h2 o: V
        事情就这么解决了,生活又恢复了平静,当然,我作为一个路由器,这些NAT,UPnP都是我的附加功能,我最重要的事情还是建立路由表,做路由选择,转发IP数据包,下次再说吧。% k0 x4 O6 Z& A! [4 V1 c1 Z  d
上一篇
下一篇

评分

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

查看全部评分


逆天技 「初入古黑」 2017-7-6 11:54 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

看不懂啊呜呜
我的世界是安定 「初入古黑」 2017-7-7 23:09 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

还有更多的分享吗?来自: iPhone客户端
清风霁月 「出类拔萃」 2017-10-3 23:15 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

LZ是天才,坚定完毕
安心的味道 「锋芒初露」 2018-1-21 12:23 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

无论是不是沙发都得回复下
映画 「出类拔萃」 2018-1-21 22:48 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

解释就系掩饰,掩饰等于无出色,无出色不如回家休息!!!
您需要登录后才可以回帖 登录 | 免费注册  

本版积分规则

关于本站|大事记|小黑屋|古黑论 网站统计

GMT+8, 2021-8-1 09:53 , Processed in 0.029807 second(s), 22 queries , Redis On.

© 2015-2021 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表