标签: ipv6

由于IPv6将取代IPv4,我应该开发新的应用程序来支持它吗?

我使用多种语言和一些平台开发应用程序.从我正在阅读的内容来看,IPv6将在未来5到10年内成为主流,并且一些ISP甚至提供与IPv6互联网的直接连接.在我的专用网络上,所有计算机都具有双栈连接,并在可能的情况下使用IPv6进行相互通信.

我的问题是:我的新应用程序是否应该支持IPv6?如果是这样,我需要考虑哪些事情?现在支持IPv6有什么缺点吗?

我不知道这是否会有所帮助或伤害,但这里有一些更具体的细节可能会指出一些答案:

我的应用程序将在Windows/Linux/Mac上运行,它将包含为每个平台单独编写的特定于平台的组件,以及以解释语言编写的通用"核心"组件.

我的应用程序应该能够找到在三个平台中的任何一个上运行的自身的其他实例,并且支持任何两台机器之间的TCP和UDP.

architecture networking ipv6

4
推荐指数
1
解决办法
746
查看次数

Whats a/the "bluebook" in the context of network programming?

My local header /usr/include/linux/if_ether.h has the following define:

#define ETH_P_IPV6     0x86DD /* IPv6 over bluebook */
Run Code Online (Sandbox Code Playgroud)

What is bluebook? I've never heard this term, and a cursory internet search didn't reveal anything related to network programming.

network-programming ethernet ipv6 linux-kernel

4
推荐指数
1
解决办法
711
查看次数

从网络命名空间 Ping 外部 IPv6 地址

我需要从网络命名空间访问外部 IPv6 地址。

在我的主机中,我设置了一个 SIT 隧道 (IPv6-in-IPv4),它对 IPv6 数据包进行隧道传输并通过默认接口 (eth0) 发送它。SIT 隧道依赖于 Hurricane Electric 隧道代理服务。我可以从主机 ping 外部 IPv6 地址。

$ ping6 ipv6.google.com
PING ipv6.google.com(lis01s13-in-x0e.1e100.net) 56 data bytes
64 bytes from lis01s13-in-x0e.1e100.net: icmp_seq=1 ttl=57 time=98.1 ms
64 bytes from lis01s13-in-x0e.1e100.net: icmp_seq=2 ttl=57 time=98.7 ms
Run Code Online (Sandbox Code Playgroud)

以下是有关隧道的一些详细信息:

$ ip -6 route sh
2001:470:1f14:10be::/64 dev he-ipv6  proto kernel  metric 256
default dev he-ipv6  metric 1024
Run Code Online (Sandbox Code Playgroud)

有趣的部分来了。由于超出此问题范围的原因,我需要从网络命名空间内执行相同的操作(ping ipv6.google.com)。

以下是我创建和设置网络命名空间的方法:

ns1.sh

#!/bin/bash

set -x

if [[ $EUID -ne 0 ]]; then
   echo "You must run this …
Run Code Online (Sandbox Code Playgroud)

networking ipv6 linux-containers

4
推荐指数
1
解决办法
2444
查看次数

如何为 HttpWebRequest 或 WebRequest C# 强制使用 ipv6 或 ipv4

来自 node.js 我可以这样做来告诉 node.js 使用 ipv6 和 ipv4 发出请求

var http = require("http");
var options = {
  hostname: "google.com",
  family: 4, // set to 6 for ipv6
};
var req = http.request(options, function(res) {
  .. handle result here ..
});
req.write("");
req.end();
Run Code Online (Sandbox Code Playgroud)

设置family4强制 ipv4,将其设置为6强制 ipv6。不设置它可以让任何一个工作。

我如何在 C# (.NET 3.5) 中做同样的事情

我可以想到一种方法,即自己为 A 或 AAAA 记录发出 DNS 请求,发出直接 IP 请求并设置host:标头。有没有更好的办法?

c# network-programming ipv4 ipv6

4
推荐指数
2
解决办法
4745
查看次数

在Azure防火墙中允许ipv6地址

我需要访问在Azure中运行的SQL数据库,但我已经分配了一个ipv6-address.Azure防火墙设置似乎不支持此功能.有没有办法获得访问权限而无需获得新的IP?ip-field中不接受星号.

在此输入图像描述

firewall ipv6 azure azure-sql-database

4
推荐指数
1
解决办法
3354
查看次数

检查 ipv6 是否在范围内

我有maxmind的ipv6数据。这是我当前的表(带有示例数据):

+---------------+------------+
|    network    | geoname_id |
+---------------+------------+
| 2001:208::/32 |        123 |
| 2001:218::/32 |       4312 |
+---------------+------------+
Run Code Online (Sandbox Code Playgroud)

使用他们的转换器,我可以创建一个network_start_ipnetwork_last_ip列:

+------------------+----------------------------------------+------------+
| network_start_ip |            network_last_ip             | geoname_id |
+------------------+----------------------------------------+------------+
| 2001:200::       | 2001:200:ffff:ffff:ffff:ffff:ffff:ffff |        123 |
| 2001:208::       | 2001:208:ffff:ffff:ffff:ffff:ffff:ffff |       4312 |
+------------------+----------------------------------------+------------+
Run Code Online (Sandbox Code Playgroud)

我期待这样的事情会起作用(尽管它可能比其他方法慢):

SELECT b.geoname_id FROM blocks b 
WHERE HEX(INET6_ATON('2001:201:ffff:ffff:ffff:ffff:ffff:ffff')) BETWEEN HEX(b.network_start_ip) AND HEX(b.network_last_ip)
Run Code Online (Sandbox Code Playgroud)

那么,我错过了什么?另外,存储 ipv6 地址(范围)的最佳方式是什么

谢谢

mysql ipv6 mariadb

4
推荐指数
1
解决办法
3169
查看次数

我可以 ping v6 映射的 v4 地址吗?

如果我有一个地址10.3.3.2,将它映射到 v6 将导致 0:0:0:0:0:ffff:a03:302。我可以 ping 10.3.3.2,但是 ping 0:0:0:0:0:ffff:a03:302 会出现“No route to host”错误。现在,我无法从我的网络中 ping 任何 IPv6 地址,因此预计会出现错误。

我很好奇
ping6 0:0:0:0:0:ffff:a03:302

如果 IPv6 流量完美无缺。

ipv6

4
推荐指数
1
解决办法
1163
查看次数

如何为本地计算机上的 ZeroMQ REQ/REP 设置指定 IPv6 地址?

我无法让 zmq 服务器和客户端与 IPv6 进行通信,而它可以通过 C++ 轻松地与 IPv4 配合使用。

这是我的 ip a 显示的:

2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 1c:1b:0d:0c:d7:bc brd ff:ff:ff:ff:ff:ff
inet 192.168.35.208/24 brd 192.168.35.255 scope global dynamic enp0s31f6
   valid_lft 7193sec preferred_lft 7193sec
inet6 fe80::fb7:c6df:9d3a:3d7b/64 scope link 
   valid_lft forever preferred_lft forever
Run Code Online (Sandbox Code Playgroud)

服务器:

zmq::context_t context(1);
zmq::socket_t server (context, ZMQ_REP);

server.setsockopt( ZMQ_IPV6, 1);

server.bind("tcp://*:5555%enp0s31f6");
Run Code Online (Sandbox Code Playgroud)

客户:

zmq::context_t context(1);
zmq::socket_t client (context, ZMQ_REQ);

client.setsockopt( ZMQ_IPV6, 1);

client.connect("tcp://[fe80::fb7:c6df:9d3a:3d7b]:5555%enp0s31f6");
Run Code Online (Sandbox Code Playgroud)

服务器等待监听,客户端发送消息,服务器永远不会收到它。IPv4 运行良好。

怎么了?

ipv6 zeromq

4
推荐指数
1
解决办法
1879
查看次数

在 AWS 上启用 API 网关 IPv6?

我使用 Lambda 和 API Gateway 来构建 API。而且,我了解到 AWS CloudFront 支持 IPv6。我想使用自定义域,并根据 API 网关的要求使用 ACM 创建了证书。

但是,当我使用http://ready.chair6.net测试是否找到 CloudFront URL 的 AAAA 记录时,未找到 AAAA 记录。

许多博客文章假设 CloudFront 分发设置是可访问的。但是,当我们使用 API Gateway 创建 CloudFront 分配时,您无法更改分配的设置 - 不能从控制台更改。

如何为 API 网关启用 IPv6?

dns ipv6 amazon-web-services

4
推荐指数
1
解决办法
4643
查看次数

IPV4 流量不适用于 AWS 仅出口互联网网关

我已为我的私有子网分配了仅出口互联网网关。现在我可以连接 IPV6 网站,但不能连接 IPV4 地址。

我是否需要 NAT 网关才能从我的 EC2 计算机访问 IPV4 地址?(仅限传出流量)

ipv4 ipv6 amazon-ec2 amazon-web-services private-subnet

4
推荐指数
1
解决办法
2081
查看次数