9 个版本
使用旧版 Rust 2015
0.1.10 | 2018 年 8 月 9 日 |
---|---|
0.1.9 | 2018 年 8 月 9 日 |
0.1.5 | 2018 年 7 月 31 日 |
#55 in #ipv4
在 3 crates 中使用
610KB
11K SLoC
网络
network 是一系列 Rust crates,旨在简化网络操作。
许可
本项目的许可协议为 AGPL3。
lib.rs
:
network-internet-protocol
4 和 6 版本互联网协议的主机地址、掩码、网络地址、数据包及相关类型的域模型。
此 crate 具有可选功能 dpdk-sys
,它添加了对将 DPDK 表示转换为 Into 和 From 的支持。
此 crate 还具有以下默认功能:-
drop-packets-with-ipv4-options
:丢弃具有 IP 选项的互联网协议(IP)版本 4 数据包。违反 RFC 791,但 IP 选项很少使用,少数使用过的有潜在的被用作攻击向量,且对图书馆没有任何意义。drop-packets-with-ipv4-options-lacking-zero-padding
:丢弃 IP 选项列表末尾没有零填充的具有 IP 选项的互联网协议(IP)版本 4 数据包。这是一个严格的检查,对性能的影响非常小。drop-ipv4-packets-with-do-not-fragment-and-non-zero-identification
:丢弃设置 Do Not Fragment(DF)标志且标识不为零的互联网协议(IP)版本 4 数据包。违反 RFC 6864 第 4.1 节第 5 段,但没有很好的理由发送设置 DF 且标识不为零的 IP 数据包。特别是,在这种情况下,标识字段可以用作隐蔽通道,并推断 NAT 代理后面的设备数量。drop-ipv6-packets-with-non-zero-flow-label
:丢弃流标签不为零的互联网协议(IP)版本 6 数据包。没有很好的理由接收此类数据包用于 ICMP、TCP 和 UDP 流。drop-ipv6-fragments-when-first-reserved-field-is-not-zero
:丢弃首保留字段不为零的互联网协议(IP)版本 6 数据包的片段扩展报头。违反 RFC 8200 第 4.5 节,但没有很好的理由接收此类数据包。drop-ipv6-fragments-when-second-reserved-field-is-not-zero
:丢弃第二保留字段不为零的互联网协议(IP)版本 6 数据包的片段扩展报头。违反 RFC 8200 第 4.5 节,但没有很好的理由接收此类数据包。drop-overly-small-ipv6-fragments-aggresively
:我们始终丢弃小于所需大小(444字节MSS)的分片。此设置丢弃(除最后一个外)小于使用1280字节MSS可能使用的分片。违反了RFC 8200第4.5节,但没有很好的理由接收此类数据包。
依赖项
~1–8MB
~202K SLoC