我想完全避免我的 Mac OS X 计算机使用 ipv6。
我正在寻找一种编程方式来禁用每个网络接口上的 ipv6,并且可能完全避免内核支持 ipv6。
作为解释,我需要相当于在 Linux 中将“alias ipv6 off”添加到 modprobe.conf 中。
“不可能”的答案是值得欢迎的,当然,它得到了某种官方消息来源的支持。
编辑:
我想从日志、ipfw 和任何地方删除 ipv6。即使是为了知道这是否可能以及如何可能而感到满足。这样做是否正确是另一个问题:)
我已经使用 tc 和 htb 进行了流量整形,并且 IPv4 一切正常。现在我想将传入 IPv6 ssh/sftp 流量的带宽限制在合理的范围内,这样就不会干扰更关键的流量。简而言之,没有任何效果:
tc class add dev eth0 parent 1:0 classid 1:14 htb rate 3000kbit ceil 3000kbit prio 3
ip6tables -A POSTROUTING -t mangle -o eth0 -p tcp --dport 22 -j MARK --set-mark 14
tc filter add dev eth0 parent 1:0 protocol ip handle 14 fw flowid 1:14
# or
tc filter add dev eth0 parent 1:0 protocol ipv6 u32 match ip6 protocol 6 0xff match ip6 dport 22 0xffff flowid 1:14
# …Run Code Online (Sandbox Code Playgroud) 我将 Elastic Load Balancer 配置为作为双栈工作。我在 Route 53 上创建了记录集,类型 A 和 AAAA 指向 Elastic Load Balancer。通过 IPv4,它可以工作
我使用这个站点通过 IPv6 测试我的站点:ipv6-test.com/validate.php
它返回以下内容:
我需要做什么才能让其他两个步骤工作?
VPC、子网和实例配置为接受 IPv6
编辑:
路线表:
在我们的网络课程中,我们被要求在虚拟机中设置 DHCPv6 服务器。我选择在运行 Ubuntu Desktop 16.04 和 Lubuntu 14.04 的虚拟机(在 VMware 上)上工作,作为测试客户端,并为特定 LAN 设置网络适配器。我首先将 isc-dhcp-server 配置为在这篇文章中描述的 IPv6 功能,最后我得到了一个正常运行的 dhcpv6,其中包含一个包含以下行的配置文件(/etc/dhcp/dhcpd6.conf):
ddns-update-style none;
default-lease-time 100;
max-lease-time 200;
subnet6 2001:4340:4532:0400::/64{
range6 2001:4340:4532:0400::0004 2001:4340:4532:0400::0006;
}
Run Code Online (Sandbox Code Playgroud)
我还对 init 脚本进行了必要的更改,以设置 .conf、.pid、租用文件并使用静态地址配置接口 ens33,如下所示:静态 ip set through gui
问题是客户端正在接收 /128 地址。
经过一番研究,我发现 DHCPv6 服务器不提供有关前缀长度的信息,并且必须使用路由器广告进行广播。所以,我在同一个 VM 上安装了 radvd,启用转发,禁用 ufw 并使用以下配置文件对其进行配置:
interface ens33{
#this is important :
AdvSendAdvert on;
MaxRtrAdvInterval 6;
MinRtrAdvInterval 4;
#this is important to :
AdvManagedFlag on;
AdvOtherConfigFlag off;
prefix 2001:4340:4532:400::/64
{
AdvOnLink on; …Run Code Online (Sandbox Code Playgroud) 我正在 Ubuntu 中测试 IPv6 的实现。我的 Ubuntu linux 客户端正确地从服务器获取 RA 并在广告前缀中配置一个地址。接下来,它通过具有/128掩码的DHCP 获取另一个地址。
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether f8:a9:63:0c:3c:cb brd ff:ff:ff:ff:ff:ff
inet6 2001:xxxx:1f15:yyyy::9/128 scope global
valid_lft forever preferred_lft forever
inet6 2001:xxxx:1f15:yyyy:faa9:63ff:fe0c:3ccb/64 scope global dynamic
valid_lft 82162sec preferred_lft 10162sec
inet6 fe80::faa9:63ff:fe0c:3ccb/64 scope link
valid_lft forever preferred_lft forever
Run Code Online (Sandbox Code Playgroud)
我/128对这个地址的掩码很感兴趣,这意味着点对点链接。为什么是面具/128而不是,说/64?
这是 DHCPv6 的正常行为还是与我的 DHCP 服务器的配置有关?
我似乎无法在 Amazon EC2 的 Fedora 28 中使用 IPv6(因此使用 cloud-init 和 DHCPv6)。
它使用此处描述的配置在 RHEL 7 中工作。将相同的配置应用于 Fedora 28 似乎没有任何作用。特别是,/etc/sysconfig/network它不得到改写包含NETWORKING_IPV6=yes,也不/etc/sysconfig/network-scripts/ifcfg-eth0包含任何IPv6的东西。
我的/etc/cloud/cloud.cfg.d/56-custom-networking.cfg包含:
network:
version: 1
config:
- type: physical
name: eth0
subnets:
- type: dhcp
- type: dhcp6
Run Code Online (Sandbox Code Playgroud)
生成的/etc/sysconfig/network是:
NOZEROCONF=yes
DEVTIMEOUT=10
# Created by cloud-init on instance boot automatically, do not edit.
#
NETWORKING=yes
Run Code Online (Sandbox Code Playgroud)
生成的/etc/sysconfig/network-scripts/ifcfg-eth0是:
# Created by cloud-init on instance boot automatically, do not edit.
# …Run Code Online (Sandbox Code Playgroud) 目前,在我的 IPv4-only 服务上,用户可以将他们的 IP 地址列入白名单,这允许他们在登录时绕过电子邮件 2 因素身份验证。当他们这样做时,我们只将该单个 IP 地址列入白名单,因为假设每个 ISP 客户都获得他们自己的 IPv4 地址(至少在美国)。
我们想要启用 IPv6 支持,在研究 IPv6 子网划分的工作原理后,我们发现我们需要将整个 IPv6 子网而不是单个地址列入白名单。
搜索有关 serverfault 的其他 IPv6 问题,似乎有关于将哪个子网委派给每个 ISP 最终用户的信息存在冲突。看到这个答案:
/56:256 个基本子网的块。尽管当前的政策允许 ISP 向每个最终用户分发大至 /48 的块,并且仍然认为他们的地址使用是合理的,但一些 ISP 可能(并且已经这样做)选择将 /56 分配给消费级客户作为妥协分配之间
/48:一个由 65536 个基本子网组成的块以及每个 ISP 客户端站点应接收的推荐块大小。
仅基于该答案,对于每个用户收到的 IPv6 块,已经有 3 个相互矛盾的陈述:
那么对于使用 IP 地址进行白名单的服务,哪个 IPv6 块适合列入白名单?我应该让用户决定吗?(用户相当精通技术并且知道子网是什么)
我想通过一个公共 IPv6 地址将多个设备(在 LAN 中)连接到 Internet。
不幸的是,我没有找到一个好的方法来做到这一点。我唯一的想法是在 Sense 之前通过 OpenVPN 将 PF/OPNsense 中的所有内容通过隧道传输到 Raspberry Pi 或类似设备,然后使用来自 Pi 的 IPv6 连接到 Internet。
计划的设置是 Internet (WAN) - Fritzbox (LAN1) - PFSense / OPNsense(带 WAN 接口)- LAN2
还有其他可能吗?VPN 解决方案不是很好。
为什么?为每个(私有)设备分配自己的公共 IP(也带有隐私扩展)可以简化跟踪。此外,某些设备没有隐私扩展或未激活。
出于监控目的,我想找出移动战士 UNIX 机器的所有公共 IPv4 和 IPv6 地址。
请注意,这与在 shell 脚本中查找公共 IP 地址不同,因为有以下额外要求:
我正在运行基于运行 Debian stable (Buster) 的 Linux 服务器的路由器。它使用 Quagga 将 BGP4 与四个对等方(其中一个发送 IPv4 和 IPv6 的整个 Internet 路由表,其他发送的路由少得多)。
每天大约一到两次,服务器会在大约五分钟内失去 IPv6 连接。
发生这种情况时,服务器似乎无法向 IPv6 地址发送任何数据包。看来这会影响任何地址和接口 - 连接到 Internet 的主要以太网适配器以及连接到内置管理适配器(Lenovo XClarity 控制器)的特殊“Ethernet-over-USB”接口。但是,它可以 ping ::1 以及它自己的任何地址(本地链接和路由地址)。
此外,“ip -6 neigh ls”不显示任何“REACHABLE”,只显示“STALE”或“DELAY”。尽管如此,路由器本身上的 tcpdump 似乎没有显示任何邻居请求数据包出来。当我尝试访问同一 LAN 上的另一台机器时,目标上的 tcpdump 也没有显示收到任何邻居请求数据包。
这种状态持续约五分钟,之后一切恢复正常,无需任何人工干预。
IPv4 连接似乎不受此影响。
我试图通过运行分析工具(ping、vmstat、perf 记录)、保存它们的输出并将它们与时间相关联来对此进行更多分析。到目前为止,我可以说的是:
问题发生时似乎没有过多的网络流量
似乎没有任何类型的 RAM 或 CPU 使用率峰值
Internet 的正常运行会每隔一段时间导致一些增量路由表更改,这些更改由 quagga 执行;它们似乎与中断无关;这种中断也会发生在变化相对较小的时期之后
在任何时候,perf 都将 fib6_walk_continue 显示为最重要的符号之一;通常大约 5% 的开销。但是,几乎就在 IPv6 连接停止时,以下符号出现在顶部:
fib6_walk_continue(大约 30%) native_queued_spin_lock_slowpath(大约 10%) fib6_age(大约 10%)
最初它们似乎都属于“交换器”cmd。大约一分钟后,quagga 注意到它无法再访问对等方并开始删除 IPv6 路由;发生这种情况时,相同的三个符号出现在 perf 输出中,属于斑马。
当正常的 perf 输出返回时(intel_idle …
ipv6 ×10
dhcpv6 ×3
amazon-ec2 ×2
linux ×2
networking ×2
routing ×2
cloud-init ×1
fedora ×1
ip-address ×1
ipv4 ×1
latency ×1
mac-osx ×1
nat ×1
pfsense ×1
radvd ×1
subnet ×1
ubuntu-14.04 ×1
ubuntu-16.04 ×1
xargs ×1