ASA NAT64、NAT46.note

noteId: WEB1567d7181f4f9e1ca875b5c8b032b6cb · 原始路径:/ALL/网络 - C模块/NAT64/ASA NAT64、NAT46.note · 图片:6 · 附件待处理:1

 
 
 
 
·属性解释:
net-to-net    //配置一对一映射关系,例如当IPv6设备访问2001:db8:100::/64中的地址时,ASA会自动将后32位转换为192.168.1.0/24网段内的IPv4地址;或者需要将单个IPv6地址转换为单个IPv4地址时也需要这个
dns    //当dns服务器返回IPv4地址时,能够自动将其转换为IPv6地址【这个属性默认最好加上】(例如:当内部DNS服务器返回192.168.1.100 时,防火墙会将其转换为 2001:db8::c0a8:164) 
 
 
无论是 一、还是 二, 配置原理都是将内部IPv6地址,转换成IPv4接口地址(或者自定义一个IPv4地址),作为该IPv6在IPv4网络中的源地址
然后定义一个IPv6前缀,用该前缀 + 内嵌IPv4地址 作为该IPv6在IPv6网络中的目的地址,它到底NAT64设备后,会被去掉前缀,仅保留IPv4地址,该IPv4地址将作为 该IPv6地址在IPv4网络中的目的地址。
 
一、NAT46/64(将ipv6转换成指定ipv4地址):
这个配置既可以让IPv4通过访问 136.136.136.136 来访问到 IPv6网络
也可以让IPv6通过访问 前缀+内嵌IPv4 来访问呢到 IPv4网络
 
1、(一对一映射)配置NAT46静态转换,将内部单个IPv6地址转换为外部单个IPv4地址:
外网IPv4客户端通过访问这个IPv4地址来达到访问内部IPv6服务器的效果
 
拓扑:
 
# 将IPv6转换成IPv4:
object network ipv4
 host 2001:db8::1
 nat (Inside,Outside) static 136.136.136.136 net-to-net dns
 
# 给内部IPv6一个目标IPv6地址(让它能够访问IPv4):
object network outside
 subnet 0.0.0.0 0.0.0.0
 nat (Outside,Inside) static 64:ff9b::/96 dns
 
# 需要放行icmp和ACL
## 两边都需要有路由去到 NAT64:
IPv6 端需要路由: 64:ff9b::/96
IPv4 端需要路由(定义的IPv4映射地址):136.136.136.136
 
(重要)如果ASA 上 Outside想要ping通Inside接口,需要放行 acl,否则肯能导致外网无法ping通这个转换后的 ipv4地址:
access-list ALL permit ip any any
access-group ALL global
 
 
·测试:
# 测试时记得在防火墙上放行ICMP:
policy-map global_policy

 class inspection_default
  inspect icmp
 
IPv4 访问 IPv6时,会将 136.136.136.136 这个地址转换为 64:ff9b::/96 下的地址
IPv6 访问 IPv4时,会将IPv6地址转换为 136.136.136.136 地址
 
测试:
外部IPv4 ping 静态IPv4地址(nat46测试):
 
内部IPv6 ping ipv6前缀 + ipv4地址(nat64测试):
 
 
 
二、NAT64(将ipv6转换成ipv4接口地址):
 
NAT64转换都是需要两次NAT的
例如,从IPv6访问去往IPv4
需要将源IPv6地址,转换为IPv4地址
需要将目的IPv6地址,转换为IPv4地址
 
1、配置NAT64,定义前缀,IPv6客户端访问这个 前缀+IPv4地址来访问 外部IPv4地址:
拓扑:
 
# 基础配置:
fw:
int g0/0
 no sh
 nameif Inside
 ipv6 enable
 ipv6 address 2001:db8::ffff/64
 exit
int g0/1
 no sh
 nameif Outside
 ip address 100.1.1.254 255.255.255.0
 
Inside-1:
ipv6 un
int g0/0
 no sh
 ipv6 enable
 ipv6 address 2001:db8::1/64
 
Outside-1:
int g0/0
 no sh
 ip address 100.1.1.1 255.255.255.0
 
配置方式一:
FW:
# 定义IPv6 Object:
object network inside_v6
 subnet 2001:db8::/96    //匹配内网地址
 nat (Inside,Outside) dynamic interface    //将2001:db8::/96 内网地址转换为 G0/1接口的公网ipv4地址
 
# 定义IPv4 Object:
object network outside_v4
 subnet 0.0.0.0 0.0.0.0
 nat (Outside,Inside) static 2001:db8::/96 dns
 
配置方式二:
object network ipv6

 subnet 2001:db8::/96
 
nat (Inside,Outside) source dynamic ipv6 interface destination static ipv6 any
 
·测试:
# 测试时记得在防火墙上放行ICMP:
policy-map global_policy

 class inspection_default
  inspect icmp
 
此时,就能够ping通 ASA防火墙能够ping通的任何IPv4地址(除了ASA防火墙本地的IPv4地址)
 
 
2、如果前缀与客户端不同网段,例如:64:ff9b::/96:
# 只需要将 IPv4回包的 object 的nat转换地址改为 64:ff9b::/96即可
FW:
# 定义IPv6 Object:
object network inside_v6
 subnet 2001:db8::/96    //匹配内网地址
 nat (Inside,Outside) dynamic interface    //将2001:db8::/96 内网地址转换为 G0/1接口的公网ipv4地址
 
# 定义IPv4 Object:
object network outside_v4
 subnet 0.0.0.0 0.0.0.0
 nat (Outside,Inside) static 64:ff9b::/96 dns
 
## 内网客户端上需要有去往 64:ff9b::/96的路由,否则路由不通,路由无法到底nat64:
ipv6 route 64:ff9b::/96 g0/0
ASA 本地不需要有 64:ff9b::/96 这条路由条目(有也没关系)
 
 
·测试:
# 测试时记得在防火墙上放行ICMP:
policy-map global_policy

 class inspection_default
  inspect icmp