NAT---网络地址转换技术

Network Address Translation

1、起源:ip地址不够用

2、作用:让私网地址映射成公网地址,进而访问网络。

3、私网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

4、缺点:破坏了端到端的环境

【数据包传输过程】(两个过程相反)

1、数据包从内网到外网查看路由表,查看目的是否可达,如果可达,再对源ip进行转换,不可达就丢弃。

2、数据包从外网到内网转换成私有的ip地址,然后查看路由表。(公网回来不知道私网的IP地址)隐藏内部网络拓扑

NAT的相关术语

1.内部本地地址(inside local)转换之前的私有IP地址 192.168.10.1

2.内部全局地址(inside global)转换之后的公有IP地址 202.101.1.1

3.外部本地地址(outside local)

4.外部全局地址(outside global)

nat分类】

1、静态nat

对私网的地址做一对一的映射,一个私有地址映射一个公有地址

ip nat inside source static 192.168.1.1 12.12.12.3

//对源ip地址192.168.1.1映射成公网12.12.12.3(与公网物理端口处于同一网段即可)

Router(config)#int e0/0

Router(config-if)#ip nat inside          //制定nat内接口

Router(config)#int e0/1

Router(config-if)#ip nat outside       //制定nat外接口

ip route 0.0.0.0 0.0.0.0 12.12.12.2   //默认路由

带端口的静态NAT

R3(config)#ip nat inside source static tcp 192.168.100.100 23 202.101.23.200 233        //将对202.101.23.200的233端口通过TCP连接的数据包,通过NAT转换给192.168.100.100的23端口

2、动态nat

通过地址池来实现,购买公网的一个ip地址范围,本质也是一对一的映射,如果ip地址不用了就收回来。

access-list 1 permit 192.168.1.0 0.0.0.255---匹配感兴趣流量

ip nat pool qq 12.12.12.10 12.12.12.20 netmask 255.255.255.0---公网地址池

ip nat inside source list 1 pool qq---转换

Router(config)#int e0/0

Router(config-if)#ip nat inside ---制定nat内接口

Router(config)#int e0/1

Router(config-if)#ip nat outside---制定nat外接口

ip route 0.0.0.0 0.0.0.0 12.12.12.2---默认路由

地址池复用:在地址池中,实现多对一的映射。

ip nat inside source list 1 pool qq overload 

3pat---port nat 端口nat

         非常常见的NAT转换,经常使用在家庭或者公司,配置很简单。只允许用户主动访问互联网,不允许互联网访问用户。内网用户转换后产生的转换表30s清空一次

access-list 1 permit 192.168.1.0 0.0.0.255---匹配感兴趣流量

ip nat inside source list 1 interface e0/1 overload ---转换

Router(config)#int e0/0

Router(config-if)#ip nat inside ---制定nat内接口

Router(config)#int e0/1

Router(config-if)#ip nat outside---制定nat外接口c

ip route 0.0.0.0 0.0.0.0 12.12.12.2---默认路由

检查NAT:

Router#sh ip nat translations ----查看nat转换情况

Router#sh ip nat statitice ----查看nat静态转化情况

Router#sh access-list ---查看nat列表转化情况

Router#debug ip nat---查看数据包显示信息, PCping外网的时候在在边界路由上的抓包

Router#un all--关掉debug  no debug all 真机谨慎使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/772538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

10本程序员必看的书籍

以下是10本程序员必看的书籍推荐: **1.《代码大全》:**史蒂夫迈克康奈尔著。这本书是编程最佳实践指南之一,它详细讲解了如何编写整洁、高效的代码,对于提升编程技能和代码质量有很大帮助。 **2.《深入理解计算机系统》&#xff1…

码垛机与人工搬运:效率与安全性的比较分析

在现代包装行业中,泡沫箱因其轻便和保温特性被广泛用于商品的包装与运输。随着自动化技术的不断发展,码垛机成为提升泡沫箱生产效率、降低劳动强度的关键技术。本文旨在比较码垛机与人工码垛在泡沫箱生产中的优势,并探讨自动化码垛的未来发展…

代码随想录算法训练营DAY3| C++链表Part.1|LeetCode:203.移除链表元素、707.设计链表、206.反转链表

文章目录 203.移除链表元素直接操作原链表虚拟头结点 707.设计链表定义链表结构体MyLinkedList() 初始化 MyLinkedList 对象。int get(int index)void addAtHead(int val)void addAtTail(int val)void addAtIndex(int index, int val)void deleteAtIndex(int index)void printL…

Python程序设计 模块和包

1. 模块和包 1.1 模块: 一个 py 文件,就是一个模块,文件中包括定义的函数和类等信息。 尽管可以 import 多次,实际上模块只导入一次 模块搜索路径内存中已经加载的模块 -> 内置模块 -> sys.path路径(导模块的…

Springboot快速整合bootstrap-table使用,接口对接

这个表格加持还是不错了,自带了全局搜索,分页,数据导出,卡片视图,等,本次整合添加了数据添加弹窗和编辑数据回显弹窗,附完整页面代码,只需要拿过来替换自己实际的接口即可。 效果图 …

鸿蒙实战开发-如何通过拖动滑块调节应用内字体大小

介绍 本篇Codelab将介绍如何使用基础组件Slider,通过拖动滑块调节应用内字体大小。要求完成以下功能: 实现两个页面的UX:主页面和字体大小调节页面。拖动滑块改变字体大小系数,列表页和调节页面字体大小同步变化。往右拖动滑块字…

ppp验证实验

实际操作图 1,IP划分分配 [r1]interface Serial 4/0/0 [r1-Serial4/0/0]ip add 192.168.1.1 24 [r2]interface Serial 4/0/0 [r2-Serial4/0/0]ip address 192.168.1.2 24 [r2]int Mp-group 0/0/0 [r2-Mp-group0/0/0]ip add 192.168.2.1 24 [r3]int Mp-group 0/…

Xcode Launching “XXX“ is taking longer than expected

文章目录 1.问题2.如何进入iOS DeviceSupport目录3.解决方法4.参考博客 1.问题 LLDB is likely reading from device memory to resolve symbols 2.如何进入iOS DeviceSupport目录 3.解决方法 进入iOS DeviceSupport目录,删除该真机对应的架构文件(比如…

QT作业day3

1、使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是…

JMeter 如何并发执行 Python 脚本

要在JMeter中并发执行Python脚本,可以使用Jython脚本或通过调用外部Python脚本的方式实现。 使用Jython脚本并发执行Python脚本的步骤: 1、创建一个线程组:在JMeter界面中,右键点击测试计划,选择 “添加” -> “线…

c语言文件操作(下)

目录 1.文件的随机读写1.1 fseek1.2 ftell1.3 rewind 2. 文件结束的判定2.1 文本文件读取结束的判断2.2 二进制文件读取结束的判断 3. 文件缓冲区 1.文件的随机读写 1.1 fseek 根据⽂件指针的位置和偏移量来定位⽂件指针。 函数原型: int fseek (FILE * stream,…

Springboot+vue的企业质量管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频: Springbootvue的企业质量管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller&#xff09…

黑马头条day5总结

1、surefire-reports for the individual test results. 借鉴:【已解决】surefire-reports for the individual test results.-CSDN博客 Please refer to D:\javashizhan01\heima-leadnews\heima-leadnews-service\heima-leadnews-article\target\surefire-report…

HTML(二)---【常见的标签使用】

零.前言 本文只介绍常见的标签使用&#xff0c;其中使用的一些HTML专业术语可以在作者的第一篇文章&#xff1a; HTML&#xff08;一&#xff09;---【基础】-CSDN博客中找到。 一.<b>粗体、<i>或<em>斜体 1.定义 粗体、斜体的实现可以在CSS中实现&…

【半结构化访谈法】

文章目录 什么是半结构化访谈法&#xff1f;如何进行半结构化访谈&#xff1f;1. 确定研究目的和主题2. 制定访谈指南3. 进行访谈4. 记录和分析数据5. 报告结果 半结构化访谈法的优缺点优点&#xff1a;缺点&#xff1a; 什么是半结构化访谈法&#xff1f; 半结构化访谈法是一…

Windows 和 Linux 的免费媒体播放器 - SMPlayer

Windows 和 Linux 的免费媒体播放器 - SMPlayer 1. A quick look at SMPlayer2. Downloads2.1. Packages for Ubuntu References https://www.smplayer.info/ 1. A quick look at SMPlayer SMPlayer is a free media player for Windows and Linux with built-in codecs that…

【MySQL】事务日志

事务的隔离性由锁机制实现&#xff0c;事务的原子性、一致性和持久性由redo日志和undo日志实现。 一、redo日志 1.1、为什么需要redo日志 一方面&#xff0c;由于数据从内存写回磁盘需要一定的时间&#xff0c;假如在事务提交后&#xff0c;还没有写回磁盘&#xff0c;数据库…

优雅地处理前端数据转换:自定义封装 translateDict 函数

在前端开发中&#xff0c;我们经常需要处理数据的转换。有时候&#xff0c;我们需要将某种格式的数据转换为另一种格式&#xff0c;这可能涉及到字符串、数组等不同数据类型的转换。在这篇博客中&#xff0c;我们将介绍一个名为 translateDict 的函数&#xff0c;它可以帮助我们…

Rancher(v2.6.3)——Rancher部署Nginx(单机版)

Rancher部署Nginx详细说明文档&#xff1a;https://gitee.com/WilliamWangmy/snail-knowledge/blob/master/Rancher/Rancher%E4%BD%BF%E7%94%A8%E6%96%87%E6%A1%A3.md#5rancher%E9%83%A8%E7%BD%B2nacos ps&#xff1a;如果觉得作者写的还行&#xff0c;能够满足您的需求&#x…

LeetCode225:用队列实现栈

题目描述 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 empty&#xff09;。 实现 MyStack 类&#xff1a; void push(int x) 将元素 x 压入栈顶。 int pop() 移除并返回栈顶元…