有状态NAT64、NAT46 配置.note

noteId: WEB7526d5982ce58f2a72157059fcb84d4b · 原始路径:/ALL/网络 - C模块/NAT64/有状态NAT64、NAT46 配置.note · 图片:7 · 附件待处理:0

 
 
无状态NAT64:

在无状态NAT64中,不会保留会话状态,每个IPv6客户端,都需要分配一个IPv4地址,只适用于,有少量IPv6客户端访问的场景

IPv6 - IPv4 1:1 转换

 
有状态NAT64:

将IPv6地址转换为单个IPv4地址,但是会其分配不同的接口,与IPv4的PAT(NAPT)类似

对每个转换过的IP地址,都会在转换表中有着其和IPv4地址端口的映射关系,当流量回来时,会将其再转换为IPv6地址

 
(NAT64设备肯定是双栈设备)
 
转换过程:
将要去往的 IPv4地址转换为 16进制,并在它的前面加上 NAT64前缀,通过路由去到NAT64设备上,在此之前,需要在NAT64设备上配置ACL或者前缀列表,当它匹配上了该NAT64前缀后,会对其进行转换操作,将其从IPv6转换为IPv4
 
 
# Linux 命令
route -A inet6
route -A inet6 add default gw 2001:abcd:2000::ffff
ping -I eth0 fe80::ffff    //ping link-local地址
 
 
 
·拓扑图:
 
 
 
使用 nat64 prefix stateless 定义前缀的都是无状态化转换
使用 nat64 prefix stateful 定义前缀的都是有状态化转换
 
一、有状态 NAT64 配置:
 
·要求:
# 访问IPv6地址以达到访问内网IPv4的效果
外部IPv6需要有去往nat64 prefix的路由
需要配置ipv6 acl 匹配允许进行nat64转换的ipv6路由(可以是any any)
内网被转换主机需要有路由回到nat64设备(一般都是默认路由);如果没有默认路由,就需要有去往nat64定义的ipv4 pool地址段的路由
接口需要开启nat64 enable
 
1、 NAT64设备 配置:
 
ipv6 un
 
int g0/0
no sh
ipv6 address 2001:abcd::ffff/64  
ipv6 address FE80::FFFF link-local
nat64 enable
 
int g0/1
no sh
ip address 192.168.1.1    //注意,NAT64是无法ping通本地接口的这个IPv4地址的,只能够ping通其它的
nat64 enable
exit
 
ipv6 access-list NAT64
permit ipv6 2001:abcd::/64 any    /匹配能够通过nat64的IP地址(可以定义permit ipv6 any any)
 
nat64 prefix stateful 6666:6666::/96    // 96位是固定的NAT64长度,保留32位,刚好能够嵌入一个IPv4地址
nat64 v4 pool NAT64 100.1.1.1 100.1.1.1
nat64 v6v4 list NAT64 pool NAT64 overload 
 
2、IPv4网络指定路由通向 NAT64:
ip route 100.1.1.1 255.255.255.255 192.168.1.1    //配置一条NAT64的回程路由,否则路由不可达(有默认路由就不用)
 
 
3、IPv6客户端访问:
 
 
4、查看NAT64转换表:
# 查看转换表:
show nat64 translation
 
 
 
 
二、有状态 NAT46 配置:
 
·要求:
# # 访问IPv4地址以达到访问内网IPv6的效果(静态一对一)
外部IPv4需要有去往nat64 的ipv4静态映射地址的路由
内网被转换主机需要有路由回到nat64设备(一般都是默认路由)
接口需要开启nat64 enable
 
# 无状态NAT64
接口配置同上
 
## 注意:这里的NAT46也是无法通过NAT46访问 NAT46设备的 IPv6接口
nat64 prefix stateful 6666:6666::/96    //用不到这个前缀,随意指定一个,让NAT64不报错
nat64 v6v4 static 2001:abcd::123 123.1.1.123    //将 2001:abcd::1 静态转换为 123.1.1.1
# 有多个IP就指定多条
nat64 v6v4 static 2001:abcd::5054:ff:fe0c:ee92 123.1.1.2
 
# 或者映射单个端口:
nat64 v6v4 static tcp 2001:abcd::1 22 123.1.1.1 22
 
 
# IPv4 设备需要指定静态映射的地址路由到 NAT64设备上:
ip route 123.1.1.0 255.255.255.0 192.168.1.1
 
·IPv4客户端访问:
 
 
 
 
三、NAT64 和 NAT46 可以结合:
# 配置NAT64:
ipv6 un
 
int g0/0
no sh
ipv6 address 2001:abcd::ffff/64  
ipv6 address FE80::FFFF link-local
nat64 enable
 
int g0/1
no sh
ip address 192.168.1.1    //注意,NAT64是无法ping通本地接口的这个IPv4地址的,只能够ping通其它的
nat64 enable
exit
 
ipv6 access-list NAT64
permit ipv6 2001:abcd::/64 any
 
nat64 prefix stateful 6666:6666::/96    // 96位是固定的NAT64长度,保留32位,刚好能够嵌入一个IPv4地址
nat64 v4 pool NAT64 100.1.1.1 100.1.1.1
nat64 v6v4 list NAT64 pool NAT64 overload 
 
# 再配置 NAT46
nat64 v6v4 static 2001:abcd::123 123.1.1.123
 
客户端测试:
 
 
# NAT64 设备上查看状态:
show nat64 translation
show nat64 statistics