目录
NAT分类
黑洞路由
Server-map 表
NAT分类
在内外网的边界,流量有出,入两个方向,所以NAT技术包含源地址转换和目的地址转换
一般情况下,源地址转换主要解决内部局域网计算机访问internet的场景;而目标地址转换主要于解决Internet用户访问局域网服务器的场景。
源地址转换主要有以下几类
NAT NO-PAT 类似于CIsco的动态转换,只转换源IP,不转换端口。属于多对多转换。不能节省公网IP地址。
NAPT 类似于思科的PAT转换,NAPT即转换报文的源地址,又转换源端口。转换后的地址不能是外网接口IP地址。属于多对多或多对一转换,可以节约IP地址,使用场景较多。
出接口地址:因其转换方式非常简单,所以也称为Easy-IP,和NAPT一样,既转换源IP地址,又转换源端口。区别是出接口地址方式转换后的地址只能是NAT设备外网接口所配置的IP地址,属于多对一转换,可以节约IP地址。
Smart NAT(智能转换):通过预留一个公网地址进行NAPT转换,而其他的公网地址用来进行NAT No-PAT转换。
三元组NAT:与源IP地址、源端口和协议类型有关的一种转换,将源IP地址和源端口转换为固定公网IP地址和端口,能解决一些特殊应用在普通NAT中无法实现的问题。
三元组NAT:与源IP地址、源端口和协议类型有关的一种转换,将源IP地址和源端口转换为固定公网IP地址和端口,能解决一些特殊应用在普通NAT中无法实现的问题。
黑洞路由
在NAT源地址转换和目的地转换。会产生路由环路和无效ARP报文,这时通过配置黑洞路由可以解决
NAT 类型 |
描述 |
是否配置黑洞路由 |
NAT-No-PAT |
当公网用户访问转换后的地址时产生环路或产生ARP报文 |
是 |
NAPT |
当公网用户访问转换后的地址时产生环路或产生ARP报文 |
是 |
Easy-ip |
转换后的地址就是外网接口地址,公网用户访问该地址时不会产生环路 |
否 |
NAT Server(精细) |
当公网用户访问转换后的地址时产生环路或产生ARP报文 |
是 |
NAT Server(粗泛) |
当公网用户访问映射后的地址时直接转发给内部服务器 |
否 |
Server-map 表
通过server-map 表可以解决多通道协议数据传输问题
Server-map表记录应用层的关键数据信息,包括目标端口,目标地址和协议类型,和会话表一样匹配了Server-map 表的数据可以之间通过防火墙
Server-map表和会话表的区别:
会话表记录的是连接信息,包括连接状态。
server-map表记录的不是当前的连接信息,而是通过分析当前连接的报文后得到的信息,该信息用来解决接下来的数据流通过防火墙的问题。可以将server-map表的作用理解为通过未雨绸缪解决将来的问题,如像FTP这种的多端口协议,在从一开始的三次握手,到最后完成数据的传输,其过程中,可能端口会发生改变等问题,server-map正好可以解决这种问题
华为防火墙NAT实例
<USG6000V1>system-view 进入系统视图
[USG6000V1]interface GigabitEthernet 1/0/0 进入接口
[USG6000V1-GigabitEthernet1/0/0]ip address 20.0.0.1 24 配置IP地址
[USG6000V1-GigabitEthernet1/0/0]undo shutdown 激活
[USG6000V1-GigabitEthernet1/0/0]quit 返回上一级
[USG6000V1]interface GigabitEthernet 1/0/1 进入接口
[USG6000V1-GigabitEthernet1/0/1]ip address 192.168.10.1 24 配置IP地址
[USG6000V1-GigabitEthernet1/0/1]undo shutdown 激活
[USG6000V1-GigabitEthernet1/0/1]quit 返回上一级
[USG6000V1]interface GigabitEthernet 1/0/2 进入接口
[USG6000V1-GigabitEthernet1/0/2]ip address 192.168.20.1 24 配置IP地址
[USG6000V1-GigabitEthernet1/0/2]undo shutdown 激活
[USG6000V1-GigabitEthernet1/0/2]quit 返回上一级
[USG6000V1]interface GigabitEthernet 1/0/3 进入接口
[USG6000V1-GigabitEthernet1/0/3]ip address 192.168.30.1 24 配置IP地址
[USG6000V1-GigabitEthernet1/0/3]undo shutdown 激活
[USG6000V1-GigabitEthernet1/0/3]quit 返回上一级
[USG6000V1]firewall zone trust 进入 trust 区域
[USG6000V1-zone-trust]add interface GigabitEthernet 1/0/1 将G1/0/1添加至trust区域
[USG6000V1-zone-trust]add interface GigabitEthernet 1/0/2 将G1/0/2添加至trust区域
[USG6000V1-zone-trust]add interface GigabitEthernet 1/0/3 将G1/0/3添加至trust区域
[USG6000V1-zone-trust]quit 返回上一级
[USG6000V1]firewall zone untrust 进入untrust区域
[USG6000V1-zone-untrust]add interface GigabitEthernet 1/0/0 将接口添加至untrust区域
[USG6000V1-zone-untrust]quit 返回上一级
[USG6000V1]security-policy 配置安全策略
[USG6000V1-policy-security]rule name trust 创建策略trust
[USG6000V1-policy-security-rule-trust]source-zone trust 源区域trust
[USG6000V1-policy-security-rule-trust]destination-zone untrust 目标区域untrust
[USG6000V1-policy-security-rule-trust]action permit 动作允许
[USG6000V1-policy-security-rule-trust]quit 返回上一级
[USG6000V1-policy-security]rule name untrust 创建untrust
[USG6000V1-policy-security-rule-untrust]source-zone untrust 源区域untrust
[USG6000V1-policy-security-rule-untrust]destination-zone trust 目标区域trust
[USG6000V1-policy-security-rule-untrust]action permit 动作允许
[USG6000V1-policy-security-rule-untrust]quit 返回上一级
[USG6000V1-policy-security]ip route-static 0.0.0.0 0.0.0.0 20.0.0.2 配置静态
[USG6000V1]nat address-group NAPT 创建地址池NAPT
[USG6000V1-address-group-NAPT]section 1 40.0.0.10 40.0.0.20 配置公网地址范围
[USG6000V1-address-group-NAPT]mode pat 模式为PAT
[USG6000V1-address-group-NAPT]quit 返回上一级
[USG6000V1]nat address-group NOPAT 创建地址池NOPAT
[USG6000V1-address-group-NOPAT]section 2 40.0.0.30 40.0.0.40 配置公网地址范围
[USG6000V1-address-group-NOPAT]mode no-pat local 模式为no-pat只对本地生效
[USG6000V1-address-group-NOPAT]quit 返回上一级
[USG6000V1]nat-policy 配置NAT策略
[USG6000V1-policy-nat]rule name NAPT 创建策略NAPT
[USG6000V1-policy-nat-rule-NAPT]source-address 192.168.20.0 24 源IP地址为192.168.20.0/24
[USG6000V1-policy-nat-rule-NAPT]source-address-exclude 192.168.20.100 32 排除地址192.168.20.100
[USG6000V1-policy-nat-rule-NAPT]source-zone trust 源区域 trust
[USG6000V1-policy-nat-rule-NAPT]destination-zone untrust 目标区域untrust
[USG6000V1-policy-nat-rule-NAPT]action source-nat address-group NAPT 配置源地址转换为NAPT的公网地址
[USG6000V1-policy-nat-rule-NAPT]quit 返回上一级
[USG6000V1-policy-nat]rule name NOPAT 创建策略NOPAT
[USG6000V1-policy-nat-rule-NOPAT]source-address 192.168.10.0 24 源地址为192.168.10.0/24
[USG6000V1-policy-nat-rule-NOPAT]source-address-exclude 192.168.10.100 32 排除地址192.168.10.100
[USG6000V1-policy-nat-rule-NOPAT]source-zone trust 源区域trust
[USG6000V1-policy-nat-rule-NOPAT]destination-zon untrust 目标区域 untrust
[USG6000V1-policy-nat-rule-NOPAT]action source-nat address-group NOPAT 配置源地址转换为NOPAT的公网地址
[USG6000V1-policy-nat-rule-NOPAT]quit 返回上一级
[USG6000V1-policy-nat]rule name easy-ip 创建策略easy-ip
[USG6000V1-policy-nat-rule-easy-ip]source-address 192.168.30.0 24 源IP192.168.30.0/24
[USG6000V1-policy-nat-rule-easy-ip]source-zone trust 源区域trust
[USG6000V1-policy-nat-rule-easy-ip]destination-zone untrust 目标区域untrust
[USG6000V1-policy-nat-rule-easy-ip]action source-nat easy-ip 配置为easy-ip
[USG6000V1-policy-nat-rule-easy-ip]quit 返回上一级
[USG6000V1-policy-nat]quit 返回上一级
[USG6000V1]nat server natserver_ftp protocol tcp global 40.0.0.41 21 inside 192.168.10.100 21 将内网服务器192.168.10.100 21 端口映射到公网40.0.0.41 21端口
[USG6000V1]nat server natserver_ftp2 protocol tcp global 40.0.0.42 21 inside 192.168.20.100 21 将内网服务器192.168.20.100 21 端口映射到公网 40.0.0.42 21端口
[USG6000V1]ip route-static 40.0.0.0 24 null 0 配置黑洞路由
AR1配置
<AR1>system-view 进入系统视图
[AR1]int g0/0/0 进入接口
[AR1-GigabitEthernet0/0/0]ip add 20.0.0.2 24 配置IP
[AR1-GigabitEthernet0/0/0]interface GigabitEthernet 0/0/1 进入接口G0/0/1
[AR1-GigabitEthernet0/0/1]ip add 30.0.0.2 24 配置ip
[AR1-GigabitEthernet0/0/1]quit 返回上一级
[AR1]ip route-static 40.0.0.0 24 20.0.0.1 配置静态路由
测试
通过外网访问公网映射地址实现访问内网服务器