防火墙和NAT

引言

随着网络技术的不断普及和发展,逐渐涌现出两个重要的问题:

  • 网络中流量的安全性问题
  • 网络地址资源的枯竭

第一个问题的解决方法是由防火墙功能的路由器的产生,而网络地址转换(NAT)使得互联网的地址不再需要是全球唯一的。

由NAT和防火墙相结合的复合设备,成为连接终端用户的最常见的路由器类型。

防护墙

防火墙分为两种,包过滤防火墙和代理防火墙。主要区别:所操作的协议栈层次

包过滤防火墙

一般作为互联网的路由器,能够过滤一些认为是威胁的网络流量。这样的路由器通常将网络分为三个部分:

  • 内部网络:需要保护的网络
  • 外部网络:Internet
  • DMZ 非军事区 :需要向外提供服务的网络。

网管会在路由器配置ACL(访问控制列表)来过滤一些流量。通常全力拦截来及外网的恶意流量,而不会限制从内网到外网的流量。

有状态防火墙和无状态防火墙

通常简单的防火墙是无状态的,它分别处理一个一个的数据包,但是更加复杂的防火墙是有状态的。它会关联已经到达的一系列数据包,分析流的特性,因此它是有状态的。有状态的防火墙是一个十分重要的课题。

代理防火墙

这种防火墙不算做路由器。相反,它本质上是运行一个或者多个应用层网关(ALG)的主机,它们不会像路由器一样作IP转发。它的运作原理:

  • 代理防火墙服务器在外部拥有一个全局路由的IP地址,在内部使用一个私有地址。
  • 所以需要访问外部网络的本地客户机并不直接与外部服务器连接,而是间接连接到代理防火墙。
  • 代理防火墙在外作为客户机,对内作为服务器。

网络地址转换NAT

NAT的本质是一种允许在互联网的不同地方重复使用相同IP地址集合的机制。

一个笑话:伴随的IPv4地址的快速枯竭,人们焦急万分下提出了IPv6计划,并逐步发展和实施。于此同时,提出NAT作为一种临时的措施,在IPv6到来前作为一种缓解危机的技术。然而有趣的是,NAT的发展很好的解决的IPv4地址枯竭的问题,并严重阻碍了IPv6的发展。

NAT的基本原理:NAT的两端是Internet和内部网络,NAT设备拥有一个全局网络的IP地址,内部客户机只拥有私有地址。NAT设备(通常是路由器)重写前往Internet方向的数据包的源IP地址,并重写来自Internet的数据包的目的IP地址。NAT不像传统的路由器,它需要跟踪每一个连接,其操作贯穿多个网络层次。例如,修改IP地址也需要修改传输层的校验码。

NAT违背了网络设计原则:“智能边缘“和”哑巴中间“。

NAPT

传统的NAT只修改IP地址,但这种NAT不是最为流行的,NAPT同时使用IP和端口来确定一个特定的数据包到底来自哪一个内部主机(因为传统NAT不同的内部主机使用同一个IP与外部服务关联,当使用同一个端口时没法作有效的区分)。NAPT会同时修改IP地址和端口,防止了传统NAT造成的端口冲突。

NAT穿越

NAT虽然解决的IP地址资源的问题,但是使得家庭网络对外提供服务变得非常的困难。因为内部很多主机使用同一个IP地址。需要用到NAT穿越技术。NAT穿越是一个复杂的课题,这里只做部分简单介绍:

NAT穿越的本质是获得位于NAT设备后面的主机对外的IP地址和端口。

打孔(打洞) : 两个位于NAT背后的主机,都访问一个外部的服务器,服务器通过会话得知了它们的各自对外的IP和端口,同时方便两者建立连接。

自地址的确定:通过外部服务器的方法是有局限性的,在多层次NAT中是无效的。STUN作为一种NAT对话穿越工具,可以找出自己的公网地址和端口。

猜测国内"花生壳"

花生壳是先打洞,打洞不成功就使用代理转发。

花生壳会给用户A(内网主机)一个域名。

  • 其它主机访问该域名,首先访问公网DNS,公网DNS访问花生壳DNS,花生壳DNS返回给用户花生壳转发服务器的IP地址。
  • 客户机不知道,只是将花生壳转发服务器作为主机A,发送请求。
  • 花生壳服务器转发请求到内网主机。并将其回复转发给客户机。所以重点是花生壳服务器如何知道主机A在公网上的地址。在配置花生壳映射的时候,我们会在本地访问花生壳网站,这个时候花生壳就能知道我们所使用的公网IP了,即花生壳有能力将数据包转发到本地内网某台主机上(也只是猜测而已)。

你可能感兴趣的:(防火墙和NAT)