安全 IPv6 邻居发现
总结适用于 IPv6 流量的安全邻接方发现 (SEND) 协议可以防止访问广播段的攻击者通过加密 NDP 或 ARP 哄骗主机发送向其他人发送的攻击者流量,这是一种称为 ARP 中毒的技术。
了解安全 IPv6 邻居发现
IPv6 邻居发现协议 (NDP) 的一项功能是,将网络层 (IP) 地址解析为链路层地址(例如以太网)地址,这是地址解析协议 (ARP) 在 IPv4 中执行的功能。安全邻接方发现 (SEND) 协议可防止访问广播段的攻击者通过加密 NDP 或 ARP 哄骗主机发送向其他人发送的攻击者流量,这是一种称为 ARP 中毒的技术。
为了防范 ARP 中毒和针对 NDP 功能的其他攻击,应部署 SEND 以阻止访问广播段。
SEND 使用 RSA 密钥对生成加密生成的地址,如 RFC 3972"加密生成地址 (CGA) "定义。这将确保 NDP 消息的声称来源是索赔地址的所有者。
示例:配置安全 IPv6 邻居发现
此示例展示如何配置 IPv6 安全邻居发现 (SEND)。
要求
此示例具有以下要求:
Junos OS 9.3 或更高版本
网络中部署的 IPv6
如果尚未配置,则必须生成或安装 RSA 密钥对。
要生成新的 RSA 密钥对,请输入以下命令:
user@host> request security pki generate-key-pair type rsa certificate-id certificate-id-name size size
概述
要配置 SEND,请包含以下语句:
protocols { neighbor-discovery { onlink-subnet-only; secure { security-level { (default | secure-messages-only); } cryptographic-address { key-length number; key-pair pathname; } timestamp { clock-drift number; known-peer-window seconds; new-peer-window seconds; } traceoptions { file filename <files number> <match regular-expression> <size size> <world-readable | no-world-readable>; flag flag; no-remote-trace; } } } }
指定 默认 以发送和接收安全和不安全的邻接方发现协议 (NDP) 数据包。要配置 SEND 以仅接受安全的 NDP 消息并删除不安全的 NDP 消息。指定 仅安全消息。
如果使用了仅安全消息选项,则分段上的所有节点都需要配置SEND,除非只有一小部分设备需要更高的保护,否则建议这样做。无法配置所有节点的 SEND 可能会导致连接丢失。
拓扑
配置
程序
CLI快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以匹配网络配置,然后将命令复制并粘贴到 层次结构级别的 CLI 中 [edit]
。
set protocols neighbor-discovery secure security-level secure-messages-only set protocols neighbor-discovery secure cryptographic-address key-length 1024 set protocols neighbor-discovery secure cryptographic-address key-pair /var/etc/rsa_key set protocols neighbor-discovery secure timestamp
逐步过程
以下示例要求您在配置层次结构中导航各个级别。有关导航指南CLI,请参阅 CLI 用户指南 中的 在配置模式下CLI 编辑器。
要配置安全 IPv6 邻居发现:
配置安全级别。
[edit protocols neighbor-discovery secure] user@host# set security-level secure-messages-only
(可选)启用密钥长度。
默认密钥长度为 1024。
[edit protocols neighbor-discovery secure] user@host# set cryptographic-address key-length 1024
(可选)指定为加密地址生成的公共-私钥文件的目录路径。
文件的默认位置为 /var/etc/rsa_key 目录。
[edit protocols neighbor-discovery secure] user@host# set cryptographic-address key-pair /var/etc/rsa_key
(可选)配置时间戳以确保不会重放教唆和重定向消息。
[edit protocols neighbor-discovery secure] user@host# set timestamp
结果
在配置模式下,输入 命令以确认 show protocols
您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。
user@host# show protocols
neighbor-discovery {
secure {
security-level {
secure-messages-only;
}
cryptographic-address {
key-length 1024;
key-pair /var/etc/rsa_key;
}
timestamp;
}
}
如果完成设备配置,请从配置 模式输入 commit 。
验证
确认配置工作正常。
检查 IPv6 邻居缓存
目的
显示有关 IPv6 邻设备的信息。
行动
在操作模式下,输入 show ipv6 neighbors
命令。
意义
在 IPv6 中,地址解析协议 (ARP) 已替换为 NDP。IPv4 命令 show arp
将被 IPv6 命令取代 show ipv6 neighbors
。此命令显示的关键信息包括 IP 地址、MAC(链路层)地址和接口。
追踪邻居发现事件
目的
通过追踪发送执行其他验证。
行动
配置跟踪操作。
[edit protocols neighbor-discovery secure] user@host# set traceoptions file send-log user@host# set traceoptions flag all
运行
show log
命令。user@host> show log send-log Apr 11 06:21:26 proto: outgoing pkt on idx 68 does not have CGA (fe80::2a0:a514:0:14c), dropping pkt Apr 11 06:26:44 proto: sendd_msg_handler: recv outgoing 96 bytes on idx 70 with offset 40 Apr 11 06:26:44 dbg: sendd_proto_handler: Modifier (16) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Apr 11 06:26:44 cga: snd_is_lcl_cga: BEFORE overriding cc, cc:0, ws->col:0 Apr 11 06:26:44 proto: outgoing pkt on idx 70 does not have CGA (fe80::2a0:a514:0:24c), dropping pkt Apr 11 06:26:47 proto: sendd_msg_handler: recv outgoing 96 bytes on idx 68 with offset 40 Apr 11 06:26:47 dbg: sendd_proto_handler: Modifier (16) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
意义
输出显示,由于数据包没有加密生成的地址,因此数据包被丢弃。