TCP/IP之胡说八道NAT

百般思念 提交于 2020-04-17 23:52:14
  1. 网络早期

    • 早期的网络硬件软件和协议是由来自五湖四海的学者一起研究讨论的。跟linux类似。

    • 早期的时候都想着怎么设计,先实现嘛,所以没有考虑过安全问题,和抗攻击问题。也没什么人对网络攻击有兴趣。

    • 到了上世纪80年代末,90年代初,网络广泛使用,收获了大量多的用户。这时候通讯就不得不考虑安全问题了。中间经过了多少台机器什么机器不知道,很容易被篡改攻击嘛。

    • 为了安全问题就有了防火墙这样一个需求了。防火墙出现的主要原因还是使用网络的设备抗攻击能力不强,所以就找个大哥防火墙来一个人扛住所有的攻击。建了一个墙嘛,fire wall吸引火力的墙。

    • 墙内的系统内,各种各样,windows,linux,unix,各种各样的无系统的硬件,各种各样的老弱病残,自身系统和软件的漏洞。很容易被攻击,不可能都修复吧。有的系统可能开发者都不更新,或者是解散了。然后就需要一个专门来吸引火力的软件或硬件

    • 防火墙是一个过滤包的网络设备,可以是四层操作系统,底层硬件接口抓包,应用层软件分析包,看看哪些放行哪些该丢掉。放行的还要转发,转发就是路由器或代理的事情了。所以防火墙是一个路由设备或者是代理设备。

    • 安全问题解决了,但是随着使用的人越来越多,IP又不够了呀,有得解决IP枯竭的问题。提高现有IP的利用率。如何分配和使用IP就成了新的问题。

    • 研究得出一个解决的策略就是NATNetwork Address Translation:网络地址翻译软件,提高IP的利用率。

    • 怎么提升呢?传输层协议不是有一个端口吗,端口65535,那么多一台主机又用不完,多个人一起用咯。这样IPv4就多出了2^(32+16)-2^32次方个可用电脑(如果一个电脑使用一个端口的话,当然可能,但是还是比之前一台电脑一个要好的多吧。)。这样做的代价就是,电脑使用的IP不再是全球唯一了。现在公网固定IP那么贵,一个人用一个,想peach?

    • 具体的就是,路由器一个公网IP,路由器内部建立一个子网,网络中的所有的设备的发送的包的源IP都改成当前路由器的公网IP,然后再发出去。但是端口号会改变。怎么说内就是用映射来管理。

    • 这样结构的一张映射表。 在这里插入图片描述

        **出去要改IP和端口,回来再通过IP端口和协议到表中查找,修改回来。神不知鬼不觉。不过同一个网络的主机百度自己的IP会发现是一样的。**
      
    • 现在NAT+防火墙这种模型在大型企业到小型个人都得到了广泛的使用。现在几乎处处都是。

  2. 防火墙

    • 主要任务就是包过滤
    • 主要有两种防火墙,包过滤防火墙和代理防火墙 包过滤防火墙发生在IP层,这种就像是路由器。 代理防火墙发生在传输层和应用层,针对某种传输协议。这种就像是VPN。
  3. 包过滤防火墙

    • 设置规则,放行或者拦截某些数据包
    • 针对IP层的过滤:黑白名单
    • 针对传输层的过滤:只准访问某些端口,以外的都丢掉。
    • 针对IP层的ICMP的嗅探
    • 针对内容的关键字过滤
      • 无状态

        以一个包为单位进行过滤,可能对IP协议以上的数据进行检测。
      • 有状态

        以UDP完整报文,TCP流为单位进行,何种处理起来比较复杂。 比如UDP恶意的错误数据,还有TCP的脏话检测呀啥的,等等等等。
    • 一种典型的包过滤是DMZ模型
  4. 代理防火墙

    主要是应用层,有的人认为这种比较安全。也有人认为这种比较复杂,针对每一种协议要实现对应协议的代理服务细节。
  5. NAT

    早期主要目的用来应对IP资源枯竭以及提高路由的可扩展性。路由的可扩展性后来被另一种策略CIDR解决了。 当然还有一种是说法是为了延迟IPv6的推广,IPv6要难一些? ==一个比较明显的确定就是,外网不能主动连接NAT内部的主机==
    • 首先NAT是一个面向连接的,一个连接一个NAT session,当链接断开或者是过期就会去掉NAT session

    • 那么为什么外部不能访问呢,因为NAT技术是以内部发起请求为准,内部发起了请求才会创建一个Session,如果不创建就没有,那么非法的那种肯定是被丢弃的。

    • 当然NAT也提供了一种静态映射的方式来允许外部访问某一个,这种需要管理员配置。

    • NATNAPT 前者是IP之间动态映射,后者是针对端口的,常常使用的也是后者。 在这里插入图片描述

      大概的可以看到两者的差别,前者是端口IP不变的映射,后者是端口会变,后者IP利用率更高。两者的针对性不同,一个是针对端口,一个是针对IP,结合起来使用还是可以的。比如一个公司有一个网段的IP,那么NAT就可以有用了。但是针对某个寝室或者可能就只需要NAPT了。两者针对不同,都是提高路由和IP的利用率。


乱讲的,仅供参考。未完待续。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!