专栏首页HACK学习防火墙技术之---NAT(一)

防火墙技术之---NAT(一)

相信很多小伙伴看到过Vm虚拟机以及其他虚拟化软件都是有NAT网络模式的,那到底什么是NAT呢?

NAT(网络地址转换)是一种救世主的身份来到尘世的,是在internet大规模急速增长的今天为了解决IPv4地址枯竭而被提出来,甚至得到了大规模的应用。我们也知道IPv4设计之初并没有想到internet的发展会如此迅猛,32位的IPv4地址资源远远不能满足未来的需求,加之地址资源分配不均,绝大多数的地址被一些少数国家所垄断,那么像中国这样的泱泱大国就更需像NAT这样的技术,所以NAT的流行便可以理解了。

之所以将NAT也归属到防火墙技术的原因在于NAT所扮演的角色,NAT将网络在网关处划分为公网和私网两部分,对外屏蔽私网的结构,地址等,对内私网用户可以复用私网地址,这样其实NAT不自然的充当了防火墙的角色。我们知道NAT是一种地址转换技术,它最大特点就是复用私网地址进而节省地址资源,另一方面NAT用来分割内外网的一道防线。

RFC1918定义的私网地址:

A类 10.0.0.0 - 10.255.255.255 一个A类地址

B类 172.16.0.0 - 172.31.255.255 十六个B类

C类 192.168.0.0 - 192.168.255.255 二百五十六个C类

综上所述,NAT技术主要有如下两个优点:

1.复用私网地址从而节约了IP地址

2.对外隐藏了网络的内部结构

但是NAT也带来了一些其它方面的缺点:

1.在执行NAT时,地址转换设备在数据流中引入了延迟,NAT设备必须改变数据包中的地址信息并重新计算校验和

2.地址转换设备支持越多的转换,越会给设备增加更大的负载,对转发性能也有一些影响

3.隐藏了私网地址使得网络排错更加困难

4.有些应用在有效载荷之中嵌入了地址信息,使得NAT无法转换载荷内部的地址信息造成通信失败

纵然NAT有以上种种的缺陷,但比起它的优点人们宁愿采取一定的措施来规避而非放弃使用NAT,因为NAT实在是众望所归,一提出来就被大范围的使用.

本文分享自微信公众号 - HACK学习呀(Hacker1961X)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-05-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【漏洞预警】S2-057远程代码执行

    Struts2是apache项目下的一个web 框架,普遍应用于阿里巴巴、京东等互联网、政府、企业门户网站。

    HACK学习
  • 浅谈PowerShell在渗透测试中的应用

    Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。

    HACK学习
  • Weblogic渗透测试指南

    WebLogic是美商Oracle的主要产品之一,系购并得来。是商业市场上主要的Java(J2EE)应用服务器软件(application server)之一,...

    HACK学习
  • 春节充电系列:李宏毅2017机器学习课程学习笔记20之支持向量机(support vector machine)

    【导读】我们在上一节的内容中已经为大家介绍了台大李宏毅老师的机器学习课程的迁移学习(transfer learning),这一节将主要针对讨论支持向量机(sup...

    WZEARW
  • INTERFACE | 从技术到产品,搜狗为我们解读了神经机器翻译的现状

    INTERFACE 分享者:陈伟、李健涛 机器之心报道 参与:李泽南 3 月 12 日,搜狗正式在线上平台发布了「旅行翻译宝」。这款随身翻译设备结合了搜狗神经...

    机器之心
  • 干货——详解Java中的关键字

    在平时编码中,我们可能只注意了这些static,final,volatile等关键字的使用,忽略了他们的细节,更深层次的意义。

    Janti
  • SpringCloud:Eureka服务注册与发现

    Eureka 其实就是一个 服务注册与发现的中心,也就是相当于我们前面做的一些生产者的服务需要注册到我们的注册中心,那么我们的消费者就不用把代码写死,而是可以去...

    lwen
  • springCloud - 第10篇 - 服务间调用追踪 (zipkin 的使用)

    springcloud 集成了 zipkin 来实现对于不同服务调用的追踪和统计。

    微风-- 轻许--
  • 厚土Go学习笔记 | 06. 变量

    用var语句可以定义一个变量列表。 var c, python, java bool 变量类型要写在最后面。 变量可以定义在函数内,也可以与函数一样定义在包内。...

    李海彬
  • SpringCloud Sleuth入门介绍

    案例代码:https://github.com/q279583842q/springcloud-e-book

    用户4919348

扫码关注云+社区

领取腾讯云代金券