首页 > 其他分享 >考古笔记10:网络地址转换NAT(1)-基础

考古笔记10:网络地址转换NAT(1)-基础

时间:2023-06-01 14:33:49浏览次数:37  
标签:10 NAT ip list 地址 网络地址 nat IP地址

NAT的概念相关

1、概念     

NAT:网络地址转换

  • 实现将内网私有IP地址转换为公网IP地址
  •  解决公网IP地址数目不足的问题
  •  可保护内网IP地址的私密性,起到一定的安全性
  •  还可实现企业内多个私有IP网段重叠问题

2、NAT分类

  • 静态NAT:唯一的私有IP------映射------唯一的公网IP(映射关系确定,永久保存)
  • 动态NAT:多个私有IP------映射------多个公网IP(映射关系不确定,向外访问时建立映射关系)
  • 端口复用:局域网中多个或全部私有IP------映射------1个公网IP(映射关系不确定,向外访问时建立映射关系)

  私有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

    169.254.0.0--169.254.255.255(主机从DHCP服务器获取IP地址失败、或IP地址发生冲突后自动生成)

3、NAT配置命令

  • 静态NAT:
• R3(config)#ip nat inside source static 内部私有IP地址 公网地址
  •  动态NAT:

         1)建立允许内网IP网段进行NAT转换的ACL:

R3(config)#access-list  标准ACL编号 permit 内网IP网段 通配符掩码

         2)建立公网IP地址池:

R3(config)#ip nat pool 地址池名称 起始公网地址  结束公网地址  netmask  子网掩码

         3)建立动态NAT:
             

R3(config)#ip nat inside source list  ACL编号 pool 公网地址池名称
  • 端口复用:

        1)建立允许内网IP网段进行NAT转换的ACL:

R3(config)#access-list  标准ACL编号 permit 内网IP网段 通配符掩码

        2)建立端口复用NAT:

R3(config)#ip nat inside source list  ACL编号 interface 外网接口 overload

注意:内部、外部端口定义:

R3(config)#interface  内网接口
R3(config-if)#ip  nat inside

R3(config)#interface  外网接口
R3(config-if)#ip  nat outside

4、优缺点

  • NAT的优点
  • 节省公有合法IP地址
  • 处理地址重叠
  • 增强灵活性
  • 安全性


  • NAT的缺点
  • 延迟增大
  • 配置和维护的复杂性
  • 不支持某些应用可以通过静态NAT映射来避免

5、Cisco路由器配置中NAT的主要命令:

 静态NAT:

 1、指定NAT内部接口

 在内网相应接口的接口配置模式下执行:ip nat inside

 2、指定NAT外部接口

 在外网相应接口的接口配置模式下执行:ip nat outside

 3、在内部本地地址与内部全局地址之间建立静态地址转换关系:

ip nat inside source static 内部本地地址 内部全局地址

 4、在外部全局地址与外部本地地址之间建立静态地址转换关系:

ip nat outside source static 外部全局地址 外部本地地址

 5、 检查与排错

 show ip nat translations:显示当前存在的NAT转换信息。

 show ip nat statics:查看NAT的统计信息。

 show ip nat translations verbose:显示当前存在的NAT转换的详细信息。

 debug ip nat:跟踪NAT操作,显示出每个被转换的数据包。

 Clear ip nat translations *:删除NAT映射表中的所有内容.

 动态地址NAT:

 1、指定NAT内部接口

 在内网相应接口的接口配置模式下执行:ip nat inside

 2、指定NAT外部接口

 在外网相应接口的接口配置模式下执行:ip nat outside

 3、在全局配置模式下,定义一个标准的access-list规则,声明允许哪些内部本地地址可以进行动态地址转换:

access-list list-number permit 源地址通配符

其中,list-number为1-99之间的一个任意整数。

 4、在全局配置模式下,定义内部全局地址池:

  ip nat pool 地址池名 起始IP地址 终止IP地址 netmask 子网掩码 其中,地址池名可以任意设定,但最好有一定的说明意义。

 5、在全局配置模式下,定义符合先前定义的access-list规则的IP数据包与先前定义的地址池中的IP地址进行转换:

  ip nat inside source list list-number pool 内部全局地址池名

 6、删除命令

  no ip nat pool name 删除全局地址池

  no access-list access-list-number 删除访问列表

  no ip nat inside source 删除动态源地址转换

 网络地址端口转换NAPT:

 1、指定NAT内部接口

 在内网相应接口的接口配置模式下执行:ip nat inside

 2、指定NAT外部接口

 在外网相应接口的接口配置模式下执行:ip nat outside

 3、在全局配置模式下,定义内部全局地址池:

 ip nat pool 地址池名 起始IP地址 终止IP地址 netmask 子网掩码

 其中,地址池名可以任意设定,但最好有一定的说明意义。

 4、在全局配置模式下,定义一个标准的access-list规则,声明允许哪些内部本地地址可以进行复用地址转换:

 access-list list-number permit 源地址 通配符

 其中,list-number为1-99之间的一个任意整数。

 5、在全局配置模式下,定义符合先前定义的access-list规则的IP数据包与先前定义的地址池中的IP地址进行复用地址转换:

 ip nat inside source list list-number pool 内部全局地址池名 overload

静态PAT

R1(config)#ip nat inside source static {UDP|TCP} local-address port global-address port

 注:

 内部本地地址、内部全局地址、外部本地地址、外部全局地址

 ip nat inside/outside针对的是不同方向的流量/数据包。
 ip nat inside是指从内网发送的数据包,提取包头的源IP地址,转换为外网地址;

 ip nat outside是指从外网返回的数据包,提取包头的目的ip地址,转换为内网地址。
 inside/outside不是用来区分NAT路由器的内外部接口,而是用来区分需要NAT地址转换的不同方向的流量。

        inside指内部网络;

        outside指内部网络需要连接的网络,一般指互联网。

来张图:

考古笔记10:网络地址转换NAT(1)-基础_NAT




标签:10,NAT,ip,list,地址,网络地址,nat,IP地址
From: https://blog.51cto.com/mlxia/6393820

相关文章

  • 纳芯微推出车规级耐高压、三线霍尔开关及锁存器NSM101x系列
    纳芯微推出全新三线制车规霍尔效应开关/锁存器NSM101x系列,为数字位置检测提供高精度的解决方案,可被广泛应用于汽车执行器等的位置检测。NSM101x产品系列包含了3个产品型号,即NSM1011(单极霍尔开关)、NSM1012(全极霍尔开关)、NSM1013(霍尔锁存器)。考虑不同的开关点、工作磁......
  • 10条sql语句掌握
    10个必须掌握的SQL常用语句原创 RankFan 经济知识综合 2022-12-2411:08 发表于福建收录于合集#sql1个##Medium翻译17个世界上70%的相关性数据可以被储存为表格数据,即类似Excel,Csv类型的数据,如何去查询和分析相关性的数据?对于少量数据,我们可以使用Excel,更多一......
  • django.db.utils.integrityerror: (1048, "Column 'phone' cannot be null")
    1背景:模型表中字段为:phone=models.CharField(default='',max_length=64,verbose_name=u'电话',blank=True) 2分析:在保存模型实例时,‘phone’被设置为空值.但是该字段在数据库中被设置为(NOTNULL),因此导致完整性约束错误. blank=True,在Django模型验证中,......
  • pythom3.10安装(Linux系统)
    1.下载安装包https://www.python.org/downloads/source/Python-3.10.0.tgz2.解压安装包tar-xvf  Python-3.10.0.tgz3.进行配置 ./configure--prefix=/usr/local/python34.编译安装make&&makeinstall5.建立链接sudoln-s/usr/local/python3/bin/python3.10 /......
  • 10年10个印象深刻的失败产品
    知乎有一个问失败产品案例的问题,我也借题回顾了一下自己十年来,每年印象最深刻的一个案例。其实远远不止10个,感觉每年不搞死几个产品就像白活了一样,参与的就不说了,只说作为主要负责人&印象比较深的产品。先各用一句话记着,每个故事展开都能写一大篇……2007年,阿里已经开始思考物流信......
  • 10min说完淘宝最初10年的产品故事
    我一直觉得功过成败是需要相当长的时间来验证的,这两天为了准备「产品家3期」的案例,又翻出了如上这张图来看。字看不清,是我故意模糊掉了那是2016年5月10号阿里日的时候,我回园区遛弯,正好阿里的总参谋长曾鸣教授和他的团队在回顾整个淘宝的发展逻辑,因为我写过《淘宝十年产品事》,于是,就......
  • MySQL数据库10秒内插入百万条数据
    publicclassBaseDao{//静态工具类,用于创建数据库连接对象和释放资源,方便调用//导入驱动jar包或添加Maven依赖(这里使用的是Maven,Maven依赖代码附在文末)static{try{Class.forName("com.mysql.cj.jdbc.Driver");}catch(Cla......
  • 各个语言运行100万个并发任务需要多少内存?
    译者注:原文链接:https://pkolaczk.github.io/memory-consumption-of-async/Github项目地址:https://github.com/pkolaczk/async-runtimes-benchmarks正文在这篇博客文章中,我深入探讨了异步和多线程编程在内存消耗方面的比较,跨足了如Rust、Go、Java、C#、Python、Node.js和Elix......
  • hibernate session
       ......
  • 分析| React Native和Flutter在移动开发中的优势
    移动应用架构描述了设计和构建应用的模式与技术。该架构可以提供构建应用时应遵循的路线图和最佳实践,构建一个结构合理的应用。移动应用的常见层次结构包括用户界面层、业务逻辑层、数据访问层,但是随着跨平台开发框架的不断发展,以ReactNative、Flutter为代表的工具已经深入到移动......