维基百科指出:
单播和任播地址通常由两个逻辑部分组成:用于路由的64 位网络前缀和用于标识主机网络接口的 64 位接口标识符。
您是否可以使用超过 64 位的数据来识别网络——或者这是否不符合任何 RFC?另外:您可以使用超过 64 位来识别主机吗?
我知道这些问题可能没有任何实际用途,因为对于大多数网络来说 2 ^ 64 个地址就足够了。我只是好奇。
作为学校项目的一部分,我正在构建一个包含大约 10 个虚拟路由器和 20 台主机(也已虚拟化)的实验室网络。目的是展示广泛的 IPv6 路由、部署和转换机制。但是,有一个问题......我只能使用非常有限的网络资源 - 最大。10 个具有单独打开的端口/协议的 IP。对于这样的双栈网络,我需要至少 /25 的 IPv4 空间来舒适地实现网络,而无需求助于私有 IP 范围和 NAT(至少在骨干区域),并且还能够演示 6to4 和类似机制.
从当地学术 LIR 获得临时 IP 范围分配是可能的,但这是一个相当大的官僚负担(不太可能在 4 月份我的项目到期时完成)。运行 BGP 也不是我的选择,所以我无法带上自己的 PI 空间。
由于网络的性能对我来说不是很重要,我想,我可以使用隧道来“带来”更多的 IP 到网络。我知道有很多 IPv6 隧道代理,所以让 IPv6 进入并不是真正的问题。我正在寻找的是一个类似的概念,仅适用于 IPv4 地址 - 不是单个地址,而是整个子网。
那么,是否存在一个 IPv4 隧道代理,我可以在其中租用一个子网并通过隧道(GRE、IPIP、OpenVPN 等)将其路由给我?
我知道在 IPv4 子网掩码中,网络由第一组、第二组或第三组八位字节决定。IPv6中字符多,如何确定子网掩码?
让我揭开我的意图。
我的主机免费提供数百个 IPV6 地址,但对 IPV4 地址收费。我在一台服务器下有多个站点,我想知道是否可以为每个站点/域提供自己的 ipv6 地址。
这甚至可能吗?如果是这样怎么办?
我已经阅读了很多关于 ipv6 的内容,但我并没有像我想要的那样清楚地理解它。
我的主要目标是,每个域/站点都拥有自己唯一的 IP,因此有人无法进行反向 IP 查找并查看我在该服务器上拥有哪些站点。
预先感谢您的耐心。
像我们许多人一样,我有一个 apache 服务器(2.2.15,加上补丁),上面有很多虚拟主机。可以肯定的是,我拥有的 IPv4 地址不止于此,这就是为什么我使用 NameVirtualHost 在同一个 IPv4 地址上运行大量它们的原因。
我正忙于让我所做的一切都支持 IPv6。这台服务器现在有一个路由 /64,这让我感觉很糟糕很多V6地址,就可以到处乱扔。我试图找到的是一种告诉每个 v4-NameVirtualHost 它也应该在唯一的 ipv6 地址上充当 VirtualHost 的简单方法。我真的,真的不想定义每个虚拟主机两次。
有谁知道一种优雅的方式来做到这一点?或者做一些类似的事情,以防我在我的问题中嵌入了任何危险的无知假设?
我在混合 IPv4 / IPv6 环境中工作。我读到可以使用此语法将 IPv4 地址映射到 IPv6 空间
::ffff:1.2.3.4(1.2.3.4 是 IPv4 地址)
Linux 是否支持这种表示法?所有这些都在我的服务器上失败:
ping6 ::ffff:1.2.3.4 # to the server IP
ping6 ::ffff:127.0.0.1
Run Code Online (Sandbox Code Playgroud) 我正在努力熟悉 ipv6 我不明白为什么我不能在 inet6 addr ping 这个接口
eth1 Link encap:Ethernet HWaddr 08:00:27:77:9e:77
inet addr:192.168.33.10 Bcast:192.168.33.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe77:9e77/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:363 errors:0 dropped:0 overruns:0 frame:0
TX packets:332 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:38402 (38.4 KB) TX bytes:81402 (81.4 KB)
Interrupt:16 Base address:0xd060
$bash ping6 fe80::a00:27ff:fe77:9e77
connect: Invalid argument
Run Code Online (Sandbox Code Playgroud) 我的 L3 核心交换机 Nortel ERS 8600 兼容 IPv6。但是,在迁移到 IPv6 的过程中,我们是否还需要检查基于 VLAN 的园区网络中边缘/分布交换机的兼容性?
目前我有以下内容的“ports.conf”:
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
Listen 443
NameVirtualHost *:443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
Run Code Online (Sandbox Code Playgroud)
因此,要添加 IPv6,我必须将其更改为:
NameVirtualHost 91.64.99.215:80
Listen 91.64.99.215:80
NameVirtualHost [2a01:4f8:140:54e4::3]:80
Listen [2a01:4f8:140:54e4::3]:80
<IfModule mod_ssl.c>
Listen 443
NameVirtualHost 91.64.99.215:443
NameVirtualHost [2a01:4f8:140:54e4::3]:443
</IfModule>
<IfModule mod_gnutls.c>
Listen 91.64.99.215:443
Listen [2a01:4f8:140:54e4::3]:443
</IfModule>
Run Code Online (Sandbox Code Playgroud)
这样对吗?
我担心的是,如果我这样做,所有虚拟主机都设置为
<VirtualHost *:80>
ServerName www.domain.tld
ServerAlias domain.tld
DocumentRoot /www/domain
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
会发疯。如果不是这种情况,请执行
<VirtualHost *:80 [*]:80>
ServerName www.domain.tld
ServerAlias domain.tld
DocumentRoot /www/domain
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
还应该通过 IPv6 使域可用吗?
我在这里有点困惑,无法从现有的“示例”中获得太多帮助,我们将不胜感激。
我愿意为 IPv6 配置 iptables 和 ip6tables。但是由于某些未知原因,我的配置中的最后一个 ip6tables 规则阻止了我的服务器的任何传出连接(apt-get、wget、ping、ping6 等)。服务器是 Debian 8.1,这是一个配置了 IPv6 的 DO droplet。
这是配置:
#!/bin/sh
# Flush all existing first
sudo iptables -F
# Disable tracking
sudo iptables -t raw -I PREROUTING -p tcp --dport 80 -j NOTRACK
sudo iptables -t raw -I PREROUTING -p tcp --dport 22 -j NOTRACK
sudo iptables -t raw -I OUTPUT -p tcp --dport 80 -j NOTRACK
sudo iptables -t raw -I OUTPUT -p tcp --dport 22 -j NOTRACK
# Local
sudo iptables …Run Code Online (Sandbox Code Playgroud) ipv6 ×10
ipv4 ×5
apache-2.2 ×2
ping ×2
bgp ×1
debian ×1
httpd.conf ×1
ip-address ×1
linux ×1
migration ×1
networking ×1
reverse-dns ×1
subnet ×1
tunneling ×1
virtualhost ×1
vpn ×1