为什么80%的码农都做不了架构师?>>>   

【关键字】DHCP  NAT uPnP  私有IP地址  端口扫描攻击

1.引言

针对当前多数家庭用户使用ADSL接入网络以及IPv4地址几乎耗尽而IPv6暂时难以商用化的现状,提出在组件家庭网络时使用DHCP动态主机配置协议和NAT网络地址转换的数据通信解决方案。主要解决公网地址获取,NAT方案选择,DHCP参数配置和NAT穿越等问题。

2.现状分析

计算机和计算机配件,网络设备的价格正在逐渐降低到能飞入寻常百姓家的水平,应运而生的家庭组网话题变得可行。而目前国内大多数住宅用户通过ADSL接入方式实现INTERNET网络服务的。若要实现家庭网络用户之间的网络应用,如在智能家居领域,需要解决动态地址识别以及家庭网络内部设备的NAT穿越功能。

3.方案设计

3.1 网络体系结构设计

家庭子网中包含多种网络设备,安装有网络接口卡,具有网络数据通信能力。如在子网A中拥有PC,网络打印机,Laptop等网络设备。这些设备与路由器相连,若选择无线路由器将会具有便捷的可移动性。路由器向上连接的是ADSL调制解调器,提供调制数据和解调数据的功能。ADSL调制解调器向上连向ISP,图中的ISP可能是同一个也可能是不同的。

3.2方案设计

3.2.1 公网地址

对于每个家庭网络,其NAT使能路由器从ISP那里获取IP地址,作为整个网络对外网的统一标识。获得方式依具体的网络服务提供商而定。可能的方式有:

1.动态分配。ISP拥有的地址块是有限的,但他们不希望有限的地址块过多地限制他们的用户容量,所以采用DHCP动态分配的方式对接入用户进行IP地址分配。比如某ISP拥有200个可分配的IP地址,但拥有1000个用户。由于许多用户并不会同时在线,通过动态分配的方式就可能使用少量的地址满足大量用户需求。

2.静态分配。部分家庭用户可能希望得到一个永久分配的IP地址,ISP可以提供这样的固定分配,并可能要求缴纳更高的费用。

3.2.2 NAT方案选择

网络地址转换方案主要有三类:静态NAT、动态NAT、NAPT。

1.静态NAT方案。内网私有IP地址与公网地址呈一一对应关系,此方案无助于节省IP地址。

2.动态NAT方案。私有IP地址与公网IP间的映射是动态的,加入网络的设备被分配地址,离开网络或者到达租赁期时地址被收回。

3.NAPT。此方案中一个家庭网络只需要一个公网IP即可满足要求。内网设备通过同一IP的不同端口号来标识。

3.2.3 NAT使能路由器作为DHCP Server

家庭网络设备对于内部网络来说应该是即插即用的无需过多配置和复杂的连接操作。可把NAT使能路由器作为一个DHCP服务器,为家庭网络设备提供动态主机配置服务。

3.2.4 NAT穿越问题

无论采用C/S还是P2P结构,当通信双方至少有一方处于NAT背后时,都需要解决NAT穿越的问题。这里为了实现简洁的网络结构而选择uPnP方案。

3.3 方案实现

在实现中ISP为家庭用户动态分配IP地址,NAT方案选择NAPT,路由器为内部设备提供DHCP服务,采用uPnP实现NAT穿越。具体方案如下:

3.3.1.NAT Enabled Router接入ISP网络。

1.此Router作为DHCP客户端,广播一个DHCP DISCOVERY报文。由于此时路由器尚未配置,所以源IP为0.0.0.0,目的IP为255.255.255.255。

2.网络中所以主机收到广播,不提供DHCP的主机丢弃此报文。提供DHCP的服务器们在可用的IP地址中选取一个,封装为DHCP OFFER报文,设定超期时间,广播出去。在数据链路层上封装源Router的MAC地址。

3.Router接收到DHCP OFFER,当收到多个时则选取其中一个,返回DHCP REQUEST。同时发出一个ARP广播,以检测这个OFFER中的IP地址是否被同一子网中的某个设备占用。若是已经被占用,则向DHCP Server发送DHCP DECLINE,拒绝此次OFFER。

4.DHCP Server收到DHCP REQUEST后返回DHCP ACK作为确认,依旧通过广播的形式。

3.3.2 NAT方案

假设路由器已经从ISP获得一个公网IP地址111.111.111.111。NAT为家庭网络中的某个设备A1分配私有地址10.0.0.1。当A1希望与外网的某个设备C1,(IP地址为222.222.222.222)通信时的过程如下:

1.A1发起对C1建立TCP连接的请求,源IP:10.0.0.1,源端口号:3345

目的IP:222.222.222.222,目的端口号:80。

2.NAT更改源IP和源端口号:源IP:111.111.111.111 源端口号:5001

目的IP和端口号不变。同时在NAT表中增加新旧两个IP/端口对的映射。

3.C1对请求返回响应,源IP:222.222.222 源端口号:80

目的IP:111.111.111.111 目的端口号:5001。

4.NAT收到此响应后查看NAT表,并根据查询结果更改目的端口和IP。

目的IP:10.0.0.1  目的端口号:3345。

3.3.3  NAT对内部设备提供DHCP服务

此DHCP服务类似于ISP对家庭用户的DHCP服务,不同之处在于这里分配的是私有地址。私有地址包括三类,分别是:

A类:10.0.0.0至10.255.255.255

B类:172.16.0.0至172.31.255.255

C类:192.168.0.0至192.168.255.255

具体服务流程在此不再赘述。

3.3.4  NAT穿越方案

NAT穿越采用uPnP即插即用协议。内部设备向NAT申请一个端口号作为自身的标识。相当于在NAT上开了一个与外界通信的窗口。如内部主机A1可以向NAT Enabled RouterA申请一个从私有IP地址/端口号:10.0.0.1/3345到公网IP地址/端口号:111.111.111.111/5001的映射。这样来自外边设备的连接请求可以得到响应,内部设备可以成为服务器端。即便通信双方都处于家庭网络内部也可以实现通信。此时ISP服务器可作为跟踪器,而内部设备向ISP报告自己可以在某个公网IP端口对中被检测到。

4.系统分析

4.1 优势:

1.NAT可以作为暂缓IPv4地址资源短缺的方案,在IPv4向IPv6过渡

过程中起到重要作用。

2.NAT可以实现带宽分享

3.NAT提供了一定程度的安全防护。由于内部设备对外不可见,可以避

免内部设备遭受到端口扫描攻击。

4.2 不足

1.当采用NAPT时使用端口号来标识主机,有违端口号标识进程的原则

2.路由器应当只处理底三层,而在NAT更改端口号时涉及网络层以上的

协议。

3.违反端到端原则,中间节点不应介入端口号和IP地址的修改。

5.结语

通过网络地址转换和动态主机配置协议实现了家庭网络设备之间的通信方案。有效地解决了家庭组网可能形成的地址穿越问题和地址短缺问题。功能上相对较完善且实现方案简便有效。

【参考文献】

[1] ADSL Modem.  http://baike.baidu.com/view/854934.htm

[2] (美)特南鲍姆(美)韦瑟罗尔. 计算机网络(第5版)

[3](美)多伊尔(美)卡罗尔.TCP/IP路由技术(第1卷)(第2版)

[4]  端口扫描攻击.http://www.cnetnews.com.cn/2008/0112/706171.shtml

[5]  Jie Wang.Computer Network Security:Theory And Practice.

转载于:https://my.oschina.net/tseng/blog/129789

基于DHCP和NAT的家庭网络设备间通信解决方案相关推荐

  1. 计算机网络 | IP协议相关技术与网络总结 :DNS、ICMP、DHCP、NAT/NAPT、通信流程

    IP协议相关技术与网络总结 DNS DNS与域名 域名服务器 域名的解析流程 ICMP ping NAT/NAPT NAT NAPT NAT的缺陷 代理服务 DHCP 通信流程 浏览器中输入url后, ...

  2. 网络安全04_互联网发展史_网线+网卡+协议栈_中继器_集线器_网桥_路由器_AC/AP_防火墙_流控_家庭网络_小型创业公司网络_园区网_政务网络_数据中心网络拓扑_电信网/互联网_Mac地址

    互联网发展史 如何将两个主机连接起来? 在网络诞生之前,电脑都是单机运行,没有网卡,没有网线,没有协议栈,数据传输主要靠软盘.光盘等介质. 网线+网卡+协议栈 网线:物理介质,承载比特流/电信号(类似 ...

  3. TR069在家庭网络中的应用

    随着宽带接入在家庭的普及,IP语音(VoIP).IPTV业务的迅速发展,越来越多的IP终端设备被引入到家庭网络中,传统的基于简单网络管理协议(SNMP)的网管在管理数目众多的终端设备时已经变得越来越力 ...

  4. 家庭网络搭建_家庭网络

    家庭网络搭建 I spent some time overhauling my home network. There was no way I was going to settle for the ...

  5. VMware8.0虚拟机中安装Ubuntu12.04使用NAT设置连接网络

    之前一直尝试使用"桥接"的方法,但是一打开虚拟机,本机windows就断网.最后不得不换种方法,还好尝试了很多遍终于使用NAT设置成功的联网了. 说明:本机windows连接的是无 ...

  6. 基本组网-(适用场景:一般家庭网络、微型企业网络、20人以内)、基础知识、设备知识、运营商选择、设备选择、设备配置

    基本组网 本文可使读者了解组网所需要的基础知识,一般家庭网络.微型企业网络.20人以内的组网相关的设备选择.基本配置方法. 基础知识 调制解调 我们知道,计算机内的信息是由"0"和 ...

  7. VMware Workstation 虚拟机中的 虚拟机通过NAT访问物理网络(NAT模式)

    这里写目录标题 3.5 虚拟机通过NAT访问物理网络 3.5.1 公网地址 3.5.2 私网地址 3.5.3 网络地址转换(NAT)技术 3.5.4 配置虚拟机使用NAT访问物理网络 3.5.5 通过 ...

  8. CentOS 6.5自动化运维之基于DHCP和TFTP服务的PXE自动化安装centos操作系统详解

    前言    如果要给很多台客户端主机安装操作系统,要是每一台都拿张安装光盘一台一台主机的去装系统那就太浪费时间和精力了.在生产环境中也不实际,要实现为多台主机自动安装操作系统,那我们怎么实现自动化安装 ...

  9. 总结之:CentOS 6.5基于DHCP的PXE自动化安装系统详解

    前言    如果要给很多台客户端主机安装操作系统,要是每一台都拿张安装光盘一台一台主机的去装系统.那就台不现实了.在生产环境中也不会被允许的.要实现为多台主机自动安装操作系统.那我们怎么实现自动化安装 ...

最新文章

  1. 从0到1 | 文本挖掘的传统与深度学习算法
  2. JQuery笔记(二)jq常用方法animate()
  3. 【Java_多线程并发编程】JUC原子类——4种原子类
  4. python整数类型提供了4种进制表示_关于整数类型的 4 种进制表示,哪个选项的描述是正确的?_学小易找答案...
  5. 详解异构计算FPGA基础知识
  6. oracle 10g分区表,oracle10g--11gR2分区表汇总四
  7. 如何在Mac上使用触控栏?
  8. 如何将文件地址转为url_如何快速替换WordPress站点新旧URL地址?
  9. c语言void swap1,C语言的一些遗留问题(1):关于交换两个数的swap()函数的一些问题...
  10. OpenG的特点及功能
  11. CSS设置background背景透明
  12. 如何用PS将一张图片裁剪成圆形?
  13. 写代码之外,如何再赚一份工资?
  14. Python——format
  15. 垃圾填埋场渗滤液厌氧处理过程中沼气的综合利用
  16. 聊聊rel=external nofollow和rel=noopener noreferrer
  17. java中Excel导入,下载模板,附带前端展示
  18. NGUI 动态操作sprite
  19. XXTEA加密流程分析
  20. 友善之臂 mini2440 linux led 驱动代码,友善之臂mini2440的LEDdriver驱动分析及测试程序...

热门文章

  1. [项目部署]宝塔部署项目
  2. uniapp使用mpaas支付宝原生扫码插件
  3. 如何用python抠图和切换背景
  4. Metapath-guided Heterogeneous Graph Neural Network for Intent Recommendation 个人总结
  5. teleport ultra整站下载工具
  6. 教程分享:如何给图片制作蒙太奇效果?
  7. c++ 复合结构的基本用法
  8. Springboot 自定义mybatis 拦截器,实现我们要的扩展
  9. 【毕业季·进击的技术er】忆毕业一年有感
  10. Appium 介绍以及工作原理