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

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-07 05:52:40


【关键字】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.  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!