NAT总结

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介:

简介:NAT是用来解决IPV4地址不够用而提出的概念,它的作用有两个:

*解决IP地址短缺

*隐藏内网的IP,让外网的用户无法查到内网的IP,有效保护内网安全

NAT分为3中,静态NAT  动态NAT  PAT


NAT,内网地址永久的被影射为外部合法的网络地址,是一对一的,一般用于实现外网对内网中某个设备的访问。如HTTP,FTP等

如图:

wKiom1MbIS6hJ4SlAAA37hlStL4877.png

左边为内网,R1为边界Router,R1,R2之间跑RIP路由协议,HTTP 发布WEB服务,

则R1上的配置为:

全局下:    ip nat inside source static 192.168.1.1 12.0.0.1

F0/1接口下:ip  nat inside

F0/0接口下:ip nat outside

这样外部的客户就可以访问内部服务器发布的HTTP服务了。

注意:R1上不宣告192.168.1.0网段。


动态NAT:公网IP不是固定的,是随机的,公网用公网池,私网用ACL,这样就联系起来了。

注意,如果只有一个公网,则就变成PAT了。

配置和静态累死,接口下:ip  nat inside

                       ip nat outside

建立公网地址池:ip nat pool aa 12.0.0.1 12.0.0.3  netmask 255.255.255.0 假设有4个公网IP,

建立私网ACL: access-list 1 permit 192.168.1.0 0.0.0.255 私网为192.168.1.0网段。

将池和ACL联系起来: ip nat inside source list 1 pool aa.再这里可以加 overload 表示允许多个内网IP公用一个公司IP.



PAT:把内部私有IP映射到外部公网IP的不同端口上。

接口下:ip nat inside

       ip  nat outside

内部私有地址的ACL:全局   access-list 1 permit any

                 全局   ip nat inside source list 1 s0/0 overload    s0/0为公网的接口



DNAT  SNAT 这两个NAT和上述NAT不一样,常见于LINUX系统中,

DNAT :当内部需要提供对外服务时(如对外发布web网站),外部地址发起主动连接,由路由器或者防火墙上的网关接收这个连接,然后将连接转换到内部,此过程是由带有公网IP的网关替代内部服务来接收外部的连接,然后在内部做地址转换,此转换称为DNAT,主要用于内部服务对外发布

SNAT: 内部地址要访问公网上的服务时(如web访问),内部地址会主动发起连接,由路由器或者防火墙上的网关对内部地址做个地址转换,将内部地址的私有IP转换为公网的公有IP,网关的这个地址转换称为SNAT,主要用于内部共享IP访问外部。

如图:


iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j  DNAT --to-dest 10.0.0.85

上述是在linux上做的DNAT,将内部的10.0.0.85上的HTTP服务发布给外部。外部来的访问先PREROUTING。


DNAT:iptables -t nat  -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.0.250.从eth0出去的访问原地址全转换成192.168.0.250.内部出去的后POSTROUTING




本文转自 369蓝宝 51CTO博客,原文链接:http://blog.51cto.com/3739387/1370874,如需转载请自行联系原作者


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
4月前
|
传感器 人工智能 Java
通义灵码新功能体验
最近体验了通义灵码的新功能,尤其是新增的智能体模式,让AI编程助手跃升新高度。它支持自主决策、环境感知和工具利用,可从零开发应用。例如创建Spring Boot项目,只需描述需求,它便生成所需文件并提供启动建议。集成MCP工具后,能调用2400多个服务,快速定位配置文件。更新还增强了记忆能力,根据用户习惯优化响应,加入Qwen3模型提升复杂任务处理效率。此外,上下文支持工程目录和多文件选择,进一步提高重构效率。对于开发者来说,这是一次极具吸引力的升级。
|
机器学习/深度学习
R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析(下)
R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析
|
11月前
|
算法 调度 UED
深入浅出操作系统:从理论到实践
【9月更文挑战第33天】在数字世界的基石中,操作系统是不可或缺的一环。本文将带领读者从操作系统的基本原理出发,探索其设计哲学,并通过实际代码示例,深入理解操作系统如何管理资源、处理中断和异常、以及提供用户界面等关键功能。无论你是计算机科学的初学者,还是希望深化对操作系统认识的研发人员,这篇文章都将为你打开一扇通往操作系统深层世界的大门。
|
运维 安全 Devops
DevSecOps:构建无缝安全的DevOps流程
在当今数字化时代,软件开发行业面临着越来越多的安全威胁。为了应对这些威胁,传统的软件开发模式已经无法满足需求。因此,DevSecOps应运而生,旨在将安全性融入到DevOps流程中。本文将介绍DevSecOps的概念和原则,并探讨如何实现无缝安全的DevOps流程。
|
边缘计算 JSON JavaScript
一起来学 next.js - API 路由篇(轻松做全栈?)
next.js 作为最热门的 react 框架,不过这么久了好像国内使用率一直不太高。最近在研究做个小项目正好做下笔记,有兴趣的可以一起来学习。
|
存储 移动开发 Serverless
使用R语言进行时间序列(arima,指数平滑)分析(下)
使用R语言进行时间序列(arima,指数平滑)分析
|
Ubuntu jenkins 程序员
让Jenkins执行GitHub上的pipeline脚本
将Jenkins的流水线脚本保存在GitHub上,让Jenkins从GitHub下载该脚本并执行
441 0
让Jenkins执行GitHub上的pipeline脚本
|
NoSQL Linux MongoDB
centos7搭建MongoDB以及MongoDB复制集
centos7搭建MongoDB以及MongoDB复制集
239 0
|
消息中间件 Shell Linux
RabbitMQ部署指南
主要是如何部署RabbitMQ的具体步骤
|
监控 数据可视化 数据建模
软件工程之设计分析(2)
软件工程之设计分析(2)
76 0