网络地址转换协议NAT

网络地址转换协议NAT

NAT的定义

NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。

NAT的功能

  • 解决lP地址不足的问题
  • 有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
  • 把内网的私有地址,转化成外网的公有地址。
  • 使得内部网络上的(被设置为私有IP地址的)主机可以访问Internet。

NAT的分类

  • 静态NAT,将内部网络中的每个主机都永久映射成外部网络中的某个合法的地址,多用于服务器。
  • 动态NAT,则是在外部网络中定义了一个或多个合法地址,采用动态分配的方法映射到内部网络。

NAT的流程

  • 网络被分为私网和公网两个部分,NAT网关设置在私网到公网的路由出口位置,双向流量必须都要经过NAT网关
  • 网络访问只能先由私网侧发起,公网无法主动访问私网主机;
  • NAT网关在两个访问方向上完成两次地址的转换或翻译,出方向做源信息替换,入方向做目的信息替换;
  • NAT网关的存在对通信双方是保持透明的;
  • NAT网关为了实现双向翻译的功能,需要维护一张关联表,把会话的信息保存下来。

ENSP配置NAT

静态NAT

python 复制代码
R1:
//当内网地址 172.16.1.1经由g0/0/0接口发送时,静态转换为公网地址 202.169.10.5
//当外网经由g0/0/0接口访问 202.169.10.5地址时,静态转换为内网地址 172.16.1.1
[R1-GigabitEthernet0/0/0]nat static global 202.169.10.5 inside 172.16.1.1

动态NAT

python 复制代码
R1:
//设置NAT地址池,编号为1,范围从202.169.10.50开始,至202.169.10.60结束
[R1]nat address-group 1 202.169.10.50 202.169.10.60
//在R1上创建ACL访问控制表,编号2001    
[R1]acl 2001
//5号规则内容为允许172.17.1.0/24的数据通过
[R1-acl-basic-2001]rule 5 permit source 172.17.1.0 0.0.0.255
[R1]int g0/0/0
//将编号2001的ACL运用在g0/0/0端口,绑定1号地址池
//意为当符合ACL 2001的数据从g0/0/0端口出去时,会将从地址池1中取出地址取代原地址成为新的源地址
[R1-GigabitEthernet0/0/0]nat outbound 2001 address-group 1 no-pat

NAT技术的未来

在知乎上看到过这样一种言论,随着ipV6技术的到来,NAT技术已经不再需要了。在我看来,技术的革命一定是一步一步实现的,比如先是在局部地区使用IPV6,然后再逐步扩大其规模,减少IPv4的规模,所以NAT技术还是需要的。而且到了那个时候,网络世界中会充斥着两种地址ipV4和ipV6,这个时候更需要NAT技术了,因为NAT的中文翻译叫做网络地址转换啊。所以学好这个知识点对于我们理解网络是至关重要的。每到此时都会感慨,学校学到的知识真的只是皮毛,但是却是我现在所有知识的基础。

相关推荐
道法自然04023 分钟前
Ethernet 系列(8)-- 基础学习::ARP
网络·学习·智能路由器
yeyuningzi11 分钟前
Debian 12环境里部署nginx步骤记录
linux·运维·服务器
EasyCVR1 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
明月看潮生2 小时前
青少年编程与数学 02-003 Go语言网络编程 15课题、Go语言URL编程
开发语言·网络·青少年编程·golang·编程与数学
wowocpp2 小时前
ubuntu 22.04 硬件配置 查看 显卡
linux·运维·ubuntu
萨格拉斯救世主2 小时前
jenkins使用slave节点进行node打包报错问题处理
运维·jenkins
川石课堂软件测试2 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
龙哥说跨境3 小时前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
懒大王就是我3 小时前
C语言网络编程 -- TCP/iP协议
c语言·网络·tcp/ip
Elaine2023913 小时前
06 网络编程基础
java·网络