标签: icmpv6

使用 radvd 通告子网路由

我们已经建立了一个小型的 IPv6 测试网络。设置如下所示:

    ::/0
+----------+
| Firewall | Router to the public net
+----------+
     |           2001:...::/106
     |       +----------+
     +-------|  SIT GW  | sit Tunnel gatway to the some test users
     |       +----------+
     |
+----------+
| Test Sys |  Testsystem
+----------+
Run Code Online (Sandbox Code Playgroud)

这个想法是通告来自防火墙的默认路由和来自坐网关的 SIT 子网的路由。radvd 的配置是:

# Firewall
interface eth0
{
   AdvSendAdvert on;
   route ::/0 
   {
   };
};


# SIT Gatway
interface eth0
{
   AdvSendAdvert on;
   route 2001:...::/106
   {
   };
};
Run Code Online (Sandbox Code Playgroud)

我们已经捕获了 adv。带有 tcpdump 的包,这些包看起来不错。我们看到来自 fw 的默认路由和来自 SIT 网关的子网路由。

但是,如果我们查看测试系统,则两个网关上都有两条默认路由。没有子网路由。路由当然不起作用。这里我们得到的路线:

2001:.....::/64 dev …
Run Code Online (Sandbox Code Playgroud)

linux ipv6 radvd icmpv6

7
推荐指数
1
解决办法
7636
查看次数

IPv6 - 允许传入的 ICMP 回显请求

因此,我们最近从 LIR 获得了 /48 前缀,并开始在实验室中进行小规模部署。

让我感到奇怪的是,像http://ipv6-test.com/这样的网站坚持要求您允许传入的 ICMP Echo 请求。我明白为什么你应该允许 ICMPv6 传出,但传入?即使它只是一个ping?

所以,我的问题是:除了可能使用 ICMP 的 DDoS 攻击之外,允许传入的 ICMP 回声请求是否有任何缺点?

我阅读了 RFC4890 ( https://www.ietf.org/rfc/rfc4890.txt ),但在那里找不到明确的答案。

A.5. ICMPv6 回声请求和回声响应

表明

人们认为对设计良好的 IPv6 网络(参见第 3.2 节)进行扫描攻击不会带来重大风险,因此默认情况下应允许连接检查。

鉴于 RFC 已经快 10 年了,这一点仍然有效吗?此外,RFC 不区分传出和传入方向。

我一直觉得 v4 的建议是在网关阻止 ICMP,但话说回来,v6 严重依赖 ICMP。

那么,有什么建议吗?

ipv6 icmp icmpv6

6
推荐指数
1
解决办法
6805
查看次数

如何在Linux上很好地进行邻居发现请求?

我正在寻找一种方法来检索 LAN 网络上特定主机的 MAC 地址。我知道它的 IPv6 地址。理想情况下,我想要一种方法来触发 Linux 内核为我执行邻居请求,然后我可以通过命令检索主机 MAC 地址ip -6 neighbour

目前,我发现触发邻居请求的唯一方法是尝试在随机端口上建立到主机的 TCP 连接。但我觉得这个解决方案并不漂亮:

curl --connect-timeout 1 "http://[fe80::1234%eth0]:12345"
Run Code Online (Sandbox Code Playgroud)

linux ipv6 ndp icmpv6

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

ICMPv6 RA 中的 IPv6、多个路由器和可能的错误前缀通告

我的网络上设置了两个“路由器”类型的设备。

一个是我实际的 IPv6 路由器 - Cisco 2621 ( fe80::xxxx:3e60)。这是正确的默认路由器。

另一个是 DLINK DIR-615 ( fe80::xxxx:5760)。它支持 IPv6,但目前仅配置为链路本地寻址,因为它仅用作 WAP。

两个设备都在发送 ICMPv6 RA 消息,因此它们都被添加到我客户端的路由表中:

$ ip -f inet6 route | grep default
default via fe80::xxxx:3e60 dev wlan0  proto kernel  metric 1024  expires 1741sec mtu 1500 advmss 1440 hoplimit 64
default via fe80::xxxx:5760 dev wlan0  proto kernel  metric 1024  expires 1791sec mtu 1500 advmss 1440 hoplimit 64
Run Code Online (Sandbox Code Playgroud)

问题在于我的客户现在可以选择默认路由器。一个在途中愉快地发送数据包,另一个则没有。我可以删除不正确的路线,但它只会在下一个 RA 出现时重新添加。

fe80::xxxx:3e60 (正确的路由器)正在发送 RA,广告前缀为 2001:xxxx:xxxx::/64(我的网络)

fe80::xxxx:5760 (不正确的路由器)正在发送 RA,通告前缀为 fe80::/64(本地链路)

那么……这是谁的错?

  • fe80::xxxx:5760 用于在无法提供有效前缀时发送 RA?
  • fe80::xxxx:5760 …

ipv6 icmpv6

3
推荐指数
1
解决办法
4113
查看次数

过滤 IPv6 ICMPv6 消息

所以我在我的家庭网络上更多地使用 IPv6,而且我做的事情有点老式 - 设置静态地址等。这意味着我并不真正想要或关心通过各种 ICMPv6 消息内置到 IPv6 中的所有自动配置。但是运行wireshark并仅捕获IPv6流量,我的两个运行Linux的IPv6系统被证明是闲聊的小东西。他们不断地交换“邻居请求”、“邻居广告”和 ICMPv6 多播侦听器报告“数据包。他们在我为每台机器设置的静态分配的 ULA 地址和自动配置的本地链路地址上执行此操作.

我的问题是,如何在 Linux 中禁用这些功能?我通过“netsh”命令找到了几个适用于 Windows 的指南(这让我很惊讶——Windows 在这方面似乎比 Linux 更可调)。到目前为止,我在 Linux 中的唯一选择似乎是使用 ip6tables 来阻止特定的 ICMPv6 消息类型。但是,查看 RFC4890,它们暗示如果 IPv6 主机要成功加入 IPv6 网络,就不能阻止这些消息。

我对 IPv6 协议的阅读表明,它深受大型企业网络面临的问题的影响。协议工程师似乎不太关心小型专用网络。如果您是大型公司或其他此类企业网络的系统管理员,这很好,但如果您只是“某个人”试图在家庭网络上玩弄协议来学习它,那就有点烦人了。我的学习方法意味着建立像我的 IPv4 网络这样的东西作为基线,然后根据需要启用功能。

所以我问专家,我应该在我的 Linux 和 Windows 主机上禁用这三种消息类型吗?如果我这样做,它会严重破坏我的内部 IPv6 设置吗?当我到达那个阶段时,它将如何影响外部 IPv6(我的 ISP 还没有为客户分配 IPv6 地址,因此目前还没有外部 IPv6 路由,也没有 6 到 4 隧道)?ip6tables 是我在 Linux 中唯一的选择吗?

我还假设我被链接本地地址卡住了,对吧?没有办法摆脱它们吗?他们不可能记住......(也许这就是他的意思?)

networking ipv6 icmpv6

2
推荐指数
1
解决办法
1377
查看次数

多播监听器报告消息 v2

我运行 ICMPv6 协议,并使用wireshark 进行了捕获。在捕获中,我有一些多播侦听器报告消息 v2。有些有源ip,ipv6链接本地地址,但有些有::作为源地址?请您告诉我为什么发送带有 :: 源地址的多播侦听器报告消息 v2?

谢谢!

ipv6 multicast icmpv6 mld

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

IPv6 PPP 链路无法将路由器广告转发到本地 LAN

Debian 服务器具有eth0, eth1. eth2ppp0设备:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether xx:yy:zz:yy:xx:yy brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether xx:yy:zz:yy:xx:yy brd ff:ff:ff:ff:ff:ff
4: eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether xx:yy:zz:yy:xx:yy brd ff:ff:ff:ff:ff:ff
63: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast state UNKNOWN qlen 3
    link/ppp
Run Code Online (Sandbox Code Playgroud)

到处都启用转发:

/proc/sys/net/ipv6/conf ~
  all/forwarding=1  default/forwarding=1
 eth0/forwarding=1     eth1/forwarding=1
 eth2/forwarding=1     ppp0/forwarding=1
Run Code Online (Sandbox Code Playgroud)

并且 autoconf 也被激活:

/proc/sys/net/ipv6/conf …
Run Code Online (Sandbox Code Playgroud)

ipv6 forwarding point-to-point-protocol icmpv6

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