【network实践】DHCP和NAT

DHCP概要

DHCP(dynamic host configuration protocol)是局域网中的一种协议,可以给内部网自动分配ip地址。

DHCP客户端和DHCP服务器之间连接过程分为四步:

  1. discovery阶段:客户端通过broadcast寻找服务器
  2. offer阶段:服务器预约ip地址并回信给客户端
  3. request阶段:客户端收到offer,并将需要的ip地址,broadcast告诉服务器
  4. ack阶段:服务器按照要求给客户端分配ip地址

NAT概要

NAT(network address translation)相当于在外部的网络记住内部网络的网络端口,从而可以在ip地址一直变化的情况下做到准确运输数据包。

NAT有两个优点:

  1. 可以解决ipv4地址枯竭的问题。
  2. 可以提高网络的安全性。

几个需要注意的NAT用语:

  • 内部local address:从内部往内部看ip地址。
  • 内部global address:从外部向内部看ip地址。
  • 外部local address:从内部看外部的ip地址。
  • 外部global address:从外部看外部的ip地址。

NAT内部local address和内部global address是一一对应的关系:

  • 10.1.1.1 – 1.1.1.1
  • 10.1.1.2 – 1.1.1.2
  • 10.1.1.3 – 1.1.1.3
  • 10.1.1.4 – 1.1.1.4

PAT概要

PAT(port address translation)是局域网中的一种协议,与NAT不同的是,PAT可以就一个ip地址通过分配不同的网口的形式,实现只用一个内部global address分配到不同的内部local address。

  • 10.1.1.1:1025 – 1.1.1.1:1025
  • 10.1.1.2:1029 – 1.1.1.1:1029
  • 10.1.1.5:1030 – 1.1.1.1:1030

演习

network拓扑图如下,要求用两台router,一台switch完成实验,从ISP路由器出发分割出的global地址是209.165.200.224/29,利用此global地址设定GW路由器的PAT,内部IP地址根据192.168.32.0/24的范围进行DHCP分配地址,PC取得适当的ip地址后,模拟网络服务(loopback)能完成通信的话就是成功。

首先配置GW的路由器NAT:

1
2
3
4
5
6
7
8
9
10
11
GW_Router(config)#interface fastethernet 0
GW_Router(config-if)#ip address 192.168.32.254 255.255.255.0
GW_Router(config-if)#ip nat inside
GW_Router(config-if)#no shutdown
GW_Router(config)#interface fastethernet 1
GW_Router(config-if)#ip address 209.165.201.18 255.255.255.0
GW_Router(config-if)#ip nat outside
GW_Router(config-if)#no shutdown
GW_Router(config)#ip nat pool DPAT 209.165.201.209 209.165.201.230 netmask 255.255.255.0
GW_Router(config)#access-list 1 permit host 192.168.32.0 //设置ACL
GW_Router(config)#ip nat inside source list 1 pool DPAT overload //PAT定义

其次配置GW路由器DHCP:

1
2
3
4
5
6
7
8
GW_Router(config)#ip dhcp excluded-address 192.168.32.10 192.168.32.254//192.168.32.10-254除外
GW_Router(config)#ip dhcp pool LANUser
GW_Router(dhcp-config)#network 192.168.32.0 255.255.255.0
GW_Router(dhcp-config)#default-router 192.168.32.254
GW_Router(dhcp-config)#domain-name google.com
GW_Router(dhcp-config)#dns-server 8.8.8.8 //设定dns服务器
GW_Router(dhcp-config)#lease 0 12 //释放时间设置为12小时
GW_Router(config)#ip route 0.0.0.0 0.0.0.0 209.165.201.17//设定GW路由到ISP路由的默认路由通路

接着配置ISP服务器:

1
2
3
4
5
6
7
ISP_Router(config)#interface fastethernet 0
ISP_Router(config-if)#ip address 209.165.201.17 255.255.255.0
ISP_Router(config-if)#no shutdown
ISP_Router(config)#interface loopback 0
ISP_Router(config-if)#ip address 8.8.8.8 255.255.255.0
ISP_Router(config)#ip route 209.165.200.224 255.255.255.248 209.165.201.18
ISP_Router#show ip route

总结

至此所有NAT配置完成,但是最终show ip nat translations什么也不显示,原因是设置完后没有运行,这时用PCping 8.8.8.8就可以查看设置是否成功,show ip nat translations也会显示内容。

有一个小疑问GW_Router(config)#ip route 0.0.0.0 0.0.0.0 209.165.201.17这个语句为什么是从default gateway出发?


【network实践】DHCP和NAT
http://liuminxuan.github.io/2018/12/17/network实践笔记:DHCP和NAT/
发布于
2018年12月17日
许可协议