NAT (Network Address Translations) 网络地址转换

news2024/11/15 21:29:01

数据来源

1、ipv4地址严重不够用了

        X.X.X.X X 0-255     A、B、C类可以使用    D组播     E科研

2、IP地址分为公网IP和私网IP

  • 公网IP只能在公网上使用
  • 私网IP只能在内网中使用
  • 公网上不允许出现私有IP地址
  • 私网IP可以重复在内网使用

        1)私有地址范围

                10.0.0.0/8(10开头的)

                172.16.0.0/16 - 172.31.0.0/16(172.16开头的一直到172.31开头的)

                192.1680.0/16(192.168开头的)

        2)公有地址范围

                A、B、C三类广播地址中除了私有地址其他的都是公有地址 

国际标准组织ISO定义地址分类:五大类(是以IP地址的第一位进行区分的)

  • A类:1-126       默认子网掩码: 255.0.0.0
  • B类:128-191   默认子网掩码:255.255.0.0 
  • C类:192-223   默认子网掩码:255.255.255.0 
  • D类:224-239   组播地址  
  • E类:240-254   科研使用   (国家用的)
  • 127 开头的已经被当做回环地址 比如:127.0.0.1 (本机地址)
  •  255 开头的被当做子网掩码

3、NAT主要实现公私有|P地址的转换,一般是路由器或者防火墙上来完成,不建议在三层交换机上配置

4、NAT有3大类

        1)静态NAT(1对1映射)

        适合部署内网服务器,外网访问内网的服务器

 

        2)动态NAT(淘汰了)

        3)PAT(端口地址转换,多对一)

                PAT也称为端口复用技术,内网的PC用同一个公网ip访问互联网,互联网回包给内网通过端口号区分具体PC(端口号是路由器随机更改的)

                端口号:0-65535 

路由器的工作原理 :

        数据帧内网到外网一个帧从内网到达路由器内网端口之后,路由器会判断帧头的目标MAC地址是不是自己,是解封装(拿掉帧头) 然后数据包进入路由器内部开始路由,路由完成之后这个包会被路由到出接口,如果这个接口是外网接口就会检查NAT地址表准备做NAT地址转换,这个转换会对包的源IP进行动态地址转换,然后再发出去。

        数据帧外网到内网一个帧从外网到达路由器的外网端口之后,还是判断目标MAC地址让后解封装,检查NAT地址表,准备对目标IP地址进行地址转换(转换成对应内网地址)转换完成之后路由数据到对应的接口。

        注意:无论是内网到外网还是外网到内网最后的地址转换都是在外网的端口上完成的

 5、NAT命令(路由器是先路由数据,发现出接口设置了NAT才会做NAT转换)

        1)定义内网端口

                int f0/0

                ip nat inside 

                exit

        2)定义外网端口

                int f0/1

                ip nat outside

                exit

         3)配置PAT(内到外上网使用)

                定义内部地址池

                acc 1 permit 192.168.0.0  0.0.255.255   # 将 192.168开头的ip地址加入,1号地址池内,一般要加入公司所有员工ip,不然是不会被转换成公网ip那就不能上网

                做PAT动态映射

                conf  t

                ip  nat   inside   source  list  int  f0/1 overload   # 源ip地址如果在地址池1中,就允许使用f0/1接口上的公网ip地址做替换,然后在做端口转换

        4)配置静态端口转换(外到内,一般用来部署内网服务器

                conf  t

                ip nat inside source static tcp 192.168.1.3 80  100.1.1.2 80  # 将192.168.1.3的tcp服务的80端口映射到100.1.1.2的80端口上,也就是说如果外网的人访问 100.1.1.2的80端口,就相当于访问192.168.1.3的80端口

        5)查看/删除NAT表

                sh ip nat translations  # 查看 NAT 表

                clear ip nat translation   # 清空 NAT 表 

6、实验 

模拟现实中的内外网

        1)首先给所有PC、服务器、路由器端口配置IP地址并开启端口

假设:100.1.1.1是公司买的公网IP

        配置路由器的命令:

                en                                                                                          # 进入特权模式

                conf t                                                                                     # 进入全局配置模式

                int  Fa0/x                                                                                # 进入需要配置的端口

                ip add ip地址 子网掩码(/24就是3个255,255.255.255.0) # 配置IP

                no shut                                                                                    # 开启端口

                exit                                                                                          # 退到上一级

                ip route 0.0.0.0  0.0.0.0 下一跳IP                                           # 配置默认路由

               ip route 目标网段 子网掩码 下一跳IP                                     # 配置静态路由

 注意:配置完成后,现在的内外网是无法通信的,因为外网的包发个内网的设备,内网的包出不去,因为私有的IP无法在公网中生存

         2)配置第一个路由器让内网可以访问外网(俗称:上网)

                定义内网端口

                        en                     # 进入特权模式

                        conf t                # 进入全局配置模式

                        int fa0/0           # 进入需要设置的端口

                        ip nat inside    # 将端口定义为内网端口

                        exit

                定义外网端口

                        int fa0/1            # 进入需要设置的端口

                        ip nat outside  # 将端口定义为外网端口

                        exit                   # 退到上一级

                定义内部地址池

                        acc 1 permit any   # 将所有的ip地址加入,1号地址池内

                        exit                          # 退到上一级

                做PAT动态映射

                        conf  t

                        ip  nat   inside   source  list  int  fa0/1 overload   # 源ip地址如果在地址池1中,就允许使用f0/1接口上的公网ip地址做替换,然后在做端口转换

                 测试:使用内网PC使用命令:ping 目标ip

 注意不上网对应的ip记录一会就会消失

 注意:现在只是让内网可以上网,但是外网的设备是无法访问内网的服务

 

         3)给内网ip做映射,映射到公司买的公网ip:100.1.1.2 (这个ip不用配到端口上)

        配置静态端口转换(外到内,一般用来部署内网服务器 )

                conf  t

                ip nat inside source static tcp 192.168.1.222 80  100.1.1.2 80  # 将192.168.1.222的tcp服务的80端口映射到100.1.1.2的80端口上,也就是说如果外网的人访问 100.1.1.2的80端口,就相当于访问192.168.1.222的80端口

        如果需要部署两个或更多内网服务器可以部署在同一公网ip,更改命令的端口号就行如:ip nat inside source static tcp 192.168.1.223 80  100.1.1.2 81  或部署在多个公网ip上,区别:同一个公网IP部署了多个服务器,那除了80端口的服务器,其他服务器访问时需要加端口号如:100.1.1.2:81

然后给ip为192.168.1.222的服务器部署一下网页,测试一下

简单的HTML

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>三角制作</title>
    <style>
        .box1 {
            width: 0;
            height: 0;
            border-top: 100px solid pink;
            border-right: 100px solid red;
            border-bottom: 100px solid blue;
            border-left: 100px solid green;
        }

        .box2 {
            width: 0;
            height: 0;
            line-height: 0;
            font-size: 0;
            /*                  透明色 */
            border: 50px solid transparent;
            border-left-color: pink;
            margin: 100px auto;
        }

        .jido {
            position: relative;
            width: 120px;
            height: 249px;
            background-color: pink;
        }

        .jido span {
            position: absolute;
            top: -10px;
            right: 15px;
            width: 0;
            height: 0;
            /* 为了照顾兼容性 */
            line-height: 0;
            font-size: 0;
            /*                  透明色 */
            border: 5px solid transparent;
            border-bottom-color: red;
        }
    </style>
</head>

<body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="jido">
        <span></span>
    </div>
</body>

</html>

 将上面的HTML的代码替换掉原来的代码

 使用外网的PC,在浏览器输入公司买的公网ip:100.1.1.2 测试访问内网服务器

 

 

 

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

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

相关文章

Vite+Vue3构建前端框架及模板代码及重要知识点

Vue3Vite构建步骤 用vite初始化vue项目(回车) npm create vitelatest vueVitePro -- --template vue安装配置路由vue-router npm install vue-router4 import router from ./router/index.js createApp(App).use(router).mount(#app) 安装 element-plus 及图标 npm ins…

一个PCA加速技巧

EVD-PCA PCA推导&#xff1a;PCA主成分分析法浅理解 具体数值如1030410304是我机器学习课程实验的数据集参数&#xff0c;这里关注数字量级即可。 code % EVD-PCA数据降维 % input: DN output:KN function [Z, K] EVD_PCA(X, K, weight)fprintf(Running EVD-PCA dimension…

Matplotlib学习笔记(第二章 2.13 Matplotlib中的图形(二))

路径(Paths) 你可以使用matplotlib.path模块在Matplotlib中添加任意路径&#xff1a; Fig. 6: Path Patch 三维绘图(Three-dimensional plotting) mplot3d工具包(参见see Getting started and mplot3d-examples-index))支持简单的3D图形&#xff0c;包括曲面、线框、散点图和…

【华为上机真题 2022】玩牌高手

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…

【OpenCV-Python】教程:4-5 SURF (Speeded-Up Robust Features) 介绍

OpenCV Python SURF &#xff08;Speeded-Up Robust Features&#xff09; 介绍 【目标】 SURF的基础 【理论】 SURF 是 SIFT 的提速版本&#xff1b; 在SIFT中&#xff0c;Lowe用 DoG 近似 LoG&#xff1b;SURF 走的更远一点&#xff0c;用 box filter 近似 LoG 。下图显…

文本生成公开数据集/开源工具/经典论文详细列表分享

这是一份由清华大学自然语言处理小组整理的文本生成相关的公开数据集/开源工具/经典论文列表&#xff0c;并且不断增加论文和持续修改名单&#xff0c;分享给大家。 源链接&#xff1a;https://github.com/THUNLP-MT/TG-Reading-List 目录 数据集 故事生成 文本生成 工具 经典…

开关电源环路稳定性分析(06)-功率级和控制级

大家好&#xff0c;这里是大话硬件。 根据上一篇文章的分析&#xff0c;开关电源系统主要分为3个部分&#xff0c;功率级&#xff0c;控制级&#xff0c;反馈级。今天这篇文章我们分析功率级和控制级的传递函数。 1.功率级传递函数 从功能框图上可以看出来&#xff0c;功率…

教材征订和下发系统

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

Spring Cloud Alibaba Nacos Config - - - >配置中心

官方文档&#xff1a;https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config 市面上比较有名的配置中心&#xff1a; Spring Cloud ConfigApolloSpring Cloud Alibaba Nacos Config Spring Cloud Config 大部分场景结合 git 使用&#xff0c;动态变更还需要依赖…

Python获取世界杯热搜榜,并制作脚本自动发送信息到邮箱

前言 现在正是卡塔尔世界杯激战正酣的时候&#xff0c;每天都有各种各样的新闻。而且&#xff0c;不同的球队&#xff0c;随着比赛的进程&#xff0c;关注的热度也会发生翻天覆地的变化。 今天我们就来获取卡塔尔世界的球队热搜榜&#xff0c;并制作自动发送邮件脚本&#xff…

深度优先搜索(DFS)剪枝:记忆化搜索(C++)

目录 一、基本思想 二、样例 三、程序 1、普通的深度优先搜索 2、分析 3、记忆化搜索 程序 四、实际速度样例 一、基本思想 今天我们来讲一下深搜的剪枝方法中的一个&#xff1a;记忆化搜索。 顾名思义&#xff0c;记忆化搜索就是让程序记住一些东西&#xff0c;然后可以…

Stimulsoft Dashboards.JS JavaScript 2203.1.0仪表板

Stimulsoft Dashboards.JS--Ω578867473 Dashboards.JS 是一个功能齐全的工具&#xff0c;用于为 JavaScript 平台创建仪表板。 JavaScript 仪表板 Dashboards.JS 是一个功能齐全的工具&#xff0c;用于为 JavaScript 平台创建仪表板。要生成和查看仪表板&#xff0c;您需要任何…

Qt扫盲-QAbstractButton 笔记总结

QAbstractButton使用总结一、概要1.显示内容2. 快捷键3. 对话框默认按钮4. 按钮状态5. 信号说明6. 自定义按钮QAbstractButton 类实现的是一个抽象按钮。主要是Button类具有的共性&#xff0c;但是处理用户的操作响应、并绘制不同按钮的形式是由子类来完成的。一、概要 QAbstr…

图文深度解析Linux内存碎片整理实现机制以及源码

图文深度解析Linux内存碎片整理实现机制以及源码。 物理内存是以页为单位进行管理的,每个内存页大小默认是4K(大页除外)。申请物理内存时,一般都是按顺序分配的,但释放内存的行为是随机的。随着系统运行时间变长后,将会出现以下情况: 在多道程序当中,如果要让我们的程…

深度解析车载域控制器

文章目录域控制器域控制器的组成ADAS域控制器智能座舱域HUD仪表盘IVI域控制器的发展域控制器对传统ECU的挑战域控制器 ​ 随着车辆的信息化程度的发展&#xff0c;车辆的ECU也越来越多&#xff0c;从引擎控制、转向助力、仪表、影音等&#xff0c;传统的汽车电子电气架构是分布…

基于Intel® Core™ i5 机器人控制器

XM-6815是一款基于Intel 11代酷睿i系列平台CPU壁挂式电脑&#xff0c;扩展内存槽&#xff0c;1mSATA&#xff0c;3千兆网口&#xff0c;6COM&#xff0c;4USB 3.0&#xff0c;4USB 2.0。该产品适合工业机器人控制器、机器视觉控制器等壁挂安装应用场景. 产品规格 产品类型Inte…

阿里巴巴内部不传之秘「十亿级并发系统顶级教程」GitHub一夜封神

何为超大流量&#xff1f; 超大流量是一个很容易理解的意思!举个例子&#xff1a;现在国内疫情反弹&#xff0c;每个小区都要做核酸那么如果同一时间下来一大批人一起做核酸&#xff0c;那么这就是大流量&#xff0c;然后志愿者将人员进行分配排队让医务人员处理的过来那么这就…

Qt5.6.1移植海思Hi3521d(二)

系列文章目录 Qt5.6.1移植海思Hi3521d&#xff08;一&#xff09; 前言 该篇讲解一下&#xff0c;使用海思交叉编译器arm-hisiv500-linux-gcc&#xff0c;编译qt5.6源码&#xff0c;搭建qt交叉编译环境 一、修改qmake.conf 打开文件~/Project/qt-everywhere-opensource-src-5…

Python制作简易版烟花,没资金买烟花就来做个电子版的吧

前言 听说有人说我很久没更新了&#xff0c;那今天来表演个粒子烟花 跨年倒计时20天&#xff1f;我已经开始整烟花了&#xff0c;虽然不是很好看吧&#xff0c;但是也能将就看看 &#x1f625; 这个的背景图&#xff0c;音乐&#xff0c;还有文字都是可以自己修改的哦 效果…

[附源码]JAVA毕业设计-心理健康管理-(系统+LW)

[附源码]JAVA毕业设计-心理健康管理-&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&a…