Valorant requires a restart or loads slowly when entering the game. What can I do? I have an idea.

Valorant is a free first -person tactical shooting game developed by Riot Games, which combines the exact system of arms shooting and heroism. Players will be transformed into agents and will compete for target points using team collaboration, tactical layout and skills cooperation 5V5 offensive and defense stroke. The game has a low economic system and high competitiveness. Before each game start, buy weapons and armor according to tactical needs and use a combination of heroic skills to create the benefits of the battlefield. Its solid ballistic mechanism and map design require players for accurate purposes and tactical decision -making. At the same time, the rich character pool and skill combination give the game a strategic depth. If you have the problems you need to restart or slowly load while playing a "Varorant", try the following systematic solution: Network environment optimization is the main solution. Because valante servers can be introduced abroad, physical dist...

NAT-PT - 原理


操作

NAT-PT的工作原理是捕获,转换和发送从IPv6到IPv4网络的数据包(反之亦然)。输出数据包的目标 IPv4 地址由接收的 IPv6 数据包中目标的最后四个字节确定。请看下图。PC1 上的一个用户,一个内部纯 IPv6 主机打开一个 Internet 浏览器,然后转到 www.google.com。他的计算机首先对其 DNS 服务器执行查询。

NAT-PT 捕获数据包,并在 PC1 的 IPv6 地址与其池中的某个 IPv4 地址之间创建新的绑定,并转换数据包。NAT-PT 看到 DNS 查询并将 AAAA 请求转换为 A 请求。最后,它为新创建的 IPv4 数据包找到路由,并将其排队到相应的出站接口。

DNS 服务器接收查询并发送答复。

NAT-PT 捕获流量并查找映射的 IPv6 地址。它还会查看 DNS A 资源记录并将其转换为 AAAA 记录。它通过添加一个特殊的“NAT-PT前缀”(通过“naptd-confmaker”配置,默认值为2000:ffff::)到 IPv4 地址的开头。最后,它为新创建的 IPv6 数据包找到路由,并将其排队到相应的出站接口。

从这里,PC1 启动与 www.google.com 的连接。

NAT-PT捕获数据包并在PC1的IPv6地址与其池中的IPv4地址之一之间创建新的绑定,转换数据包,查找路由,然后...等。

Google的Web服务器回复初始SYN数据包。

NAT-PT 捕获流量并查找映射的 IPv6 地址。最后,它为新创建的 IPv6 数据包找到路由,并将其排队到相应的出站接口。

以上总结了纯 IPv6 和纯 IPv4 主机如何通信的基础知识。连接的其余部分以相同的方式发生。NAT-PT 维护三个“转换”池,一个用于 TCP,一个用于 UDP,一个用于 ICMP。默认情况下,TCP 转换在捕获 RST 或 FIN 数据包后 5 分钟后或 24 小时不活动后超时。UDP 转换在 1 小时后过期,ICMP 在 30 秒后过期。

先决条件

NAT-PT 要求 iptable 和 ip6tables 都能正常工作。这是由于NAT-PT在用户空间中运行的事实引起的。这有两个重要的副作用:

1. TCP 重置。
在数据包从 IPv6 转换并使用出站接口的 IPv4 地址作为转换的全局 IPv4 地址发送到 IPv4 端后,内核不会将此连接记录为由路由器发起(尽管发送了包含路由器 IPv4 地址的数据包)。当从 IPv4 端收到回复并且路由器上没有运行防火墙时,内核在看到数据包的目的地是路由器后,查看其连接表中的连接表,以尝试查找此数据包所属的应用程序。在意识到没有这样的应用程序时,RFC定义的行为是向源主机发送TCP RST(重置)数据包。如果发生这种情况,远程 IPv4 服务器将断开连接,并且 in 和内部 IPv6 主机之间的所有通信都将中断。

2. 路由 无法访问/无效路由
IPv6 主机将 IPv4 世界视为单个虚拟 IPv6 网络。它是通过采用 NAT-PT 前缀(默认:2000:ffff::)并将每个主机的 IPv4 地址设置为最后 4 个八位字节。这个网络是纯粹的虚拟的,实际上并不存在。必须将发往此网络的所有流量路由到 NAT-PT 盒,后者反过来捕获该流量并执行必要的转换。我们路由到一个不存在的网络(请原谅我这个矛盾)的事实导致了一个小问题。当路由器执行路由但找不到到虚拟网络的路由时,它会尝试将 ICMP 目标无法访问(路由无法访问)数据包发送到发送主机。必须防止这种情况。如果路由器具有到任何 IPv6 目标的默认路由,则为我们的虚拟网络创建的数据包将发送到全局 IPv6 云。这不会中断我们的 NAT-PT 操作,但将目标不存在的数据包发送到全局 IPv6 云是非常不可取的,应尽可能加以阻止。

我们必须通过使用防火墙来弥补这些缺点。第一个问题可以通过使用 iptables 来纠正。如果您对所有传入的数据包都有默认的DROP策略,则应该没问题。您的 iptables 规则应具有类似于以下示例的内容。

-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j DROP

要解决第二个问题,我们必须使用ip6tables。我们可以过滤传出的ICMPv6目标无法访问的数据包,也可以过滤FORWARD链中虚拟IPv6网络的数据包。如果您的路由器没有 IPv6 数据包的默认路由,则应使用第一种机制。

ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 1 -j DROP

如果您的网络确实连接到全局 IPv6 云,因此您的路由器具有默认的 IPv6 路径,则必须使用第二个选项。下面的示例使用默认 NAT-PT 前缀 (2000:ffff::),如果您使用的是非默认前缀,请调整示例以反映您的配置。

ip6tables -A FORWARD -d 2000:ffff:: -j DROP

配置详细信息

本节详细介绍了 NAT-PT 配置过程的每个步骤。NAT-PT转换器应使用NAT-PT守护程序本身附带的“naptd-confmaker”程序进行配置。默认情况下,naptd 将读取配置文件 /etc/naptd.conf,但可以使用 -c 参数提供备用配置文件。

naptd -c /usr/local/etc/naptd.conf

让我们看一下配置过程的步骤:

  1. 是否要创建新配置?[是/否]

  2. 这真的不需要太多的解释。如果您确实要创建新的配置文件,我们将继续,如果您不这样做,程序将终止。

  3. 是否希望将来自外部接口的 IPv4 地址自动用作 NAT 池的一部分?[是/否]

  4. 如果回答“否”,请跳过本文档中的下一个问题。如果回答“是”,则 NAT-PT 将在转换数据包时使用来自外部接口的 IPv4 地址。如果您有多个外部接口,这可能是不希望的,因为无法保证数据包转换后它将离开其携带的IP地址的接口。换句话说,转换机制独立于路由机制。在下面这样的情况下,这可能会导致问题。在99.9%的其他情况下,应该没有问题。

    如果您的网络拓扑与上述拓扑类似,您仍然可以使用全局 IPv4 云端外部接口的 IP 地址。您可以通过将其输入仅包含一个IP的IP池范围来执行此操作,下面将对此进行更详细的解释。


  5. 是否要将其他地址配置为 NAT 池的一部分?[年/年]

  6. 您已经要使用 NAT-PT 外部接口中的 IPv4 地址,但您仍然可以配置更多要使用的 IP 地址。

  7. 您需要创建一个公共 IPv4 地址池。输入池的起始 IP。

  8. 此时,您需要指定将用于转换的 IP 池。输入起始 IP,后跟返回和结束 IP(含)。如果此范围包含单个 IP,只需在要求输入结束 IP 时按 return 键即可。第二步是配置此池的端口范围。默认情况下,将使用的第一个端口将为 1500,最后一个端口为 65000。您只需按回车键或指定自己的值即可接受这些值。您可以根据需要创建任意数量的 IP 池,但请确保它们不重叠,因为 NAT-PT 不会检查这些池是否存在重叠。

  9. 是否要创建一个公共 IPv4 地址池,以允许将传入连接动态映射到适当的 IPv6 地址?[年/年]

  10. 回答“是”将允许您创建 NAT-PT 将用于动态入站连接映射的 IP 范围。您需要指定 IP 范围的起始和结束 IP 地址,并且可以根据需要自由创建任意数量的这些范围。这些范围不应重叠,因为 NAT-PT 不会检查任何重叠,只需接受您为其提供的值即可。详细了解动态入站连接

  11. 是否要创建公共 IPv4 地址的静态映射,以允许传入连接到达 IPv6 主机?[年/年]

  12. 如果回答“是”,您将能够在 IPv4 和 IPv6 地址之间创建静态映射。您需要先指定 IPv4 地址,然后指定 IPv6 地址。您可以根据需要创建任意数量的静态映射。详细了解静态入站映射

  13. 输入您希望 NAT-PT 侦听的第一个内部 (IPv6) 接口的名称。interface (eth0 eth1 sit0):

  14. NAT-PT 需要知道您希望将哪些接口指定为内部接口 (IPv6),哪些接口指定为外部接口 (IPv4)。配置制作工具将列出它在系统上找到的所有接口,不包括 lo。输入任何接口名称,但请确保在运行 NAT-PT 时存在或将存在此类接口,因为此处未执行错误检查。进入第一个界面后,您可以选择进入另一个界面。您可以根据需要输入任意数量的接口。

  15. 输入您希望 NAT-PT 侦听的第一个外部 (IPv4) 接口的名称。
  16. 在此项目中,您必须指定 NAT-PT 将使用的外部 (IPv4) 接口。此处的条件与指定内部 (IPv6) 接口的条件相同。您可以对 IPv4 和 IPv6 使用相同的接口,从而可以在只有一个网络接口的路由器上运行 NAT-PT。如果确实看到“单个 NIC 操作”部分。

  17. 输入 TCP 转换超时(以秒为单位) [86400]:

  18. 在这里,您可以设置 TCP 转换超时后不活动的秒数。默认值为 86400 秒(24 小时),但是每当 RST 或 FIN 数据包发生时,连接将在 5 分钟后超时。您只需点击 return 键即可接受默认值。

  19. 输入 UDP 转换超时(以秒为单位) [3600]:

  20. 在这里,您可以设置 UDP 转换超时后不活动的秒数。默认值为 3600 秒(1 小时)。您只需点击 return 键即可接受默认值。

  21. 输入 ICMP 转换超时(以秒为单位)[30]:

  22. 在这里,您可以设置 ICMP 转换超时后不活动的秒数。默认值为 30 秒。您只需点击 return 键即可接受默认值。

  23. 输入将用作应转换的目标的 IPv6 前缀。前缀 [2000:ffff::]:

  24. 在这里,您必须输入一个 IPv6 网络前缀,该前缀将指示必须转换的数据包。默认值应该适用于每个人,但为了安全起见,您可能希望使用IPv6块的一部分作为IPv6前缀。我更喜欢将块中的最后一个可用网络用于 NAT-PT 目的。如果你有一个像 2001:468:181:f100::/56 这样的块,这将是 2001:468:181:f1ff::。还要记住,如果您使用的是DNS代理totd,则应将其前缀调整为在此处设置的任何前缀。

  25. 请输入您当前使用的 DNS 服务器的 IPv4 地址。IPv4 DNS 服务器:

  26. 输入您当前正在使用的 DNS 服务器的 IPv4 地址,配置程序将返回您应使用的 IPv6 地址。这是根据 DNS 服务器的 NAT-PT 前缀和 IPv4 地址确定的新地址。这部分配置不是强制性的,但如果您计划使用 NAT-PT 的内置 DNS 转换器,则可以更轻松地计算 DNS 服务器的转换后的 IPv6 地址。您也可以使用以下脚本。

    前缀:
    IPv4 DNS 服务器:
    IPv6 DNS 服务器:

  27. 感谢您选择Ataga作为IPv4 / IPv6 NAT-PT解决方案。设置现已完成。键入“naptd”以启动 NAT-PT。

  28. 恭喜你,你完成了!

示例安装方案

让我们看一下可以使用 NAT-PT 的两个示例设置方案。首先,我们希望部署一个仅限IPv6的企业网络,我们希望利用IPSec来加密所有内部流量。您的大部分流量将被隔离在 v6 域中,但我们仍然需要为员工提供一种与世界其他地区进行通信的方式。

在上面,我们有两个仅限IPv6的网络,一个双栈网络和两个路由器(一个运行双栈和NAT-PT,第二个仅运行IPv6)。此图中显示的 NAT-PT 计算机可以同时充当 IPv4 路由器、IPv6 路由器和 IPv4/IPv6 转换器。它在全局 IPv4 云和双栈网络之间执行 IPv4 路由。它在双栈网络和纯 IPv6 网络之间执行 IPv6 路由。最后,它在仅 IPv6 网络和 IPv4 全局云之间执行有状态的 IPv4/IPv6 转换。纯 IPv6 网络上的主机应使用 NAT-PT 的内置 DNS 转换器,而双栈主机可以继续使用其旧的 IPv4 DNS 服务器。

第二种情况有点复杂,可能更好地反映了当今复杂的网络环境。它显示了多个网络,其中一些是仅IPv4,一些仅IPv6和一些双栈。

在这种情况下,组织希望迁移到 IPv6,但仍需要能够与仅支持 IPv4 的世界的其余部分进行通信。此方案与上一个方案不同,因为在这种情况下,组织具有由其 ISP 提供的本机或隧道 IPv6 连接。在这种情况下,应使用 DNS 代理守护程序 totd。NAT-PT 计算机执行 IPv6 路由和 IPv4/IPv6 转换。如果内部仅支持 IPv6 的主机尝试与启用了 IPv6 的主机进行通信,则连接将通过 IPv6 路由,并且将通过 IPv6 中的 IPv4 隧道中的 IPv4 云进行通信。否则,如果远程主机仅使用 IPv4,则 NAT-PT 将转换连接。

安装方案应确定如何解析 DNS 查询。使用下表作为参考。

场景域名解析
双栈使用常规 DNS 服务器。如果远程主机具有 IPv6 地址,则将首选该地址,否则将使用 IPv4。
仅 IPv6 + 隧道/本机 IPv6 连接使用 DNS 代理守护程序 totd。如果远程主机具有 IPv6 地址,则将使用该地址,否则将使用 NAT-PT 前缀转换 IPv4 地址(请记住,NAT-PT 前缀和配置 totd 的前缀必须相同)。
仅支持 IPv6,不提供 IPv6 连接使用 NAT-PT 的内置 DNS 转换器。远程主机的地址将始终使用 NAT-PT 前缀进行转换。

内存使用情况

NAT-PT不会对路由器的内存造成任何重大压力。初始化后,它应该使用大约1.1 MB的共享内存。此数量将增加每个翻译的 48 个字节。创建 30,000 个翻译后,这会将内存使用量增加约 1.3 MB。内存使用的其他来源包括可用于转换的空闲 IP+端口对。每个都占用 8 个字节。例如,如果您的 NAT 池由每个 IP 254 个 IP 和 63500 个端口组成,则这很快就会变成大量内存。这总共将超过 123 MB 的内存。但是,NAT-PT 为每个传输层协议维护单独的可用 IP+ 端口对。这使内存使用量超过369 MB(123MB * 3协议;TCP, UDP, ICMP).但是,NAT-PT 使用一种动态机制,该机制仅在池耗尽时才分配 IP+ 端口对。通过这种方式,IP+端口对使用的内存非常小。

安全

在当今的计算机世界中,安全性是一个大问题。NAT-PT 通过在启动后不久删除根特权来降低大多数安全风险。保护 NAT-PT 实际上归结为保护它使用的配置文件,因为如果配置文件被篡改,则用于读取配置文件的当前机制可能会被利用(这将在将来的版本中更改)。配置文件应该只能由 root 用户读取,并且只能使用 naptd-confmaker 程序进行修改。如果远程攻击者修改了 NAT-PT 使用的配置文件,则他必须已经获得了 root 权限。当 NAT-PT 运行时,它需要对以下文件具有读取访问权限:

/proc/net/ipv6_route
/proc/net/route

如果您正在运行 SELinux,请确保 NAT-PT 可以读取它们。

可以尝试的一种 DOS 攻击情形是创建数千个半打开的 TCP 连接,以耗尽空闲的 IP+端口池。在这种情况下,攻击者必须位于其中一个内部 (IPv6) 网络上,才能使攻击可行。如果您遇到这种情况(检查NAT-PT的日志文件),您可以修改TCP转换超时。有关详细信息,请参阅配置详细信息

最后,还有在 NAT-PT 启动期间加载的应用程序级网关的情况。一种可能的情况是攻击者创建旨在使 NAT-PT 崩溃的 ALG,从而导致拒绝服务攻击。为了缓解这种攻击,NAT-PT 插件目录(/usr/lib/naptd/plugins)必须只能由 root 用户可读写。

高级功能

NAT-PT 采用许多高级功能,包括静态和动态入站映射以及单个 NIC 操作。您无需了解这些内容即可在简单的设置方案中使用 NAT-PT。但是,这些功能在特定情况下可能非常有用。

静态入站映射

在正常情况下,NAT-PT允许从网络内部(IPv6端)建立新连接。在这种情况下,源 IPv6 地址和端口将被转换并替换为 IP+端口对。根据您的网络拓扑,可能需要允许与某些内部主机建立远程连接。如果您正在运行公共 Web 或邮件服务器,则需要一种方法来允许远程主机连接到您的服务器。这可以使用静态入站映射来完成,这些映射可以使用naptd-confmaker进行配置。创建静态连接时,NAT-PT 将在公共 IPv4 地址和 IPv6 地址之间建立映射,并将在这些地址之间执行无状态转换。

使用静态映射时,主机之间的通信如下所示。

NAT-PT 查找静态映射并转换数据包。

服务器响应 TCP SYN 数据包。

NAT-PT 查找静态映射并转换数据包。

动态入站映射

使用静态入站映射的替代方法是使用动态入站映射。当您有大量服务器需要从仅 IPv4 客户端全局访问时,这可能特别有用。动态入站映射的工作方式是 NAT-PT 基于 DNS 信息创建入站映射。您可以使用 naptd-confmaker 首先创建一个 IPv4 地址范围,NAT-PT 将尝试在其上创建动态映射。然后,更新 DNS 信息,以便区域中的每个主机名都具有其 IPv6 地址和旧 IPv4 地址。

当仅支持 IPv4 的客户端尝试联系您的某个服务器时,NAT-PT 首先会查找给定目标 IPv4 地址的入站映射。如果找不到它,但目标 IPv4 地址属于动态入站映射范围,NAT-PT 将尝试使用 DNS 创建映射。此操作在以下步骤中发生。

第一个 NAT-PT 捕获目标属于动态入站映射范围的数据包。

NAT-PT 尝试对数据包的目标执行反向 DNS 解析。它由一个单独的线程处理,而所有其他数据包正在连续转换。

DNS 服务器使用目标的 FQDN 进行响应。

NAT-PT 在 FQDN 上执行 AAAA 查找。

DNS 服务器返回 AAAA 记录。

NAT-PT 在返回的 IPv6 地址和数据包的原始 IPv4 目标之间创建映射,然后转换数据包并将其发送到目的地。

单个网卡操作

为了使向IPv6的过渡更容易,NAT-PT被设计为在商用硬件上运行,并具有最低的系统要求。其功能之一是能够在只有一个网络接口卡 (NIC) 的系统上正确运行。要让 NAT-PT 使用单个 NIC,只需指定与 NAT 内部和外部相同的接口即可。只要您的计算机同时具有到 IPv4 和 IPv6 网络的路由,一切都应该可以正常工作。单个网卡设置如下所示。

应用程序级网关

在正常情况下,NAT-PT 仅限于转换 IP 标头和传输层标头。在某些情况下,这可能不足以确保完整的端到端透明通信,因为许多协议在其数据包的有效载荷中携带IP和端口信息,因此需要深度数据包检查和转换。NAT-PT通过使用基于插件的应用程序级网关(ALG)系统来实现此类功能,该系统扩展了其功能以合并深度数据包检查和转换。NAT-PT(v.0.4.2)的当前版本附带了两个这样的插件,旨在转换FTP和DNS协议。NAT-PT将在启动时打开/usr/lib/naptd/plugins,并尝试加载它在那里找到的任何ALG。将来,通过将新插件复制到插件目录并重新启动NAT-PT,将新插件添加到NAT-PT中。

文件传输协议

此 ALG 在检查和转换某些 FTP 响应代码和命令的基础上工作。它还跟踪和转换 TCP 序列号和确认编号,因为在跨越 IPv4/IPv6 边界时,数据包有效负载的大小会发生变化。将发生以下转换:

IPv4 端IPv6 端
150150
227229
泛美卫视每股收益

这是FTP插件的早期实现,可能无法在所有可能的情况下正常工作,它已被确认在大多数情况下有效。

域名系统

截至目前,DNS ALG 仅适用于 UDP DNS 连接。这将更改为将来包括基于 TCP 的 DNS 连接。此 ALG 通过规范和转换查询和资源记录 (RR) 来工作。它将 AAAA 请求转换为 A 请求,稍后将结果映射到 AAAA RR,并将查询类型转换回 AAAA。此 ALG 仍可能发生变化。


Comments

Popular posts from this blog

干翻 nio ,王炸 io_uring 来了 ,史上最详细说明及最全图解!!

Google谷歌镜像网址/网站大全,亲测可用!

便宜好用又稳定的VPN-桔子云,性价比极高!