我有一个在 Azure 中运行的 Centos7 VM 实例。它有一个可通过互联网访问的公共 IPv4 地址。我想向该实例的网络接口添加公共 IPv6 地址,但我不知道如何执行此操作。似乎没有办法将其从门户添加到界面。我查阅了文档,但似乎有冲突的信息表明这是不可能的,或者只能通过创建新的虚拟机来实现。我也尝试过这一点,但再次无法使其发挥作用。我在 Google 上找到的信息似乎已过时。
如果有人能建议是否可以将公共 IPv4 和 IPv6 地址分配给同一个虚拟机,以及如果可以的话如何实现,我将非常感激。谢谢!
我的服务器在 IPv4 和 IPv6 上运行。Docker 在(本地)IPv4 地址(即 192.168.100.1/24)上运行。我没有在内部启用 IPv6,daemon.json因为我知道这会带来很多问题,并且需要我拥有完整的 IPv6 /64 范围可用。
例如,反向代理 nginx docker 容器正在运行superuser.one,该 IP 可通过 IPv4 和 IPv6 访问。
# dig superuser.one +short a
85.17.140.73
# dig superuser.one +short aaaa
2001:1af8:4200:a003:1:aaaa:0:123
Run Code Online (Sandbox Code Playgroud)
IPv6 正在运行:
# ping6 superuser.one -c 1
PING superuser.one(2001:1af8:4200:a003:1:aaaa:0:123 (2001:1af8:4200:a003:1:aaaa:0:123)) 56 data bytes
64 bytes from 2001:1af8:4200:a003:1:aaaa:0:123 (2001:1af8:4200:a003:1:aaaa:0:123): icmp_seq=1 ttl=57 time=19.5 ms
--- superuser.one ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 19.526/19.526/19.526/0.000 ms …Run Code Online (Sandbox Code Playgroud) 为了在我的 docker 设置中启用 IPv6,我已在文件中进行了设置/etc/docker/daemon.json:
{
"ipv6": true,
"fixed-cidr-v6": "2a01:xxxx:yyyy:zzzz/64"
}
Run Code Online (Sandbox Code Playgroud)
我从我的 ISP 处获得2a01:xxxx:yyyy:zzzz并通过 找到它ip addr | grep inet6 | grep global。
我的 ISP 不断改变该zzzz位,并且在重新启动路由器时它也会改变。
问题:
fixed-cidr-v6为某些链接本地值fd00:...)我刚刚使用 GO6 为我的服务器(运行 Ubuntu Karmic Koala)设置了一个 IPV6 隧道,我正在尝试为它制定用例。
我有一个动态 IP 地址和一些奇怪的代理设置,这些设置使自动 DDNS 目前不适用于大多数提供商 - 我定期最终需要手动完成
我的网络服务器已经在运行 IPv6,除此之外很少有人支持它(我需要解决这个问题!),它不那么麻烦。
虽然我有其他选择(Google 应用程序),但我正在考虑运行电子邮件服务器,并想知道 IPv4 是否因端口阻塞而“失败”,它将切换到 IPv6,以及 IPv6 邮件服务器如何处理发送邮件到 IPv4 系统?
问:我正在使用 IPv6 并将其转换为 IPv4,反之亦然。
我想访问 http://127.0.0.1/
并做了标准的 ipv4 到 ipv6 计算:AA = 127 BB = 0 CC = 0 DD = 1
与架构
0000:0000:0000:0000:0000:ffff:AABB:CCDD
Run Code Online (Sandbox Code Playgroud)
这让我:
0000:0000:0000:0000:0000:ffff:7F00:0001
Run Code Online (Sandbox Code Playgroud)
所以我试过了
http://[:::::ffff:7F00:1]
Run Code Online (Sandbox Code Playgroud)
但它没有显示任何东西。通过一些谷歌搜索,我发现我需要
http://[::1]/
Run Code Online (Sandbox Code Playgroud)
使用 IPv6 访问环回接口。
现在我并没有太惊讶,因为环回接口可能是一个特例。但后来我尝试访问我的公共文件服务器:
http://88.84.21.77/
Run Code Online (Sandbox Code Playgroud)
我计算出的 IPv6 地址是
http://[::ffff:5854:154d]/
Run Code Online (Sandbox Code Playgroud)
但它也没有解决。
现在我的问题是:我在转换时做错了什么,或者它不是这样工作的。
或者可能是因为我的服务器或 ISP 不支持 IPv6?我的服务器在 Ubuntu 9.04 下运行,带有所有必要的补丁。
主动提供的邻居通告对于促进 HA 集群中的快速服务地址接管是必要的。对于 IPv4 (ARP),您可以使用“arping -U”,但到目前为止,我还没有找到任何可以对 IPv6 执行类似操作的工具。
编辑:搜索更多之后,问题可能是:IPv6 需要这个工具吗?在我看来,NDP 应该能够自己解决这个问题。
因此,我相信仅支持 IPv6 的客户端可以使用如下地址访问 IPv4 服务器:::ffff:0:74.125.226.80(这将是 google.com 的地址)。我还不是 IPv6,但我可能很快。我设置了一个 miredo/teredo 隧道,我可以 ping 正常的 IPv6 地址就好了,但是当我运行时:
ping6 ::ffff:0:74.125.226.80
Run Code Online (Sandbox Code Playgroud)
它失败了(目标无法访问:地址无法访问)
我误解了什么吗?我真的可以通过 IPv6 连接访问 IPv4 主机吗?
在 IPv4 下,我经常使用 nmap 扫描我的整个 IP 范围以识别新连接的设备并更新我的文档、追踪和关闭不属于网络的东西等。我什至有自动执行此操作的工具,例如,我的 AV 软件扫描定义的 IP 范围,然后在该范围内它可以看到的任何内容上安装 AV 软件。
这在 IPv6 下是不可行的,因为我将从扫描几千个 IP 地址到很多个。
替代方案是什么?路由器/交换机能否报告他们最近看到的 IPv6 地址,以便我可以端口扫描网络上的所有内容?这是我能看到的唯一方法,但我希望SF会有更多更好的想法。
在 Linux 上设置 IPv6 非常简单,您可以遵循 IPv4 指南并给自己一个静态 IPv6 地址。
在 Solaris 上,事情并不那么乐观,IPv6 仅在运行in.ripng. 运行此程序后,您将在本地 LAN 段上获得 IPv6 地址自动配置。因此,虽然我为 Solaris 配置了一个静态 IPv6 地址,但最终我得到了三个地址,即链接本地作用域、静态全局作用域和一个自动配置的全局作用域:
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
eri0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 10.6.28.36 netmask ffffff00 broadcast 10.6.28.255
lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1
inet6 ::1/128
eri0: flags=2100841<UP,RUNNING,MULTICAST,ROUTER,IPv6> mtu 1500 index 2
inet6 fe80::203:baff:fe4e:6cc8/10
eri0:1: flags=2100841<UP,RUNNING,MULTICAST,ROUTER,IPv6> mtu 1500 index 2
inet6 2002:dce8:d28e::36/64
eri0:2: flags=2180841<UP,RUNNING,MULTICAST,ADDRCONF,ROUTER,IPv6> mtu 1500 index 2
inet6 2002:dce8:d28e:0:203:baff:fe4e:6cc8/64
Run Code Online (Sandbox Code Playgroud)
eri0:1是我为匹配 …
我有两台服务器都运行 Windows 2008,同时运行 IPV4 和 IPV6。
如果在 server1 上我 ping server2 这样
ping server2
Run Code Online (Sandbox Code Playgroud)
我得到的回应是
Pinging server2 [2002:9b08:a21::9b08:a21]
Run Code Online (Sandbox Code Playgroud)
但是,如果我从本地计算机(同时运行 IPV4 和 IPV6 的 Windows 7)ping server2,我会得到
Pinging server2 [155.8.10.33]
Run Code Online (Sandbox Code Playgroud)
IPV6 的 TCP/IP 属性在服务器和我的本地机器上是相同的。但是,与 IPV4 的属性存在一些差异。
本地机器 IPV4 属性:

服务器 IPV4 属性:

我能看到的唯一其他区别是,在服务器上的 ipconfig 中,“特定于连接的 DNS 后缀”是空白的,而在本地机器上,它设置为域。