2022-01-05 网工基础(十九)NAT基本原理与配置
NAT基本原理与配置
随着Internet的发展和网络应用的增多,有限的IPv4公有地址已经成为制约网络发展的瓶颈。为解决这个问题,NAT(NetworkAddressTranslation,网络地址转换)技术应需而生。
NAT技术主要用于实现内部网络的主机访问外部网络。一方面NAT缓解了IPv4地址短缺的问题,另一方面NAT技术让外网无法直接与使用私有地址的内网进行通信,提升了内网的安全性。
一 NAT概述
1 NAT产生背景
随着互联网用户的增多,IPv4的公有地址资源显得越发短缺。
同时IPv4公有地址资源存在地址分配不均的问题,这导致部分地区的IPv4可用公有地址严重不足。
为解决该问题,使用过渡技术解决IPv4公有地址短缺就显得尤为必要。
2 私网IP地址
公有地址:由专门的机构管理、分配,可以在Internet上直接通信的IP地址。
私有地址:组织和个人可以任意使用,无法在Internet上直接通信,只能在内网使用的IP地址。
A、B、C类地址中各预留了一些地址专门作为私有IP地址:
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 NAT技术原理
NAT:对IP数据报文中的IP地址进行转换,是一种在现网中被广泛部署的技术,一般部署在网络出口设备,例如路由器或防火墙上。
NAT的典型应用场景:在私有网络内部(园区、家庭)使用私有地址,出口设备部署NAT,对于“从内到外”的流量,网络设备通过NAT将数据包的源地址进行转换(转换成特定的公有地址),而对于“从外到内的”流量,则对数据包的目的地址进行转换。
通过私有地址的使用结合NAT技术,可以有效节约公网IPv4地址。
二 静态NAT
静态NAT:每个私有地址都有一个与之对应并且固定的公有地址,即私有地址和公有地址之间的关系是一对一映射。
支持双向互访:私有地址访问Internet经过出口设备NAT转换时,会被转换成对应的公有地址。同时,外部网络访问内部网络时,其报文中携带的公有地址(目的地址)也会被NAT设备转换成对应的私有地址。
相关命令
在接口视图下配置静态NAT
[Huawei-GigabitEthernet0/0/0] nat static global 公网地址 inside 私网地址
在系统视图下配置静态NAT
[Huawei] nat static global 公网地址 inside 私网地址
在接口下开启静态NAT功能
[Huawei-GigabitEthernet0/0/0] nat static enable
查看静态NAT
display nat static
实验:配置静态NAT
在路由器AR1上配置
[AR1]nat static global 200.100.1.5 inside 192.168.1.2 \\将内部地址192.168.1.2转换为外部地址200.100.1.5[AR1]nat static global 200.100.1.6 inside 192.168.1.3 \\将内部地址192.168.1.3转换为外部地址200.100.1.6[AR1-GigabitEthernet0/0/1]nat static enable \\在g0/0/1下开启静态nat
测试连通性
测试成功
三 动态NAT
动态NAT:静态NAT严格地一对一进行地址映射,这就导致即便内网主机长时间离线或者不发送数据时,与之对应的公有地址也处于使用状态。为了避免地址浪费,动态NAT提出了地址池的概念:所有可用的公有地址组成地址池。
当内部主机访问外部网络时临时分配一个地址池中未使用的地址,并将该地址标记为“In Use”。当该主机不再访问外部网络时回收分配的地址,重新标记为“Not Use”。
相关命令
创建地址池
[Huawei] nat address-group 地址池编号 起始地址 结束地址
配置地址转换的ACL规则
[Huawei] acl 规则编号
[Huawei-acl-basic-规则编号 ] rule permit source 源地址 通配符
接口视图下配置带地址池的NAT Outbound
[Huawei-GigabitEthernet0/0/0] nat outbound 规则编号 address-group 地址池编号 [no-pat]
注:no-pat指不进行端口转换
实验:配置动态NAT
在路由器AR1上配置
[AR1]nat address-group 1 200.100.1.5 200.100.1.10 \\创建NAT地址池1,范围从200.100.1.5到200.100.1.10[AR1]acl 2000 \\创建基本ACL 2000
[AR1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255 \\添加规则:允许192.168.1.0/24网段通行[AR1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat \\在g0/0/1接口出方向上应用ACL 2000 和NAT地址池1,不进行端口转换
测试连通性
连通性没有问题
再查看抓包
可以看出主机1使用了200.100.1.5-200.100.1.9这5个地址,而主机2使用了200.100.1.5-200.100.1.9这5个地址
测试成功。
四 NAPT
动态NAT选择地址池中的地址进行地址转换时不会转换端口号,即No-PAT(No-PortAddressTranslation,非端口地址转换),公有地址与私有地址还是1:1的映射关系,无法提高公有地址利用率。
NAPT(Network Address and Port Translation,网络地址端口转换):从地址池中选择地址进行地址转换时不仅转换IP地址,同时也会对端口号进行转换,从而实现公有地址与私有地址的1:n映射,可以有效提高公有地址利用率。
相关命令
接口视图下配置带地址池的NAT Outbound
[Huawei-GigabitEthernet0/0/0] nat outbound 规则编号 address-group 地址池编号
实验:配置NAPT
首先在上面的实验基础上进行修改AR1的配置,去掉no-pat
[AR1-GigabitEthernet0/0/1]undo nat outbound 2000 address-group 1 no-pat[AR1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 \\在g0/0/1接口出方向上应用ACL 2000 和NAT地址池1
再进行测试
观察发现,和动态NAT不同的是,配置NAPT后,ping测试时只会使用一个地址,节省了地址数量。
实验:配置NAPT(二)
在路由器AR1上配置
[AR1-GigabitEthernet0/0/1]undo nat outbound 2000 address-group 1 \\在g0/0/1下禁用原来的NAPT应用[AR1]undo nat address-group 1 \\删除地址池1[AR1]nat address-group 1 200.100.1.5 200.100.1.5 \\配置地址池1,添加200.100.1.5这1个地址[AR1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 \\在g0/0/1接口下应用NAPT
在路由器AR2上配置
[AR2]user-interface vty 0 4 \\进入用户接口视图[AR2-ui-vty0-4]authentication-mode password \\验证方式为密码
Please configure the login password (maximum length 16):12345[AR2-ui-vty0-4]protocol inbound telnet \\启用telnet登录[AR2-ui-vty0-4]user privilege level 15 \\修改权限等级为15
在路由器AR3上配置
[AR3]ip route-static 0.0.0.0 0 192.168.1.1 \\配置一条默认路由
抓取AR1和AR2的g0/0/0口,并且在AR3上 telnet AR2进行测试
观察发现,内网地址192.168.1.4转换为了200.100.1.5,然后telnet源端口49918转换为808
测试成功。
五 Easy IP
EasyIP:实现原理和NAPT相同,同时转换IP地址、传输层端口,区别在于EasyIP没有地址池的概念,使用接口地址作为NAT转换的公有地址。
EasyIP适用于不具备固定公网IP地址的场景:如通过DHCP、PPPoE拨号获取地址的私有网络出口,可以直接使用获取到的动态地址进行转换。
实验:配置Easy IP
在路由器AR1上配置
[AR1]dhcp enable \\开启DHCP功能[AR1-GigabitEthernet0/0/1]undo ip address \\删除原有IP地址[AR1-GigabitEthernet0/0/1]ip address dhcp-alloc \\开启DHCP客户端[AR1-GigabitEthernet0/0/1]undo nat outbound 2000 address-group 1 \\删除原有NAPT配置[AR1-GigabitEthernet0/0/1]nat outbound 2000 \\配置Easy ip
在路由器AR2上配置
[AR2]dhcp enable \\开启DHCP功能[AR2-GigabitEthernet0/0/0]dhcp select interface \\在接口g0/0/0上应用DHCP功能
使用PC1进行ping测试
测试可以ping通,再查看抓包
可以看出获取到的地址是200.100.1.254,测试成功
六 NAT Server
NATServer:指定[公有地址:端口]与[私有地址:端口]的一对一映射关系,将内网服务器映射到公网,当私有网络中的服务器需要对公网提供服务时使用。
外网主机主动访问[公有地址:端口]实现对内网服务器的访问。
实验:配置NAT Server
在路由器AR1上配置
//配置telnet服务器
[AR1]user-interface vty 0 4[AR1-ui-vty0-4]authentication-mode password
Please configure the login password (maximum length 16):12345[AR1-ui-vty0-4]protocol inbound telnet[AR1-ui-vty0-4]user privilege level 15//配置Easy IP
[AR1]acl 2000[AR1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255[AR1-GigabitEthernet0/0/1]nat outbound 2000//配置端口IP映射-NAT Server,将外部的IP地址和自定义端口8023映射到内部192.168.1.2的telnet服务(23号端口)
[AR1-GigabitEthernet0/0/1]nat server protocol tcp global current-interface 8023 inside 10.1.99.99 telnet
在路由器AR2上配置
//配置telnet服务器
[AR2]user-interface vty 0 4[AR2-ui-vty0-4]authentication-mode password
Please configure the login password (maximum length 16):12345[AR2-ui-vty0-4]protocol inbound telnet [AR2-ui-vty0-4]user privilege level 15
在路由器AR3上配置
//配置telnet服务器
[AR3]user-interface vty 0 4[AR3-ui-vty0-4]authentication-mode password
Please configure the login password (maximum length 16):12345[AR3-ui-vty0-4]protocol inbound telnet [AR3-ui-vty0-4]user privilege level 15//配置一条默认路由
[AR3]ip route-static 0.0.0.0 0 192.168.1.1
测试
1 AR1 telnet AR2和AR3
测试成功
2 AR2 telnet AR1
测试成功
3 AR3 telnet AR1和AR2
测试成功
重点来了,抓包观察AR2和AR3的G0/0/0
4 AR2 telnet AR3
telnet成功,现在我们观察抓包情况
在AR2的G0/0/0上
目标地址是200.100.1.1,而端口是我们自定义的8023
在AR3的G0/0/0上
映射为,目标地址是192.168.1.2,而端口是telnet的标准端口23。
测试成功。
2022-01-05 网工基础(十九)NAT基本原理与配置相关推荐
- 2021-12-15 网工基础(十一) VLAN的基本原理、接口类型、Access、Trunk
VLAN基础 二 VLAN的基本原理 1 以太网二层接口类型 Access接口 交换机上常用来连接用户PC.服务器等终端设备的接口.Access接口所连接的这些设备的网卡往往只收发无标记帧.Acces ...
- Python基础十九:多进程
Python基础十九:多进程 Python基础系列内容为学习廖雪峰老师Python3教程的记录,廖雪峰老师官网地址:廖雪峰Python3教程 Author:yooongchun Email:yooon ...
- 一个网工的十年奋斗史 - 工作篇
作者:姜汁啤酒 原文:http://gingerbeer.blog.51cto.com/625855/1960918 大家好,我是姜汁啤酒,网络技术沉迷者及从业者. 目前作为Senior Networ ...
- Spring Cloud 2.2.2 源码之二十九nacos客户端获取配置原理四
Spring Cloud 2.2.2 源码之二十九nacos客户端获取配置原理四 MetricsHttpAgent的httpGet ServerHttpAgent的httpGet HttpSimple ...
- 2021-12-29 网工基础(十六)动态路由OSPF基础
一 动态路由概述 动态路由协议能够自动发现和生成路由,并在拓扑变化时及时更新路由,可以有效减少管理人员工作量,更适用于大规模网络. 自动发现.学习路由.感知拓扑变更. 二 动态路由分类 按工作区域分类 ...
- 2021-12-23 网工基础(十四) 链路聚合的两种模式、堆叠、集群、IP路由基础
一 链路聚合的两种模式 1.手工模式(管理员手工指定,无协议报文.没有开销) 2.LACP模式(交换机之间会交互LACP的协议,会有一点儿报文交互)一般正常情况下推荐使用LACP模式. 一般自动协商都 ...
- 网工基础测试题(附HCIA题库)
1. (单选) 管理员在华为AR2220路由器上做了如下配置,下列描述正确的是: <huawei>system-view [huawei]user-interface maximum-vt ...
- 一个网工的十年奋斗史 - 移民篇
我在茶余饭后总能听到:某同事出国以后的生活多好,什么时候买了个别墅大house,什么时候晒了一下蓝天白云没有雾霾,让人羡慕不已. 可是我们也同样忽略了移民背后的努力和艰辛.殊不知对于移民的人来说,需要 ...
- 【网工基础】子网掩码及网络划分
随着互连网应用的不断扩大,原先的 IPv4 的弊端也逐渐暴露出来,即网络号占位太多,而主机号位太少,所以其能提供 的主机地址也越来越稀缺.目前除了使用 NAT 在企业内部利用保留地址自行分配以外,通常 ...
- 2021-11-30 网工基础(三)物理层、数据链路层、VRP系统等基础
一 物理层 1 物理层位于模型的最底层: 1 负责比特流在介质上的传输. 2 规范了线缆.针脚.电压.接口等物理特性规范. 3 常见的传输介质有:双绞线.光纤.电磁波等. 数据到达物理层之后,物理层会 ...
最新文章
- 产品经理也能动手实践的AI(一)- FastAI介绍
- android 退出多个activity,Android 中 退出多个activity的经典方法
- 两个队列实现一个栈思路c语言,两个栈实现队列功能C语言实现能运行!
- DNS劫持和HTTP劫持有何区别
- @@HOW TO:检查 MDAC 版本
- Uboot详细解析1
- laravel8+ 微信小程序生成二维码
- qt repaint 用法_QT 界面绘制刷新机制
- 基于Bilibili热门视频Top100弹幕的数据爬取与分析(报告版)
- java与seo_seo和java哪个更好!
- 中文主播也能海外带货!同声传译助直播类应用开拓海外市场
- laravel实现短信验证码功能
- 上传IPA包到App Store
- 计算机核心基础、计算机硬件组成原理、计算机硬件组成详解、硬盘接口及操作系统、计算机网络简述、OSI七层协议、子网划分、 VLAN简述
- 其他:Pycharm 常用快捷键
- Java题-一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
- [译]用R语言做挖掘数据《七》
- 北师大c语言2019在线作业,2019最新C语言考试题库及答案
- JAVA抽象类接口初始化块实验_抽象类和接口 - 逝水无痕7777的个人空间 - OSCHINA - 中文开源技术交流社区...
- qr-code 生成二维码
热门文章
- 教你如何养微信小号,什么样的号可以群爆粉?
- 神经计算棒是什么_这是太棒了
- QT error: undefined reference to `__imp__ZN12QSqlDatabase7driversEv‘报错
- 商业化产品经理与用户产品经理区别
- 计算机原理--全加器
- 一次性搞懂JavaScript正则表达式之方法
- python获取图片长宽高,Python获取图片的大小/尺寸
- kali linux 2020.4 自带浏览器英文改中文
- 18款口碑爆棚手机浏览器,被一网打尽了
- 高效工作-使用石墨文档进行信息收集