因为我喜欢你,喜欢得想吃掉你啊! 收藏本站
登陆 / 注册 搜索

阅读: 7.4K   回复: 5

一个路由器的自述

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

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

主题破百
十万人都在学习的网络安全知识
        我就是网卡TP-Link7954经常和大家提起的网关路由器,我在网络中的位置是这样的:9 d6 D( T. C3 |- V, l7 s2 r* I
. u' ?/ w. S% X& `( y2 s
一个路由器的自述 1-路由器.jpg

; g( e# m) Q7 r/ w2 X7 n
5 [. x5 [, f+ Q: j. y  n$ t        为啥叫网关呢?因为大家想上网,一定得经过我这一关#j330:
! j! a" O8 p3 x6 J; C4 K" O# M  c: H# G* o2 M7 Q
        这不是开玩笑,确实是这样,所有的对局域网之外的访问那非得经过我不可。其实我直接和ISP(就是联通!)的网络相连,我从联通那里搞了一个外网的地址:61.52.247.112。
( ^$ {- p9 ^( b' v& i3 U) z1 K6 ?. G. B) Z* N* @7 U0 [
        可是只有这么一个地址,我们局域网内这么多电脑,如果轮流着让每个电脑去用,那大家可就抱怨死了。) P6 F% f1 z1 h% U& _( H$ w% X

0 K* E  V7 E0 L9 U        于是我巧妙的构思了一个网络世界,成功的欺骗了TP-Link7954这些网卡们。! \! f5 {; j8 M4 u# T% t7 |% |
        8 s! n7 J" e8 J0 |3 ^
NAT (网 络 地 址 转 换)

4 k4 X- ~- |5 i9 A0 m       
/ S( p0 N+ V8 S        还记得上次TP-Link7954向我要地址的事儿吗?因为我不仅仅是个路由器,还是一个DHCP服务器,掌握着这个局域网的IP生杀大权。
* I( U- H! ]- R& g5 [0 f1 h. {( {- a4 ?+ e, m& @
        我给TP-Link7954分配的IP是192.168.1.2,但是他拿这个地址是无法直接上网的,因为这是属于我管辖的内网地址,别的网站像 www.guhei.net 根本都不知道!0 g) G6 {& a7 Z
2 p- t: Q. c2 u) W( v
        即使知道了也没用,因为在这个世界上可能有无数的路由器都会分配192.168.xxx.xxx这样的地址,你到底要找哪一个?" t2 Q6 J9 ?: [2 o) ?

! N/ k+ k8 E1 c" [# F: \) z  V        所以TP-Link7954想上网必须得通过我,我需要施展一点点小魔法,比如说它想访问百度,通过交换机给我发来这么一个数据帧:: y# _( ~7 \* x: A. ?8 r6 h) f& r: j

  x7 \/ A; t9 ~9 I+ ]9 N
一个路由器的自述 2-路由器.png
. X4 J9 z( e5 A, T" m5 W

9 i( h2 l" X( d( e, W2 R4 W, _        我把数据链路层的外衣去掉,发现IP数据包中的目标地址是115.239.211.112,我就知道这是要向外网发出请求了。于是我就把IP数据包中的源地址192.168.1.2替换成我从联通那里搞到的外网地址61.52.247.112。7 m: ?& y8 V0 n3 o0 }& x
  c) G! u" C/ q/ `+ ^+ K
        这还不够,我会创建一个新的端口号2001,把TCP数据包中的源端口也替换掉,数据包就变成了这个样子:
/ ?4 `' i, I. F5 ~2 _9 T4 R) i
/ r1 M: e: [9 Y, T
一个路由器的自述 3-路由器.png

: ]5 @6 O2 l  {4 z; j
5 `; q! C( u& l+ i5 z        不知道你看出来其中的奥妙没有,我把源地址和源端口都替换了,其实我的目的就是让外部的网络认为这是我(路由器)发出的,他们根本不知道什么TP-Link7954这个网卡!: [/ ?- n( {% T1 N6 p
! @. K4 r- I* a
        然后我需要查一下我的路由表,确定到底转发到哪个输出端口去,再给这个IP数据报穿上数据链路层的外衣,把数据包发给了联通的网络,剩下的事我就不管了。
& k9 g' V, B5 H7 g" J* e8 n
+ k* u- J& o7 E1 n% b2 j
一个路由器的自述 4-路由器.png
" ~) w# \5 t. E
; m  P8 I! x( W7 N4 }; e% g
        注意看以太网帧的MAC地址,源地址已经是我了,而不是TP-Link7954了,因为这是我和联通网络之间的数据链路。这个替换源地址和源端口的小把戏就叫做网络地址转换,人类简称为NAT。
4 b) M" U$ N) c) f' O+ s0 L; _8 W% @/ @8 X, m( }4 t- c0 z
        当然不只是TP-Link7954通过我上网,还有很多别的电脑呢,我得把我的小把戏记下来,形成这么一张表:
& M/ h& s% _; S% N
0 k5 T# z0 M% e2 T; _9 M
一个路由器的自述 5-路由器.png

& L, g* D! G5 V9 L: W( }4 g! q4 F* b! U; z
        过了不久,baidu网站的回复就会通过别的路由器转到我这里,正如你所想的,我需要反过来处理一遍:, }/ Y0 K) \" r! q: N# N8 }( L
       
' r5 D1 w; ?! e6 {6 M        首先去掉数据链路层的外衣,发现TCP和IP数据报中包含这样的信息:1 z- l! V5 p+ [/ O
        & {$ ]" y: Q/ ]' \' l, r
        目的地IP:61.52.247.112,端口2001
) A. F" J; i$ ^& n' j; X. e, x" K( O! h% C% S
        这时候我就去查表,找到了192.168.1.2:3345,我就明白这是给TP-Link7954的信了。4 C2 S$ I7 ^. t

8 d! S5 c! @0 W        那就再次把数据报中的IP地址和端口号改了吧,让TP-Link7954认为这个数据包就是我给他的。就这样,我成功的用区区一个外网的IP就支持了局域网内多个电脑的上网需求,并且他们根本就不知道是怎么回事!0 c. p1 d' o% k9 ~1 r! ]
8 I: @5 w2 o4 e7 a# Y
NAT 穿 越

4 h5 S2 ?( O6 W* x: J: n% \0 T5 G' ^# U1 g
        欺骗终究是不能长久的,我的麻烦很快就来了。TP-Link7954所在的机器为了下载一个大电影,安装了一个P2P软件:电驴。
3 |1 N" R# A7 N- V' r0 ]' s% I3 A; I  E- }# |: A3 O, z) P/ a
        所谓的P2P就是Peer to Peer,即网络中的机器是对等的。& k0 F- o0 F4 Q) b
& N5 _9 X2 N, x# T1 B& X- K
        所有使用电驴的机器不仅仅是一个发起请求下载数据的客户端,他们同时也是一个能够接受请求,向外发送数据的服务器。
5 W. f! j/ U% s, I. s( H  o. j  V  C
        这样一来,当下载大文件的时候,你就可以从很多安装了电驴的机器上分块下载,而不是仅仅从一个服务器上下载,速度快了很多。
# \) A% W3 x  e3 ~# Z7 y6 [
; V+ p) F" N$ G2 p3 Y% p! [* Z: |        人人为我,我为人人啊。#j344:
( y0 F! V: o& [2 b1 S6 d* F3 B$ w
. c& Y$ i$ {* X* ?        可是TP-Link7954很快就发现,当它试图做服务器的时候,其他电驴根本就连不上它,为什么?
; j2 ]/ j2 p9 |" F3 |0 g1 J5 A; q0 H' H$ X  a/ f6 c, v* `: k
        因为IP地址是我分配的啊,是个内网地址192.168.1.2,外网的人根本就不知道,怎么连?TP-Link7954给我发了一封措辞严厉的信件,质问我为什么他没法作为一个服务器接受外边的连接,这强烈的阻碍了他们下载各种电影的需求。
# `6 H- G7 v3 L6 }: _6 T/ V/ z  A7 ~+ G
        我估摸着是瞒不住了,只好把所有的网卡都召集起来,开个会大家商量一下。
" {1 M# C% {- G! f6 R/ E- q3 F: f3 x
* `5 V; D4 r+ N# h1 a% z        我解释说:“现在IP地址很稀缺,我用这种NAT的方法也是不得已而为之,要不然大家怎么上网啊,你们之前不是过的也挺好吗?我听说电驴会占用很大的流量,我们公司很快就会禁止的。”1 a! d4 ^& h6 ~
% ~/ D1 r2 T5 I$ t# y) n' P- f
        D-Link3925说:"公司的政策根本不是你应该考虑的事,你考虑的是怎么才能让外网的电驴连上我们!"
* m* V6 b! r( {* _) v4 j7 b+ \( H" g2 F2 H+ O
        可是我实在是没有办法,就这一个外网的IP地址啊。& n% a8 A! t2 J1 p# C& n: W* D9 |9 b
$ l) r8 Z9 t& _& m0 V1 l, V
        TP-Link7954倒是很聪明, 他立刻就意识到了问题所在,想出了解决办法:“这样吧,路由器,你不是擅长搞玩小把戏吗,可以继续玩下去,但是得允许我们这些网卡参与进来玩,比如说我(ip地址192.168.1.2)会主动的要求你建立一个NAT映射(192.168.1.2:4096)<->(61.52.247.112:3001)。9 x6 W$ L2 A5 b; d4 I  Z- B, r
' p# b/ W0 d+ `5 X0 ]9 l: p" ~
        “你还可以保存在你的NAT表中,然后我就会对外通告了,我是一个电驴服务器,谁要是想连接我的话,请到这里来:61.52.247.112:3001,当外网的连接来的时候,你必须把连接请求转发到我这里来”。- f# K7 q' a3 `9 \; E7 K
' l! C: j5 u5 r2 [
        大家一致认为这个方法很简单,很实用,就这么决定了。
1 W4 Q! |. ~( I5 E# a6 Q7 z; m) N( T, z/ y1 K9 x+ C
        这其实就是UPnP,你打开你的无线路由器,就能看到:
4 e" \5 u! L3 j: {. C+ T: }+ f) Y, o2 U( J+ k6 R8 L
一个路由器的自述 QQ截图20170705233334.jpg

: w( U% K- u5 X4 X/ _* \7 M2 y3 f! i! g8 v
        事情就这么解决了,生活又恢复了平静,当然,我作为一个路由器,这些NAT,UPnP都是我的附加功能,我最重要的事情还是建立路由表,做路由选择,转发IP数据包,下次再说吧。
# n4 I; e* U3 |2 j2 s7 g9 H2 `8 e

上一篇:  一块网卡的自述

下一篇:  CPU的自述

评分

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

查看全部评分


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

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

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

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

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

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

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

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

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

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

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

本版积分规则

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

GMT+8, 2020-6-4 16:30 , Processed in 0.038805 second(s), 27 queries , Redis On.

© 2015-2020 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表