NAT & 防火墙
NAT 网络地址转换
NAT产生背景
今天,无数快乐的互联网用户在尽情享受Internet带来的乐趣。他们浏览新闻,搜索资料,下载软件,广交新朋,分享信息,甚至于足不出户获取一切日用所需。企业利用互联网发布信息,传递资料和订单,提供技术支持,完成日常办公。然而,Internet在给亿万用户带来便利的同时,自身却面临一个致命的问题:构建这个无所不能的Internet的基础IPv4协议已经不能再提供新的网络地址了 。
2011年2月3日中国农历新年, IANA对外宣布:IPv4地址空间最后5个地址块已经被分配给下属的5个地区委员会。2011年4月15日,亚太区委员会APNIC对外宣布,除了个别保留地址外,本区域所有的IPv4地址基本耗尽。一时之间,IPv4地址作为一种濒危资源身价陡增,各大网络公司出巨资收购剩余的空闲地址。其实,IPv4地址不足问题已不是新问题,早在20年以前,IPv4地址即将耗尽的问题就已经摆在Internet先驱们面前。这不禁让我们想去了解,是什么技术使这一危机延缓了尽20年。
要找到问题的答案,让我们先来简略回顾一下IPv4协议。
IPv4即网际网协议第4版 ——Internet Protocol Version 4的缩写。IPv4定义一个跨越异种网络互连的超级网,它为每个网际网的节点分配全球唯一IP地址。如果我们把Internet比作一个邮政系统,那么IP地址的作用就等同于包含城市、街区、门牌编号在内的完整地址。IPv4使用32bits整数表达一个地址,地址最大范围就是232 约为43亿。以IP创始时期可被联网的设备来看,这样的一个空间已经很大,很难被短时间用完。然而,事实远远超出人们的设想,计算机网络在此后的几十年里迅速壮大,网络终端数量呈爆炸性增长。
更为糟糕的是,为了路由和管理方便,43亿的地址空间被按照不同前缀长度划分为A,B,C,D类地址网络和保留地址。其中,A类网络地址127段,每段包括主机地址约1678万个。B类网络地址16384段,每段包括65536个主机地址。ANA向超大型企业/组织分配A类网络地址,一次一段。向中型企业或教育机构分配B类网络地址,一次一段。这样一种分配策略使得IP地址浪费很严重,很多被分配出去的地址没有真实被利用,地址消耗很快。以至于二十世纪90年代初,网络专家们意识到,这样大手大脚下去,IPv4地址很快就要耗光了。于是,人们开始考虑IPv4的替代方案,同时采取一系列的措施来减缓IPv4地址的消耗。正是在这样一个背景之下,本期的主角闪亮登场,它就是网络地址转换——NAT 。
NAT是一项神奇的技术,说它神奇在于它的出现几乎使IPv4起死回生。在IPv4已经被认为行将结束历史使命之后近20年时间里,人们几乎忘了IPv4的地址空间即将耗尽这样一个事实——在新技术日新月异的时代,20年可算一段漫长的历史。更不用说,在NAT产生以后,网络终端的数量呈加速上升趋势,对IP地址的需求剧烈增加。此足见NAT技术之成功,影响之深远。
说它神奇,更因为NAT给IP网络模型带来了深远影响,其身影遍布网络每个角落。根据一份最近的研究报告,70%的P2P用户位于NAT网关以内。因为P2P主要运行在终端用户的个人电脑之上,这个数字意味着大多数PC通过NAT网关连接到Internet。如果加上2G和3G方式联网的智能手机等移动终端,在NAT网关之后的用户远远超过这个比例。
进行地址转换的原因
合法的IP地址资源即将耗尽。
通过NAT技术将私网地址转换为公网地址,这样既可保证网络互通,又节省了公网地址。
地址转换技术可以有效地隐藏内部局域网中的主机,具有一定的安全保护作用。
NAT工作原理和特点
NAT名字很准确,网络地址转换,就是替换IP报文头部的地址信息。NAT通常部署在一个组织的网络出口位置,通过将内部网络IP地址替换为出口的IP地址提供公网可达性和上层协议的连接能力。那么,什么是内部网络IP地址 ?
RFC1918规定了三个保留地址段落:
A类:10.0.0.0 ~ 10.255.255.255
B类:172.16.0.0 ~ 172.31.255.255
C类:192.168.0.0 ~ 192.168.255.255
这三个范围分别处于A,B,C类的地址段,不向特定的用户分配,被IANA作为私有地址保留。这些地址可以在任何组织或企业内部使用,和其他Internet地址的区别就是,仅能在内部使用,不能作为全球路由地址。这就是说,出了组织的管理范围这些地址就不再有意义,无论是作为源地址,还是目的地址。对于一个封闭的组织,如果其网络不连接到Internet,就可以使用这些地址而不用向IANA提出申请,而在内部的路由管理和报文传递方式与其他网络没有差异。
对于有Internet访问需求而内部又使用私有地址的网络,就要在组织的出口位置部署NAT网关,在报文离开私网进入Internet时,将源IP替换为公网地址,通常是出口设备的接口地址 。一个对外的访问请求在到达目标以后,表现为由本组织出口设备发起,因此被请求的服务端可将响应由Internet发回出口网关。出口网关再将目的地址替换为私网的源主机地址,发回内部 。这样一次由私网主机向公网服务端的请求和响应就在通信两端均无感知的情况下完成了。依据这种模型,数量庞大的内网主机就不再需要公有IP地址了。
NAT的转换示意图如下所示
网络被分为私网和公网两个部分,NAT网关设置在私网到公网的路由出口位置,双向流量必须都要经过NAT网关。
网络访问只能先由私网侧发起,公网无法主动访问私网主机;
NAT网关在两个访问方向上完成两次地址的转换或翻译,出方向做源信息替换,入方向做目的信息替换;
NAT网关的存在对通信双方是保持透明的;
NAT网关为了实现双向翻译的功能,需要维护一张关联表,把会话的信息保存下来。
NAT类型
静态NAT
内部本地地址一对一转换成公网IP地址 ,相当内部本地的每一台PC都绑定了一个公网IP地址 ,即使这个地址没有被使用,其他的电脑也不能拿来转换使用,这样容易造成IP地址的资源浪费。
一般是用于在内网中对外提供服务的服务器,例如WEB,FTP等,需要建立服务器内部地址到固定合法地址的静态映射。
配置静态NAT
1. 配置 tinside local address和 inside global address的静态转换表
Router(config)#ip nat inside source static local-ip global-ip
2. 标记端口连接内网
Router(config-if)#ip nat inside
3. 标记端口连接外网
Router(config-if)#ip nat outside
动态NAT
顾名思义,动态地址转换 就是在内部本地地址转换的时候,在地址池中选择一个空闲的没有正在被使用的地址来进行转换,一般选择的是在地址池定义中排在前面的地址,当数据传输或者访问完成时就会放回地址池中,以供内部本地的其他主机使用,但是,如果这个地址正在被使用的时候,是不能被另外的主机拿来进行地址转换的。
在地址转换设备上手动定义两个地址集,一个允许转换的内部地址集 ,一个外部地址集 ,转换设备动态的实现地址映射
动态地址转换只能提供一对一 的转换
适用于内部用户访问外部资源 时,以及适用于租用的地址数量较多的情况
配置动态NAT
1. 定义一个P地址池
Router(config)# ip nat pool地址池名 公网起始地址 公网结束地址 netmask 子网掩码
2. 定义一个标准的访问控制列表,只有和这个列表匹配的地址才会进行NAT转换
Router(config)# access-list表号 permit地址 反子网掩码
3. 定义动态NAT,把和列表匹配的内部本地地址,用地址池中的地址建立NAT映射
Router(config)# ip nat inside source list ACL表号 pool 地址池名字
4. 标记网络的内部和外部接
Router(config)# ip nat (inside | outside)
端口地址转换PAT
这是最常用的NAT类型 。它利用源端口将多个私网ip地址映射到一个公网ip地址(多对一) 。那么,它的独特之处何在呢?它也被称为端口地址特换(PAT)。通过使用PAT(NAT重载),只需使用一个公网ip地址,就可将数千名用户连接到因特网。其核心之处就在于利用端口号实现公网和私网的转换。面对私网内部数量庞大的主机,如果NAT只进行IP地址的简单替换,就会产生一个问题:当有多个内部主机去访问同一个服务器时,从返回的信息不足以区分响应应该转发到哪个内部主机。此时,需要NAT设备根据传输层信息或其他上层协议去区分不同的会话,并且可能要对上层协议的标识进行转换,比如TCP或UDP端口号。这样NAT网关就可以将不同的内部连接访问映射到同一公网IP的不同传输层端口,通过这种方式实现公网IP的复用和解复用。这种方式也被称为端口转换PAT、NAPT或IP伪装,但更多时候直接被称为NAT,因为它是最典型的一种应用模式。
PAT,端口地址转换,也称为端口复用技术
多个本地地址使用相同的全局地址进行转换,通过不同的端口号来区分 不同的连接
提供多对一 的转换
适用于地址数很少,多个用户需要同时访问互联网 的情况
NAT优缺点
参考博文:
https://blog.csdn.net/gui951753/article/details/79593307
https://www.cnblogs.com/pacifist/p/11562268.html
防火墙
防火墙概述
防火墙的定义
- 是一款具备安全防护功能 的网络设备
防火墙的本质
- 隔离网络 :将需要保护的网络与不可信任网络 进行隔离 ,隐藏并进行安全防护
防火墙基本功能
访问控制
攻击防护
冗余设计
路由交换
日志记录
虚拟专网VPN
NAT
防火墙区域概念
内部区域
DMZ区域:称为“隔离区”,也称“非军事化区/停火区
外部区域
防火墙分类
按防火墙形态
软件防火墙
硬件防火墙
按技术实现
包过滤防火墙
状态检测包过滤防火墙
应用(代理)防火墙
WAF防火墙
应用层防火墙
防火墙的历史
各类防火墙介绍
包过滤防火墙介绍
也叫分组过滤 防火墙(packet Filtering)
根据分组包的源、目的地址,端口号及协议类型、标志位 确定是否允许分组包通过
所根据的信息来源于IP、ICMP、TCP或UDP等协议的数据包头
优点 :高效、透明
缺点 :对管理员要求高、处理信息能力有限
应用网关型防火墙介绍
也就是应用代理防火墙
每个代理需要一个不同的应用进程 ,或一个后台运行 的服务程序
对每个新的应用必须添加针对此应用的服务程序,否则不能使用该服务
优点 :安全性高,检测内容
缺点 :连接性能差、可伸缩性差
状态检测防火墙介绍
从传统包过滤发展过来,除了包过滤检测的特性外,对网络连接设置状态加以检测
优点:
减少检查工作量,提高效率
连接状态可以简化规则的设置
缺点:对应用层检测不够深入
衡量防火墙性能的5大指标
吞吐量:在不丢包的情况下,单位时间内通过的数据包数量
时延:数据包第一个比特进入防火墙到最后一比特从防火墙输出的时间间隔
丟包率:通过防火墙传送时所丢失数据包数量占所发送数据包的比率
并发连接数:防火墙能够同时处理的点对点连接的最大数目
新建连接数:在不丟包的情况下,每秒可以建立的最大连接数
防火墙的典型应用
标准应用
1.透明模式2.路由模式3.混杂模式
标准应用 — 透明模式
透明模式/桥模式,一般用于用户网络已经建设完毕 ,网络功能 基本已经实现 的情况下,用户需要加装防火墙以实现
安全区域隔离的要求
标准应用 — 路由∧NAT模式
路由/NAT模式,一般用于防火墙当作路由器 和NAT设备 连接上网的同时,提供安全过滤功能
标准应用 — 混杂模式
一般网络情况为透明模式和路由模式的混合
防火墙策略分析
- 最安全的防火墙架构
NAT & 防火墙的更多相关文章
- 转发 通过NAT和防火墙特性和TCP穿透的测评(翻译)
转自 http://blog.csdn.net/sjin_1314/article/details/18178329 原文:Characterization and Measurement of TC ...
- SIP穿越NAT SIP穿越防火墙-SBC
FireWall&NAT FireWall是一种被动网络安全防卫技术,位于网络的边界.在两个网络之间运行訪问控制策略.防止外部网络对内部信息资源的非法訪问,也能够阻止特定信息从内部网络被非法输 ...
- LB负载均衡集群及NAT模式配置
一.LB(load balance)负载均衡集群 负载均衡集群常用的有: 1.软件实现的 nginx(工作在OSI第七层应用层) lvs+keepalived(工作在OSI第四层传输层) 2.硬件实现 ...
- 初探LVS NAT与DR
1. LB.LVS介绍LB集群是load balance 集群的简写,翻译成中文就是负载均衡集群 LVS是一个实现负载均衡集群的开源软件项目 LVS架构从逻辑上可分为调度层(Director).ser ...
- iptables nat及端口映射
iptables nat及端口映射 发布: 2010-6-11 15:05 | 作者: admin | 来源: SF NetWork 门户网站 iptables 应用初探(nat+三层访问控制) ip ...
- CentOS 7 NAT模式LVS搭建
NAT模式下 , 调度器需要有两个IP , 一个公网IP一个内网IP , web服务器只需要内网IP 调度器LB : 192.168.94.11(内网IP) 192.168.29.11 (仅主机模式 ...
- NAT资料
第1章 NAT 1.1 NAT概述 1990年代中期,NAT是作为一种解决IPv4地址短缺以避免保留IP地址困难的方案而流行起来的.网络地址转换在很多国家都有很广泛的使用.所以NAT就成了家庭和小型办 ...
- 负载均衡集群相关、LVS介绍、LVS调度算法、LVS NAT模式搭建
1.负载均衡集群相关 2.LVS的三种模式:NAT.DR .IP tunnel 3. LVS的调度算法(共有8种) 4.LVS NAT模式搭建准备条件: 在分发服务器上安装:yum install ...
- 负载均衡集群介绍 LVS介绍 LVS调度算法 LVS NAT模式搭建
LVS BAT模式搭建 更改主机名: hostnamectl set-hostname centos7-three bash 准备工作 • 三台机器 • 分发器,也叫调度器(简写为dir) • 内网: ...
随机推荐
- Django边学边记—视图
一. url (一)配置 在项目/settings.py中通过ROOT_URLCONF指定url配置 ROOT_URLCONF = 'XXXX.urls' 打开 项目/urls.py 配置 (二)语法 ...
- 使用Jmeter过程中遇到的问题
学习接口自动化测试框架或工具,UI自动化测试框架或工具,有时会觉得知识似乎比较零散,死记硬背不是一个好方法.一个学习的思路是思考使用这些框架或工具的时候,可能会遇到什么问题,遇到这些问题可以通过什么方 ...
- 定要过python二级 第三套
第一模块 基础操作(共三道题) 1. 安装python 包 我在c 盘打开 但是它给我安装到了d盘得 anaconda3 下面 关键是 我在c盘 打开python .exe 创建 ...
- Nresource服务之接口缓存化
1. 背景 Nresource服务日均4.5亿流量,考虑到未来流量急增场景,我们打算对大流量接口进行缓存化处理:根据服务管理平台数据统计显示getUsableResoureCount接口调用量很大,接 ...
- CF280D-k-Maximum Subsequence Sum【模拟费用流,线段树】
正题 题目链接:https://www.luogu.com.cn/problem/CF280D 题目大意 一个长度为\(n\)的序列,\(m\)次操作 修改一个数 询问一个区间中选出\(k\)段不交子 ...
- Go语言之Goroutine与信道、异常处理
一.Goroutine Go 协程可以看做成一个轻量级的线程,Go 协程相比于线程的优势: Goroutine 的成本更低大小只有 2 kb 左右,线程有几个兆. Goroutine 会复用线程,比如 ...
- Go语言核心36讲(Go语言基础知识二)--学习笔记
02 | 命令源码文件 我们已经知道,环境变量 GOPATH 指向的是一个或多个工作区,每个工作区中都会有以代码包为基本组织形式的源码文件. 这里的源码文件又分为三种,即:命令源码文件.库源码文件和测 ...
- Java基础之(四):使用IDEA实现HelloWorld
使用IDEA实现HelloWorld 在使用IDEA这个集成开发环境写Java程序之前,我们要先对IDEA进行一些基本的配置,以便我们能够更好地使用它. 新建一个空项目,用来学习基础语法 设置项目名称 ...
- MC-BE基岩版服务器搭建与日常维护
有部分内容被csdn和谐,强烈建议移步我的个人博客以获得更好的排版和阅读体验: xzajyjs.cn. 目录 环境搭建 开始部署 日常维护 服务器的白名单机制 定时备份 服务器升级 服务器模组安装 搭 ...
- C语言中while 语句
while的执行顺序 while 循环的执行顺序非常简单,它的格式是: while (表达式) { 语句: } 概念:当表达式为真,则执行下面的语句:语句执行完之后再判断表达式是否为真,如果为真,再次 ...