H3C MSR NAT66配置指北

cb0a13ee39753c2c32e1b06d64946712.gif

正文共:1456 字 14 图,预估阅读时间:1 分钟

通过前面的介绍企业路由器配置IPv6家用宽带的PPPoE拨号示例,想必你已经可以实现让MSR路由器通过PPPoE拨号接入IPv6网络。

正常来讲,通过前面的配置,我们内网的客户端也可以自动获取IPv6地址,并且可以访问互联网。

fe249ae68e01003ee818245a222f4509.png

但是,在前面的配置中我们也看到了,当Client设备拨号成功后,Server设备会通过DHCPv6协议为Client分配一个代理前缀,再结合接口配置的IPv6前缀,匹配接口剩余的IPv6地址位之后,组合之后的地址才是接口真正的IPv6地址。这里面的知识点就是,Client设备获取到的IPv6前缀可能会变化(当然,我目前使用中还没发生变化)。与此同时,如果内网已经按照一定规则配置了IPv6地址,不想通过前面的方式再调整IPv6地址,那可能就需要用到NAT66功能了。

NAT66又被称为NPTv6(IPv6-to-IPv6 Network Prefix Translation,IPv6-to-IPv6网络前缀转换),从名称中可以看出,NAT66用于将IPv6报文中的IPv6地址前缀转换为另一个IPv6地址前缀,可提供NAT66源地址转换功能和目的地址转换功能。

除了我们提到的内部网络和外部网络之间的源地址转换功能,NAT66还可以用于冗余和负载分担、多宿主等场景。

IPv4的NAT支持PAT和NO-PAT,而IPv6的NAT66则仅支持NO-PAT模式,不能基于端口进行配置,而且连地址都不能固定,有点类似IPv4中NAT地址池的意思NAT配置—常见问题

还是基于上次的实验环境,在未配置NAT66时,从Client设备无法直接访问互联网。

02eb0d7a159578ed6a1614e007727af3.png

道理很简单,这里的IPv6地址2020:2021:2022:18:18:18:0:1是我们虚构的,当这个报文在互联网上传播时,要么没有对应的路由,要么被路由到其他配置了这个IPv6地址的设备上了,跟在IPv4的私有网络中配置公网IP地址是一样的。

要解决这个问题,第一种方式,如果这个IPv6前缀是我们正式申请的,那在运营商侧就会有对应的路由,可以将外部访问该地址段的流量路由到我们的设备上,我们只需在出口设备上添加路由条目即可。

显然,我们不属于第一种方式,那就需要配置NAT66来解决了,将内网的IPv6前缀转换为运营商自动分配的IPv6前缀,使得公网流量可以路由到出口设备。

a8835e21e06fc5f8a41ec7e13e177076.png

首先,我们的Client设备是二次分配的IPv6地址,等同于配置的内部网络,此时出口设备上是没有回程路由的,现在Client连MSR的接口地址都访问不到。

3ca9bec64652f21761c201b344054866.png

我们首先在出口设备上添加去往内网的回程路由IPv6静态路由配置

ipv6 route-static 2020:2021:2022:: 56 240E:304:8CDA:301:20C:29FF:FE0B:96B7

9862c8f44ffb097ad8c7e182a81104df.png

然后再在MSR的拨号口下添加NAT66配置就可以了。

nat66 prefix source 2020:2021:2022:: 56 240E:304:8CDA:300:: 56

91ab3e2e95851afe5053f6e470cdc604.png

验证Client设备访问公网。

6144ef32506c9cc0ab7780b24aa3c318.png

访问成功。

其实,在这里我也测试了在Server设备的上联口配置NAT66,但是无法生效,应该是该设备只有一个IPv6地址,没有可用的IPv6前缀的原因IPv6从入门到精通

参考我们的配置命令,按照配置规范,需要保证转换前后的源IPv6地址前缀长度一致,我们这里都使用的56位长度,其实这也是从公网获取的前缀长度。

f9290912ad76822a660900ecb37832d7.png

而且,在配置时,同一个接口下的内网地址前缀和外网地址前缀必须是一对一的唯一映射关系,不能冲突。

362f5dabee698636ad3e3ccddc57dc39.png

如果配置冲突了,会有告警信息提示是转换前的前缀冲突了,还是转换后的前缀冲突了。当然,不同接口下,不同的内网地址前缀也不能映射到同一个外网地址前缀。

除此之外,转换后的源IPv6地址前缀不能与NAT66设备的外网地址前缀以及目的外网地址前缀相同,这个很好理解,不能转换了又没转换。

最后,我们看一下这个IPv6地址前缀长度到底可以配置成多少。测试方法也很简单,我们取Client设备ping测时携带的源地址2020:2021:2022:18:18:18:0:1,以及出口设备的接口地址240E:304:8CDA:300::1,配置时使用调整前缀长度的方式,使设备自动计算IPv6地址前缀即可。

首先试一下短于56是否可以。

nat66 prefix source 2020:2021:2022:18:18:18:0:1 48 240E:304:8CDA:300::1 48

75f2fc0316ee1244b075d92f35481b20.png

可以看到,实际转换后的地址已经不属于240E:304:8CDA:300::/56了,报文没回来。

再试试长于56是否可以。

nat66 prefix source 2020:2021:2022:18:18:18:0:1 64 240E:304:8CDA:300::1 64

15577d379b4ba406990f7145d90cc3d7.png

转换后的地址可以正常被转发回来,业务正常,但是这里的NAT66会话统计不准确。

我们试一下120位长度是否可以。

nat66 prefix source 2020:2021:2022:18:18:18:0:1 120 240E:304:8CDA:300::1 120

0a1114590f757e43469ab06fce2a7e2f.png

没有问题,只不过转换的IPv6地址成了接口地址。

既然如此,128位的前缀长度可以吗?

nat66 prefix source 2020:2021:2022:18:18:18:0:1 128 240E:304:8CDA:300::1 128

c174681e80a762a510dcfd1d24ed9519.png

也可以正常访问,可见前缀长度配置为56-128位都是可以的。

那在Server设备上配置128位的前缀转换可行吗?

nat66 prefix source 2020:2021:2022:18:18:18:0:1 128 240E:304:8CDA:301:20C:29FF:FE0B:96B7 128

6440f7f501cdf09113d1608eaef950c6.png

如此看来,当IPv6地址前缀长度配置成128位时,也就间接变成了PAT了。

312a88ef048a5260a9d70b09c9697d5c.gif

长按二维码
关注我们吧

00ffa6825f35583d8fd1acc9d19edd49.jpeg

9bec8397e7dc1f98f65ceaee40b49d87.png

配置PPPoEv6服务器为终端分配IPv6地址

企业路由器配置IPv6家用宽带的PPPoE拨号示例

在Ubuntu系统手撸一个自动创建SSL证书的SHELL脚本

在Ubuntu系统手撸一个自动搭建openVPN服务端的SHELL脚本

与CentOS用户态完全兼容的TencentOS你用过没?

如何使用Python提取Excel中固定单元格的内容

使用Python批量处理Excel的内容

使用Python脚本实现SSH登录设备

将iStoreOS部署到VMware Workstation

将iStoreOS部署到VMware ESXi变成路由器

对比华三设备配置,讲解Linux主机如何配置strongSwan

ufw命令简介

Ubuntu配置openVPN服务端和客户端

Ubuntu一键导入openVPN配置文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/396327.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt自定义TreeWidget,实现展开折叠按钮在右侧,且一条竖直线上对齐

效果如下&#xff1a; 图片随便找的&#xff0c;可能需要调下样式&#xff0c;代码复制可用&#xff0c;留给有需要的人。 #ifndef CustomTreeWidget_h__ #define CustomTreeWidget_h__#include <QTreeWidget> #include <QPushButton>class CCustomTreeWidget : p…

Java数据结构(六)——树和二叉树

文章目录 二叉树树初识树有关树的概念树的表示树的应用 二叉树二叉树的概念二叉树的性质二叉树的存储二叉树的遍历二叉树的操作(代码实现)遍历结点数二叉树高度查找 二叉树的相关练习对称二叉树平衡二叉树二叉树的构建及遍历前序和中序构造二叉树最近的公共祖先二叉树构建字符串…

redis的安装与命令

一、redis与memcache总体对比 1.性能 Redis&#xff1a;只使用单核&#xff0c;平均每一个核上Redis在存储小数据时比Memcached性能更高。 Memcached&#xff1a;可以使用多核&#xff0c;而在100k以上的数据中&#xff0c;Memcached性能要高于Redis。 2.内存使用效率 Mem…

【C#】计算多边形的面积

一、问题分析 在 C# 中计算多边形面积的一种常见方法是使用顶点坐标。 假设您有一个由一系列 (x, y) 顶点坐标定义的多边形&#xff0c;您可以使用“鞋带公式”&#xff08;也称为高斯公式&#xff09;来计算其面积。 如果是计算多边形的面积可以分为正常多边形、dicom图像中…

java之贪婪爬取和非贪婪爬取

public class RegexDemo6 {public static void main(String[] args) {String str"java自从95年问世以来,abbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaa" " 经历了很多版本,目前企业中用的最多是java8和java11,""因为这俩个是长期版本,下一个长期支持版本是java…

【平衡二叉树】数据结构—平衡二叉树

平衡二叉树&#xff08;Balanced Binary Tree&#xff09;是一种特殊的二叉树&#xff0c;它的左右子树的高度差不超过1&#xff0c;这样可以保证树的高度相对较低&#xff0c;从而使得查找、插入和删除操作的时间复杂度保持在 。 平衡二叉树的基本概念 1. 二叉树&#xff1a…

RTT-网络组件-AT命令-未完成

AT指令文档 调用树 at_client_init();at_client_para_init();client_parser();struct at_client {rt_device_t device;at_status_t status;char end_sign;char *send_buf;/* The maximum supported send cmd length */rt_size_t send_bufsz;/* The length of last cmd */rt_si…

【HBZ分享】Spring启动时核心refresh方法流程

refresh核心代码所在位置 在AbstractApplicationContext类中的refresh方法中 refresh的业务流程编排 调用obtainFreshBeanFactory()去创建一个全新的BeanFactory工厂&#xff0c;类型为DefaultListableBeanFctory&#xff0c;其功能为【解析xml】将里面bean标签内容解析成【…

尚硅谷谷粒商城项目笔记——十、调试前端项目renren-fast-vue【电脑CPU:AMD】

十、调试前端项目renren-fast-vue 如果遇到其他问题发在评论区&#xff0c;我看到后解决 1 先下载安装git git官网下载地址 2 登录gitee搜索人人开源找到renren-fast-vue复制下载链接。【网课视频中也有详细步骤】 3 下载完成后桌面会出现renren-fast-vue的文件夹 4 开始调…

对于springboot无法连接redis解决方案

对于springboot无法连接redis解决方案 一、测试是否能在本地应用上访问到你的redis&#xff08;如果是部署在linux上的话&#xff09;1. 开启telnet功能2. 开始测试端口是否能访问到&#xff08;适用于所有&#xff0c;包括MQ&#xff09;3. 开放6379端口4. 看spring的配置文件…

java springboot mqtt控制海康摄像头

GHHKControlService 接口 package org.gh.ghhk.service;public interface GHHKControlService {boolean monitorControl(String payload);}GHHKControlServiceImpl 实现类 ​ package org.gh.ghhk.service.impl;import com.alibaba.fastjson.JSONArray; import com.alibaba.…

MySQL —— CRUD

CRUD CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写。 我们常说增删查改&#xff0c;增删改查… 这里我们的增删查改是对表格的数据行进行操作的~~ 新增 1.1.1 单行数据 全列插入 插入一行新数据行&#xff0c;使用 insert into t…

微信小程序项目-宠物商城项目uniapp源码和代码讲解

&#x1f939;‍♀️潜意识起点&#xff1a;个人主页 &#x1f399;座右铭&#xff1a;得之坦然&#xff0c;失之淡然。 &#x1f48e;擅长领域&#xff1a;大前端 是的&#xff0c;我需要您的&#xff1a; &#x1f9e1;点赞❤️关注&#x1f499;收藏&#x1f49b; 是我…

Django 自定义用户 VS 用户资料

Django是一个流行的Web框架&#xff0c;它提供了一套完整的用户认证系统&#xff0c;其中包括内置的User模型用于存储基本的用户信息&#xff0c;如用户名、密码等。然而&#xff0c;如果我们需要更详细的用户资料管理&#xff0c;比如添加更多的字段或者自定义验证规则&#x…

分布式主键 详解

文章目录 雪花算法结合分库分表的问题问题出现原因分析解决思路 分布式主键要考虑的问题主键生成策略雪花算法详解时间戳位问题工作进程位问题序列号位问题根据雪花算法扩展基因分片法 雪花算法结合分库分表的问题 问题出现 使用ShardingSphere框架自带的雪花算法生成分布式主…

LVS(Linux virual server)详解

目录 一、LVS&#xff08;Linux virual server&#xff09;是什么&#xff1f; 二、集群和分布式简介 2.1、集群Cluster 2.2、分布式 2.3、集群和分布式 三、LVS运行原理 3.1、LVS基本概念 3.2、LVS集群的类型 3.2.1 nat模式 3.2.2 DR模式 3.2.3、LVS工作模式总结 …

黑马Java零基础视频教程精华部分_18_Arrays各种方法

系列文章目录 文章目录 系列文章目录Arrays简介Arrays各种方法toString代码示例binarySearch代码示例copyOf代码示例copyOfRange和fill代码示例sort代码示例 Arrays简介 操作数组的工具类。 Arrays各种方法 toString代码示例 int[]arr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; //to…

非线性链表之树结构和堆的代码实现

目录 一.树的结构 1.1树概念及结构 1.2 树的相关概念 1.3 树的表示 二. 二叉树概念及结构 2.1概念 2.2 特殊的二叉树&#xff1a; 2.3 二叉树的性质 2.4 二叉树的存储结构 2.4.1. 顺序存储 ​2.4.2. 链式存储 三. 堆的概念及结构 定义 性质 堆的实现 四.堆的代…

kafka零拷贝sendfile及mmap简述

概述 通常在选型比较消息中间件时&#xff0c;都会在备选栏有kafka&#xff1b; kafka突出的特点就是高吞吐&#xff0c;零拷贝&#xff1b; 这里的零拷贝其实就是内核和用户空间之间没有copy&#xff0c;并不是真的0拷贝&#xff1b; 毕竟数据在磁盘&#xff0c;要读到网卡发…

k8s集群管理 Pod管理命令

k8s集群管理命令 信息查询命令 子命令说明help用于查看命令及子命令的帮助信息cluster-info显示集群的相关配置信息api-resources查看当前服务器上所有的资源对象api-versions查看当前服务器上所有资源对象的版本config管理当前节点上的认证信息 资源对象概述 Pod概述 Pod 管…