网际协议:动态主机配置协议(DHCP)和NAT

一、DHCP

某组织一旦获得了一块地址,它就可以为本组织内的主机与路由器接口逐个分配IP地址。
主机地址可以手动配置,但是这项任务目前通常更多的是使用动态主机配置协议(DHCP)。
DHCP允许一个主机自动获取以下信息:IP地址、子网掩码、默认网关、DNS地址。
该协议支持即插即用,即一个新的网络设备加入网络时不需要重新启动该协议。

1、DHCP工作过程

在这里插入图片描述
对于一台新到达的主机而言,针对上图所示的网络设置,DHCP协议是一个4个步骤的过程,如下图所示。
在这里插入图片描述
(1)DHCP服务器发现:当一个笔记本连入网络时,它需要请求IP地址,首先客户在UDP分组中向端口67发送DHCP发现报文(DHCP discover),这个消息声明自己的存在;src是0.0.0.0这是因为笔记本也不知道自己的IP地址。目的地址是255.255.255.255广播地址,会生成一个广播帧,而这个广播帧会在局域网广播。
(2)DHCP服务器提供:当DHCP发现报文被同一个局域网的DHCP服务器收到时,它会返回一个DHCP提供报文(DHCP offer)。这个报文的目的地址仍然是广播地址。DHCP offer消息中还有收到的DHCP discover报文的事务ID 号、向客户主机推荐的IP地址、网络掩码、IP地址租用期等信息。
(3)当笔记本收到来自DHCP服务器的DHCP offer消息时,它会返回DHCP请求报文(DHCP request)进行IP地址的请求。
(4)DHCP ACK:最后服务器用DHCP ACK消息对请求进行响应。
我们可以看到DHCP返回的不仅仅是IP地址,还包括了:
(1)客户的第一跳路由器的地址。
(2)DNS服务器的IP地址和域名。
(3)网络掩码(用于指示网络的网络号部分和主机号部分)。

2、DHCP实例

DHCP实例:
在这里插入图片描述
(1)相连的笔记本请求IP地址、第一跳路由器的IP地址、DNS服务器的IP地址:使用DHCP。
(2)DHCP请求被封装成UDP包,进而被封装到IP包,进而被封装为802.1以太帧。
(3)以太帧在局域网中广播,运行DHCP服务器程序的路由器收到该广播帧。
(4)广播帧在DHCP服务器上逐层解封装得到DHCP请求消息。
(5)DHCP服务器构建DHCP ACK消息,包括客户的IP地址、第一跳路由器的IP地址、DNS的IP地址和名字。
(6)DHCP服务器封装消息成帧,转发给客户,在客户端将帧解封装为DHCP消息。
(7)客户目前知道了它的IP地址,第一跳路由器的IP地址,DNS服务器的IP地址和名字。
下图为运用Wireshark抓包工具抓到的DHCP请求和响应报文:
在这里插入图片描述

3、IP地址分配

关于IP地址及域名的获得:
互联网提供商是通过向一个国际组织申请IP地址和域名的。这个组织叫做ICANN,其主要职责是分配IP地址、管理DNS、分配域名,解决纠纷。
IP地址具体怎么分配呢?即给定一个地址块,怎么进行子网划分,以及为每个子网分配地址段呢?
某单位从ISP处购买了一个IP地址块202.40.70.0/24。如果该单位有3个部门,第一个部门78台计算机,第2个和第3个部门各有48台计算机,现在我们为这3个部门划分子网,给出各部门的网络号、子网掩码和主机可分配的IP地址范围:
因为202.40.70.0/24前24位是网络号,后8比特是主机号可以用于分配。在后8比特中可以将其划分为3个子网。每个子网对应一个部门。子网划分的好处是可以进行广播流量的隔离。子网1分配的IP地址范围至少需要支持78台电脑,子网2和子网3分配的IP地址范围至少需要分别支持48台电脑。78个IP地址至少需要用7比特来表示(因为2KaTeX parse error: Expected 'EOF', got '&' at position 1: &̲6是64,不够分配78台电脑)。因此可以选择用最高位为0表示子网1即前25位是网络号,后7位是主机号;最高位为1表示子网2和子网3,那么进一步怎么区分子网2和子网3呢?48个IP地址只需要6比特来表示即可,因此可以采用次高位来区别子网2和子网3。次高位为0表示子网2,次高位为1表示子网3。由此可得如下图设置:
在这里插入图片描述

二、NAT:网络地址转换

1、转换原因

在这里插入图片描述
我们在家里组建了一个本地局域网络,互联家里的网络设备,每台设备配置的都是内部私有的IP地址。对于内部私有IP地址,互联网上的路由器是不能进行寻址的,因此在与外界网络进行通信时会在家里的网关路由器上进行网络地址转换。将私有的内部IP地址转换为一个全局、可寻址的IP地址。在上图中,全局IP地址是138.76.29.7.。
NAT转换动机:对外部来讲,本地网络的所有主机只需要使用一个共同的全局IP地址。详细来说:
(1)不需要从ISP分配一系列地址,只要一个IP地址用于所有设备。
(2)在本地网络改变设备的IP地址不用通知外部世界。
(3)可以变更ISP而不用改变本地网络的设备的地址。
(4)本地网络内部设备不能被外部世界明确寻址,或是不可见(增加了安全性)。
使用NAT转换,路由器必须做到:
(1)外出的分组:替换每个外出的分组即源IP地址、端口号为NAT IP地址、新端口号,远程客户/服务器用NAT IP地址、新端口号作为目的地来响应。
(2)在NAT转换表中记录每个源IP地址、端口号到NAT IP地址、新端口号转换配对。
(3)进来的分组:对每个进来的分组,用保存在NAT表中的对应的源IP地址、端口号替换分组中的NAT IP地址、新端口号。

2、转换过程

转换过程如下:
在这里插入图片描述
如上图所示,首先主机10.0.0.1发送数据报外部服务器128.119.40.186。这个分组到达网络路由器时,路由器在NAT转换表中建立一个表项记录本地的源IP地址和源端口号到NAT IP地址和新端口号的映射。这里NAT IP地址是138.76.29.7,新的端口号是5001。当该分组到达外部服务器时,外部服务器对此产生一个响应消息,如分组3所示,这里响应消息的目的IP地址是NAT转换后的全局IP地址。因此该分组到达网关路由器时需要用本地IP地址和源端口号对其进行切换,如分组4所示。这就是整个NAT代换的工作过程。

3、NAT限制

NAT:网络地址转换的一些限制:
(1)由于本地网络的映射,不同主机的不通透应用都是通过全局IP加源端口号进行区分,因此同时可以支持的并发连接数为2 16 ^{16} 16即65536个。
(2)NAT应用在学术界任然存在争议,例如通常认为路由器只应该处理到第三层,而在NAT需要需改端口号就是需改了传输层的信息。此外,NAT的设计违反了因特网设计的端到端的主张。最后很多学者认为NAT只能缓解地址短缺的问题,应该及时过度到IPv6协议,从根本上解决地址短缺问题。
(3)NAT的另一个重要问题是它妨碍P2P应用程序,包括P2P文件共享应用和P2PIP语音应用。在一个P2P程序中,任何参与对等方A应当能够对任何其它参与对等方B发起一条TCP连接。但是如果对等放B在一个NAT后面,它不能充当服务器并接收TCP连接,若同时对等方A不在一个NAT的后面,则该NAT问题可以绕过去。在这种情况下,对等方A能够首先通过一个中间对等方C与对等方B联系,其中C不位于NAT之后并与B已经创建了一条进行中的TCP连接。对等方A则能够经过对等方C请求对等方B,发起直接返回对等方A的一条TCP连接。一旦对等方A和B之间创建一条直接的P2P TCP连接,这两个对等方就能够交换报文或文件。这种雇佣关系被称为连接反转,实际上被许多P2P应用程序用于NAT穿越。如果对等方A和对等方B都在它们自己的NAT后面,这种情况要使用应用程序进行中继处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值