Networking support 网络支持
优质
小牛编辑
126浏览
2023-12-01
Networking support
网络支持
- Networking options
CONFIG_NET - 网络选项.systemd依赖于它
- Packet socket
CONFIG_PACKET - 链路层PF_PACKET套接字支持.可以让应用程序(比如:抓包工具tcpdump,DHCP客户端dhclient,WiFi设置工具wpa_supplicant)直接与网络设备通讯,而无需使用内核中的其它中介协议.不确定的选"Y"或"M".
- Packet: sockets monitoring interface
CONFIG_PACKET_DIAG - PF_PACKET套接字监控接口,ss这样的诊断工具需要它.
- Packet: sockets monitoring interface
- Unix domain sockets
CONFIG_UNIX - Unix domain sockets 支持.许多程序都使用它在操作系统内部进行进程间通信(IPC),比如: X Window, syslog, udev 等等.选"Y",除非你确实知道自己在做什么.
- UNIX: socket monitoring interface
CONFIG_UNIX_DIAG - UNIX套接字监控接口,ss这样的工具需要它.
- UNIX: socket monitoring interface
- Transformation user configuration interface
CONFIG_XFRM_USER - 为IPsec相关的工具提供Transformation(XFRM)用户配置接口
- Transformation sub policy support
CONFIG_XFRM_SUB_POLICY - XFRM子策略支持,不确定的选"N".
- Transformation migrate database
CONFIG_XFRM_MIGRATE - 用于动态的更新 IPsec SA(security association) 的定位器(locator).这个特性对于手机这类移动设备来讲至关重要,因为它需要在不同的基站之间迁移.不确定的选"N".
- Transformation statistics
CONFIG_XFRM_STATISTICS - 转换统计,这不是SNMP/MIB规范的内容.用于调试目的.不确定的选"N".
- PF_KEY sockets
CONFIG_NET_KEY - PF_KEYv2 套接字支持(与KAME兼容).PF_KEY协议族主要用来处理SA(安全关联),对SADB(SA数据库)进行管理,主要用在IPsec协议中.PF_KEY_v2的编程API在RFC2367中定义.
- PF_KEY MIGRATE
CONFIG_NET_KEY_MIGRATE - 向PF_KEYv2套接字中添加一个
PF_KEY MIGRATE 消息. PF_KEY MIGRATE 消息可用于动态的更新 IPsec SA(security
association)
的定位器(locator).这个特性对于手机这类移动设备来讲至关重要,因为它需要在不同的基站之间迁移.不确定的选"N".
- PF_KEY MIGRATE
- TCP/IP networking
CONFIG_INET - TCP/IP协议,必选!
- IP: multicasting
CONFIG_IP_MULTICAST - IP多播(IP multicasting)支持.指的是一个发送者向一组特定的接收者发送数据,但只需发送一份数据副本.实际应用的场合很少,MBONE算是其中之一,与RTP等音视频协议相结合也算一种.不确定的选"N".
- IP: advanced router
CONFIG_IP_ADVANCED_ROUTER - 高级路由支持,需要开启内核的IP转发功能(echo 1 > /proc/sys/net/ipv4/ip_forward)才能正常工作.如果这个Linux系统用作专业的路由器就选上,选上之后还需要按需选择其下的子项.一般的主机不需要这个.
- FIB TRIE statistics
CONFIG_IP_FIB_TRIE_STATS - 主要用于测试TRIE性能
- IP: policy routing
CONFIG_IP_MULTIPLE_TABLES - 策略路由
- IP: equal cost multipath
CONFIG_IP_ROUTE_MULTIPATH - 用于基于目的地址的负载均衡
- IP: verbose route monitoring
CONFIG_IP_ROUTE_VERBOSE - 显示冗余的路由监控信息
- FIB TRIE statistics
- IP: kernel level autoconfiguration
CONFIG_IP_PNP - 在内核启动时自动配置网卡的ip地址/路由表,配置信息来自于以下途径:内核引导参数,自举协议(BOOTP),反向地址转换协议(RARP),动态主机配置协议(DHCP).通常,需要从网络启动的无盘工作站才需要这个东西(此时还需要开启CONFIG_ROOT_NFS),一般的发行版都通过启动脚本(dhcpcd/dhclient/ifconfig)配置网络.不确定的选"N".
- IP: DHCP support
CONFIG_IP_PNP_DHCP - DHCP协议支持
- IP: BOOTP support
CONFIG_IP_PNP_BOOTP - BOOTP协议支持
- IP: RARP support
CONFIG_IP_PNP_RARP - RARP协议支持
- IP: DHCP support
- IP: tunneling
CONFIG_NET_IPIP - IP隧道,主要目的是为了在TCP/IP网络中传输其他协议的数据包,当然也包括IP数据包(例如用于实现VPN).
- IP: GRE demultiplexer
CONFIG_NET_IPGRE_DEMUX - GRE demultiplexer 支持.被CONFIG_NET_IPGRE和CONFIG_PPTP所依赖.
- IP: GRE tunnels over IP
CONFIG_NET_IPGRE - 基于IP的通用路由封装(Generic Routing Encapsulation)隧道支持.该驱动主要用于对端是Cisco路由器的场合,因为Cisco的路由器特别偏好GRE隧道(而不是CONFIG_NET_IPIP),并且GRE还允许通过隧道对组播进行再分发.
- IP: broadcast GRE over IP
CONFIG_NET_IPGRE_BROADCAST - GRE/IP的一种应用是构建一个广播WAN(Wide Area Network),而其看上去却很像一个跑在互联网上的LAN(Local Area Network).如果你想要创建这样的网络,那么就选"Y"(还要加上CONFIG_IP_MROUTE).
- IP: broadcast GRE over IP
- IP: multicast routing
CONFIG_IP_MROUTE - 组播路由支持.实际应用的场合很少,MBONE算是其中之一,不确定的选"N".
- IP: multicast policy routing
CONFIG_IP_MROUTE_MULTIPLE_TABLES - 通常,组播路由器上会运行一个单独的用户态守护进程,根据源地址和目的地址来处理数据包.开启此项后,将能同时考虑数据包所带的标记(mark)和所通过的网络接口,并可在用户空间同时运行多个守护进程,每一个进程处理一张路由表.
- IP: PIM-SM version 1 support
CONFIG_IP_PIMSM_V1 - Sparse Mode PIM (Protocol Independent Multicast) version 1 支持. 该协议被Cisco路由器广泛支持,你需要特定的软件(pimd-v1)才能使用它.
- IP: PIM-SM version 2 support
CONFIG_IP_PIMSM_V2 - Sparse Mode PIM (Protocol Independent Multicast) version 2 支持. 该协议的使用并不广泛,你需要特定的软件(pimd 或 gated-5)才能使用它.
- IP: multicast policy routing
- IP: ARP daemon support
CONFIG_ARPD - 通常情况下,内核自身会使用ARP协议解析本地网络中的IP地址与MAC地址的对应关系,并进行缓存.开启此项后,内核将使用用户空间的守护进程进行ARP解析.这主要是为了使用其他的替代解析协议(比如mGRE隧道中的NHRP),或调试目的.不确定的选"N".
- IP: TCP syncookie support
CONFIG_SYN_COOKIES - TCP syncookie 支持,这是抵抗SYN flood攻击的好东西.此特性的开关可以通过"/proc/sys/net/ipv4/tcp_syncookies"文件控制,写入"1"表示开启,写入"0"表示关闭.建议服务器环境开启此项.
- Virtual (secure) IP: tunneling
CONFIG_NET_IPVTI - 虚拟IP隧道.可以和xfrm隧道一起使用,以实现IPSEC安全隧道,并在其上使用路由协议.不确定的选"N".
- IP: Foo (IP protocols) over UDP
CONFIG_NET_FOU - 允许将任意IP层协议封装到UDP隧道中.不确定的选"N".
- IP: AH transformation
CONFIG_INET_AH - IPsec AH 支持.IPsec验证头(AH)可对整个数据包(IP报头与数据)提供身份验证/完整性/抗重播保护.但是它不提供保密性,即它不对数据进行加密.由于这个原因,AH头正在慢慢被ESP头取代.
- IP: ESP transformation
CONFIG_INET_ESP - IPsec ESP
支持.IPsec封装安全负载(ESP)不仅为IP负载提供身份验证/完整性/抗重播保护,还提供保密性,也就是还对数据进行加密.ESP有两种使用模
式:传输模式(ESP不对整个数据包进行签名,只对IP负载(不含IP报头)进行保护)和隧道模式(将原始IP包封装进新的带有ESP头的IP包内,可提
供完整的保护).ESP可以独立使用,也可与AH组合使用(越来越少). - IP: IPComp transformation
CONFIG_INET_IPCOMP - IP静荷载压缩协议(IP Payload Compression Protocol)(RFC3173)支持.用于支持IPsec
- IP: IPsec transport mode
CONFIG_INET_XFRM_MODE_TRANSPORT - IPsec传输模式.常用于对等通信,用以提供内网安全.数据包经过了加密但IP头没有加密,因此任何标准设备或软件都可查看和使用IP头
- IP: IPsec tunnel mode
CONFIG_INET_XFRM_MODE_TUNNEL - IPsec隧道模式.用于提供外网安全(包括虚拟专用网络).整个数据包(数据头和负载)都已经过加密处理且分配有新的ESP头/IP头/验证尾,从而能够隐藏受保护站点的拓扑结构
- IP: IPsec BEET mode
CONFIG_INET_XFRM_MODE_BEET - IPsec BEET模式.
- Large Receive Offload (ipv4/tcp)
CONFIG_INET_LRO - LRO(Large Receive Offload)
(ipv4/tcp)
支持.它通过将多个TCP数据整合在一个skb结构中,并在稍后的某个时刻作为一个大的数据包交付给上层的网络协议栈,以减少上层协议栈处理skb的开
销,提高Linux系统接收TCP数据包的能力.目前,主流网卡驱动都已支持此特性.建议开启.不过,LRO不应该在路由器上开启,因为它破坏了end-to-end原则,并会对路由性能造成显著的不利影响. - INET: socket monitoring interface
CONFIG_INET_DIAG - INET(TCP,DCCP,...) socket 监视接口,一些Linux本地工具(如:包含ss的iproute2)需要使用它
- UDP: socket monitoring interface
CONFIG_INET_UDP_DIAG - UDP socket 监视接口,一些Linux本地工具(如:包含ss的iproute2)需要使用它
- UDP: socket monitoring interface
- TCP: advanced congestion control
CONFIG_TCP_CONG_ADVANCED - 高级拥塞控制,子项提供多种拥塞控制算法供选用.如果没有特殊需求就别选了,内核会自动将默认的拥塞控制设为"CUBIC"并将"new Reno"作为候补.仅在你确实知道自己需要的情况下选"Y".不确定的选"N".
- TCP: MD5 Signature Option support (RFC2385)
CONFIG_TCP_MD5SIG - RFC 2385 中描述了一种对TCP会话进行MD5签名的保护机制.目前仅用于保护互联网运营商骨干路由器间的BGP会话.一般的路由器/服务器等设备根本不需要这个.
- The IPv6 protocol
CONFIG_IPV6 - 引领未来的IPv6支持.
- IPv6: Privacy Extensions (RFC 3041) support
CONFIG_IPV6_PRIVACY - IPv6利用"Stateless Address Autoconfiguration"在无DHCP服务器的情况下,产生可用的"临时IPv6地址".而本选项则为这个机制增加"隐私扩展"(RFC4941)保护.默认状态下,内核并不生产"临时地址",需要"echo 2 >/proc/sys/net/ipv6/conf/all/use_tempaddr"才能开启
- IPv6: Router Preference (RFC 4191) support
CONFIG_IPV6_ROUTER_PREF - 主
机连上IPv6网络后,会发出路由器邀请包(Router Solicitation),路由器则应答路由器公告包(Router
Advertisement),其中包含网关地址/IPv6前缀/DNS地址,这样主机就能取得IPv6地址,并连接到互联网上,这就是无状态地址自动分
配(StateLess Address AutoConfiguration)."Router Preference"是"Router Advertisement"包的可选扩展.它可以改进主机选中路由器的能力,特别是在多归属(multi-homed)网络中.不确定的选"N". - IPv6: Route Information (RFC 4191) support
CONFIG_IPV6_ROUTE_INFO - 对"Route Information"的实验性支持.
- IPv6: Route Information (RFC 4191) support
- IPv6: Enable RFC 4429 Optimistic DAD
CONFIG_IPV6_OPTIMISTIC_DAD - 乐观重复地址检测(Optimistic Duplicate Address Detection)的实验性支持.可以更快的进行自动地址配置.不确定的选"N".
- IPv6: AH transformation
CONFIG_INET6_AH - IPsec AH 支持.不确定的选"Y"或"M".AH头正在慢慢被ESP头取代.
- IPv6: ESP transformation
CONFIG_INET6_ESP - IPsec ESP 支持.不确定的选"Y"或"M".
- IPv6: IPComp transformation
CONFIG_INET6_IPCOMP - IPv6静荷载压缩协议(IP Payload Compression Protocol)(RFC3173)支持.用于支持IPsec.不确定的选"Y"或"M".
- IPv6: Mobility
CONFIG_IPV6_MIP6 - 移动IPv6(RFC3775)支持.主要用于移动设备.不确定的选"N".
- IPv6: IPsec transport mode
CONFIG_INET6_XFRM_MODE_TRANSPORT - IPsec传输模式.常用于对等通信,用以提供内网安全.数据包经过了加密但IP头没有加密,因此任何标准设备或软件都可查看和使用IP头.不确定的选"Y"或"M".
- IPv6: IPsec tunnel mode
CONFIG_INET6_XFRM_MODE_TUNNEL - IPsec隧道模式.用于提供外网安全(包括虚拟专用网络).整个数据包(数据头和负载)都已经过加密处理且分配有新的ESP头/IP头/验证尾,从而能够隐藏受保护站点的拓扑结构.不确定的选"Y"或"M".
- IPv6: IPsec BEET mode
CONFIG_INET6_XFRM_MODE_BEET - IPsec BEET模式.不确定的选"Y"或"M".
- IPv6: MIPv6 route optimization mode
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION - 移动IPv6(Mobile IPv6)路由优化模式.主要用于移动设备.不确定的选"N".
- IPv6: IPv6-in-IPv4 tunnel (SIT driver)
CONFIG_IPV6_SIT - 在IPv4网络上建立IPv6隧道.如果你希望可以通过IPv4网络接入一个IPv6网络,可以选"Y"或"M",否则选"N".
- IPv6: IPv6 Rapid Deployment (6RD)
CONFIG_IPV6_SIT_6RD - IPv6快速部署(6RD)支持.不确定的选"N".
- IPv6: IPv6 Rapid Deployment (6RD)
- IPv6: IP-in-IPv6 tunnel (RFC2473)
CONFIG_IPV6_TUNNEL - IPv6-in-IPv6/IPv4-in-IPv6 隧道(RFC2473)支持.不确定的选"N".
- IPv6: GRE tunnel
CONFIG_IPV6_GRE - 基于IPv6的通用路由封装(Generic Routing Encapsulation)隧道支持.该驱动主要用于对端是Cisco路由器的场合,因为Cisco的路由器特别偏好GRE隧道(而不是CONFIG_IPV6_TUNNEL),并且GRE还允许通过隧道对组播进行再分发.
- IPv6: Multiple Routing Tables
CONFIG_IPV6_MULTIPLE_TABLES - 多重路由表(Multiple Routing Tables)支持.不确定的选"N".
- IIPv6: source address based routing
CONFIG_IPV6_SUBTREES - 允许根据源地址或前缀进行路由.不确定的选"N".
- IIPv6: source address based routing
- IPv6: multicast routing
CONFIG_IPV6_MROUTE - 测试性的IPv6组播路由支持.实际应用的场合很少,不确定的选"N".
- IPv6: multicast policy routing
CONFIG_IPV6_MROUTE_MULTIPLE_TABLES - 通常,组播路由器上会运行一个单独的用户态守护进程,根据源地址和目的地址来处理数据包.开启此项后,将能同时考虑数据包所带的标记(mark)和所通过的网络接口,并可在用户空间同时运行多个守护进程,每一个进程处理一张路由表.
- IPv6: PIM-SM version 2 support
CONFIG_IPV6_PIMSM_V2 - IPv6 PIM multicast routing protocol PIM-SMv2 支持.
- IPv6: multicast policy routing
- IPv6: Privacy Extensions (RFC 3041) support
- NetLabel subsystem support
CONFIG_NETLABEL - NetLabel子系统支持.NetLabel子系统为诸如CIPSO与RIPSO之类能够在分组信息上添加标签的协议提供支持,看不懂就别选了.
- IP: multicasting
- Security Marking
CONFIG_NETWORK_SECMARK - 对网络包进行安全标记,类似于nfmark,但主要是为安全目的而设计.看不懂的就别选了
- Timestamping in PHY devices
CONFIG_NETWORK_PHY_TIMESTAMPING - 允许在硬件支持的前提下,为物理层(PHY)数据包打上时间戳.这会略微增加发送与接收的开销.不确定的选"N".
- Network packet filtering framework (Netfilter)
CONFIG_NETFILTER - Netfilter可以对数据包进行过滤和修改,可以作为防火墙("packet filter"或"proxy-based")或网关(NAT)或代理(proxy)或网桥使用.
- Network packet filtering debugging
CONFIG_NETFILTER_DEBUG - 仅供开发者调试Netfilter使用
- Advanced netfilter configuration
CONFIG_NETFILTER_ADVANCED - 选"Y"将会显示所有模块供用户选择,选"N"则会隐藏一些不常用的模块,并自动将常用模块设为"M".
- Bridged IP/ARP packets filtering
CONFIG_BRIDGE_NETFILTER - 如果你希望使用桥接防火墙就打开它.Docker依赖于它.不确定的选"N".
- Bridged IP/ARP packets filtering
- Core Netfilter Configuration
- 核心Netfilter配置(当包流过Chain时如果match某个规则那么将由该规则的target来处理,否则将由同一个Chain中的下一个规则进行匹配,若不match所有规则那么最终将由该Chain的policy进行处理)
- Netfilter ingress support
CONFIG_NETFILTER_INGRESS - 允许将入站包进行分类.
- Netfilter NFACCT over NFNETLINK interface
CONFIG_NETFILTER_NETLINK_ACCT - 允许通过NFNETLINK接口支持NFACCT(记账).
- Netfilter NFQUEUE over NFNETLINK interface
CONFIG_NETFILTER_NETLINK_QUEUE - 允许通过NFNETLINK接口支持NFQUEUE(排队).
- Netfilter LOG over NFNETLINK interface
CONFIG_NETFILTER_NETLINK_LOG - 允许通过NFNETLINK接口支持"LOG"(日志).该选项废弃了ipt_ULOG和ebg_ulog机制,并打算在将来废弃基于syslog的ipt_LOG和ip6t_LOG模块.
- Netfilter connection tracking support
CONFIG_NF_CONNTRACK - 连接追踪(connection tracking)支持,连接跟踪把所有连接都保存在一个表格内,并将每个包关联到其所属的连接.可用于报文伪装或地址转换,也可用于增强包过滤能力.
- Connection mark tracking support
CONFIG_NF_CONNTRACK_MARK - 允许对连接进行标记,与针对单独的包进行标记的不同之处在于它是针对连接流的. CONNMARK target 和 connmark match 需要它的支持.
- Connection tracking security mark support
CONFIG_NF_CONNTRACK_SECMARK - 允许对连接进行安全标记,通常这些标记包(SECMARK)复制到其所属连接(CONNSECMARK),再从连接复制到其关联的包(SECMARK).
- Connection tracking zones
CONFIG_NF_CONNTRACK_ZONES - "conntrack zones"支持.通常,每个连接需要一个全局唯一标示符,而"conntrack zones"允许在不同zone内的连接使用相同的标识符.
- Supply CT list in procfs (OBSOLETE)
CONFIG_NF_CONNTRACK_PROCFS - 已被废弃,选"N".
- Connection tracking events
CONFIG_NF_CONNTRACK_EVENTS - 连接跟踪事件支持.如果启用这个选项,连接跟踪代码将提供一个"notifier"链,它可以被其它内核代码用来获知连接跟踪状态的改变
- Connection tracking timeout
CONFIG_NF_CONNTRACK_TIMEOUT - 连接跟踪"timeout"扩展.这样你就可以在网络流上通过 CT target 附加超时策略.
- Connection tracking timestamping
CONFIG_NF_CONNTRACK_TIMESTAMP - 时间戳支持.这样你就能在连接建立和断开时打上时间戳.
- DCCP protocol connection tracking support
CONFIG_NF_CT_PROTO_DCCP - DCCP协议支持.
- SCTP protocol connection tracking support
CONFIG_NF_CT_PROTO_SCTP - SCTP协议支持.
- UDP-Lite protocol connection tracking support
CONFIG_NF_CT_PROTO_UDPLITE - UDP-Lite支持.
- Amanda backup protocol support
CONFIG_NF_CONNTRACK_AMANDA - Amanda备份协议支持.
- FTP protocol support
CONFIG_NF_CONNTRACK_FTP - 文件传输协议(FTP)支持.跟踪FTP连接需要额外的帮助程序.
- H.323 protocol support
CONFIG_NF_CONNTRACK_H323 - H.323协议支持.
- IRC protocol support
CONFIG_NF_CONNTRACK_IRC - IRC扩展协议DCC(Direct Client-to-Client Protocol)支持.该协议允许用户之间绕开服务器直接聊天和传输文件.
- NetBIOS name service protocol support
CONFIG_NF_CONNTRACK_NETBIOS_NS - NetBIOS协议支持.
- SNMP service protocol support
CONFIG_NF_CONNTRACK_SNMP - SNMP协议支持.
- PPtP protocol support
CONFIG_NF_CONNTRACK_PPTP - RFC2637 点对点隧道协议(Point to Point Tunnelling Protocol) 协议支持.
- SANE protocol support
CONFIG_NF_CONNTRACK_SANE - SANE协议支持.
- SIP protocol support
CONFIG_NF_CONNTRACK_SIP - SIP协议支持.
- TFTP protocol support
CONFIG_NF_CONNTRACK_TFTP - TFTP协议支持.
- Connection tracking netlink interface
CONFIG_NF_CT_NETLINK - 基于netlink的用户接口支持.
- Connection tracking timeout tuning via Netlink
CONFIG_NF_CT_NETLINK_TIMEOUT - 通过Netlink机制支持对连接追踪超时进行细粒度的调节:允许为特定的网络流指定超时策略,而不是使用统一的全局超时策略.
- Connection tracking helpers in user-space via Netlink
CONFIG_NF_CT_NETLINK_HELPER - 通过Netlink机制为用户空间的连接追踪帮助程序提供基础框架.
- NFQUEUE integration with Connection Tracking
CONFIG_NETFILTER_NETLINK_QUEUE_CT - 开启此项后,即使网络包已经在队列(NFQUEUE)中,它依然可以包含连接追踪信息.
- Connection mark tracking support
- Transparent proxying support
CONFIG_NETFILTER_TPROXY - 透明代理支持,也就是可以处理非本地的 IPv4 TCP/UDP 套接字.此功能需要配合一些iptables规则和策略路由才能工作.详见"Documentation/networking/tproxy.txt"文档.
- Netfilter Xtables support (required for ip_tables)
CONFIG_NETFILTER_XTABLES - 如果你打算使用 ip_tables, ip6_tables, arp_tables 之一就必须选上
- nfmark target and match support
CONFIG_NETFILTER_XT_MARK - "nfmark"是用户给包打上的一个自定义标记.用于match时,允许基于"nfmark"值对包进行匹配.用于target时,允许在"mangle"表中创建规则以改变包的"nfmark"值.
- ctmark target and match support
CONFIG_NETFILTER_XT_CONNMARK - "ctmark"是用户以连接为组,给同一连接中的所有包打上的自定义标记.用法与"nfmark"相似.
- set target and match support
CONFIG_NETFILTER_XT_SET - "set"是ipset工具创建的IP地址集合.使用match可以对IP地址集合进行匹配,使用target可以对集合中的项进行增加和删除.
- AUDIT target support
CONFIG_NETFILTER_XT_TARGET_AUDIT - 为被drop/accept的包创建审计记录.
- CHECKSUM target support
CONFIG_NETFILTER_XT_TARGET_CHECKSUM - 用于"mangle"表,为缺少校验和的包添加checksum字段的值.主要是为了兼容一些老旧的网络程序(例如某些dhcp客户端).
- "CLASSIFY" target support
CONFIG_NETFILTER_XT_TARGET_CLASSIFY - 允许为包设置优先级,一些qdiscs排队规则(atm,cbq,dsmark,pfifo_fast,htb,prio)需要使用它
- "CONNMARK" target support
CONFIG_NETFILTER_XT_TARGET_CONNMARK - 这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_CONNMARK
- "CONNSECMARK" target support
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK - 针对链接进行安全标记,同时还会将连接上的标记还原到包上(如果链接中的包尚未进行安全标记),通常与 SECMARK target 联合使用
- "CT" target support
CONFIG_NETFILTER_XT_TARGET_CT - 允许为包加上连接追踪相关的参数,比如"event"和"helper".
- "DSCP" and "TOS" target support
CONFIG_NETFILTER_XT_TARGET_DSCP - DSCP
target 允许对IPv4/IPv6包头部的DSCP(Differentiated Services
Codepoint)字段(常用于Qos)进行修改. TOS target 允许在"mangle"表创建规则以修改IPv4包头的TOS(Type
Of Service)字段或IPv6包头的Priority字段. - "HL" hoplimit target support
CONFIG_NETFILTER_XT_TARGET_HL - HL(IPv6)/TTL(IPv4) target 允许更改包头的 hoplimit/time-to-live 值.
- "HMARK" target support
CONFIG_NETFILTER_XT_TARGET_HMARK - 允许在"raw"和"mangle"表中创建规则,以根据特定范围的哈希计算结果设置"skbuff"标记.
- IDLETIMER target support
CONFIG_NETFILTER_XT_TARGET_IDLETIMER - 每个被匹配的包的定时器都会被强制指定为规则指定的值,当超时发生时会触发一个sysfs文件系统的通知.剩余时间可以通过sysfs读取.
- "LED" target support
CONFIG_NETFILTER_XT_TARGET_LED - 允许在满足特定条件的包通过的时候,触发LED灯闪烁.比如可以用于控制网卡的状态指示灯仅在有SSH活动的时候才闪烁.
- LOG target support
CONFIG_NETFILTER_XT_TARGET_LOG - 允许向syslog中记录包头信息.
- "MARK" target support
CONFIG_NETFILTER_XT_TARGET_MARK - 这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_MARK
- "NETMAP" target support
CONFIG_NETFILTER_XT_TARGET_NETMAP - NETMAP用于实现一对一的静态NAT(地址转换).
- "NFLOG" target support
CONFIG_NETFILTER_XT_TARGET_NFLOG - 通过nfnetlink_log记录日志.
- "NFQUEUE" target Support
CONFIG_NETFILTER_XT_TARGET_NFQUEUE - 用于替代老旧的 QUEUE target. 因为NFQUEUE能支持最多65535个队列,而QUEUE只能支持一个.
- "NOTRACK" target support (DEPRECATED)
CONFIG_NETFILTER_XT_TARGET_NOTRACK - 已被废弃,勿选.
- "RATEEST" target support
CONFIG_NETFILTER_XT_TARGET_RATEEST - RATEEST target 允许测量网络流的传输速率.[注: rateest match 允许根据速率进行匹配.]
- REDIRECT target support
CONFIG_NETFILTER_XT_TARGET_REDIRECT - REDIRECT是一种特别的NAT:所有进入的连接都被映射到其入口网卡的地址,这样这些包就会"流入"本机而不是"流过"本机.这主要用于实现透明代理.
- "TEE" - packet cloning to alternate destination
CONFIG_NETFILTER_XT_TARGET_TEE - 对包进行克隆,并将克隆的副本路由到另一个临近的路由器(Next Hop).
- "TPROXY" target support
CONFIG_NETFILTER_XT_TARGET_TPROXY - 类似于REDIRECT,但并不依赖于连接追踪和NAT,也只能用于"mangle"表,用于将网络流量重定向到透明代理.
- "TRACE" target support
CONFIG_NETFILTER_XT_TARGET_TRACE - 允许对包打标记,这样内核就可以记录每一个匹配到的规则.
- "SECMARK" target support
CONFIG_NETFILTER_XT_TARGET_SECMARK - 允许对包进行安全标记,用于安全子系统
- "TCPMSS" target support
CONFIG_NETFILTER_XT_TARGET_TCPMSS - 允许更改 TCP SYN 包的MSS(Maximum Segment Size)值,通常=MTU-40.
- "TCPOPTSTRIP" target support
CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP - 允许从TCP包头中剥离所有TCP选项.
- "addrtype" address type match support
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE - 根据地址类型进行匹配: UNICAST, LOCAL, BROADCAST, ... Docker依赖于它.
- "bpf" match support
CONFIG_NETFILTER_XT_MATCH_BPF - BPF(BSD Packet Filter)是一个强大的包匹配模块,用于匹配那些让过滤器返回非零值的包.
- "cluster" match support
CONFIG_NETFILTER_XT_MATCH_CLUSTER - 这
个模块可以用于创建网络服务器/防火墙集群,而无需借助价格昂贵的负载均衡设备.通常,在包必须被本节点处理的条件下,这个match返回"true".
这样,所有节点都可以看到所有的包,但只有匹配的节点才需要进行处理,这样就将负载进行了分摊.而分摊算法是基于对源地址的哈希值. - "comment" match support
CONFIG_NETFILTER_XT_MATCH_COMMENT - 这是一个"伪match",目的是允许你在iptables规则集中加入注释
- "connbytes" per-connection counter match support
CONFIG_NETFILTER_XT_MATCH_CONNBYTES - 允许针对单个连接内部每个方向(进/出)匹配已经传送的字节数/包数
- "connlabel" match support
CONFIG_NETFILTER_XT_MATCH_CONNLABEL - 允许向连接分配用户自定义的标签名.内核仅存储bit值,而名称和bit之间的对应关系由用户空间处理.与"connmark"的不同之处在于:可以同时为一个连接分配32个标志位(flag bit).
- "connlimit" match support
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT - 允许根据每一个客户端IP地址(或每一段客户端IP地址段)持有的并发连接数进行匹配.
- "connmark" connection mark match support
CONFIG_NETFILTER_XT_MATCH_CONNMARK - 这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_CONNMARK
- "conntrack" connection tracking match support
CONFIG_NETFILTER_XT_MATCH_CONNTRACK - 通用连接跟踪匹配,是"state"的超集,它允许额外的链接跟踪信息,在需要设置一些复杂的规则(比如网关)时很有用.Docker依赖于它.
- "cpu" match support
CONFIG_NETFILTER_XT_MATCH_CPU - 根据处理包所使用的CPU是哪个进行匹配
- "dccp" protocol match support
CONFIG_NETFILTER_XT_MATCH_DCCP - DCCP是打算取代UDP的新传输协议,它在UDP的基础上增加了流控和拥塞控制机制,面向实时业务
- "devgroup" match support
CONFIG_NETFILTER_XT_MATCH_DEVGROUP - 允许根据网卡所属的"设备组"进行匹配
- "dscp" and "tos" match support
CONFIG_NETFILTER_XT_MATCH_DSCP - dscp match 允许根据IPv4/IPv6包头的DSCP字段进行匹配, tos match 允许根据IPv4包头的TOS字段进行匹配
- "ecn" match support
CONFIG_NETFILTER_XT_MATCH_ECN - 允许根据IPv4 TCP包头的ECN字段进行匹配
- "esp" match support
CONFIG_NETFILTER_XT_MATCH_ESP - 允许对IPSec包的ESP头中的SPI(安全参数序列)范围进行匹配
- "hashlimit" match support
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT - 此项的目的是取代"limit",它基于你选定的源/目的地址和/或端口动态创建"limit bucket"哈希表.这样你就可以迅速创建类似这样的匹配规则:(1)为给定的目的地址以每秒10k个包的速度进行匹配;(2)为给定的源地址以每秒500个包的速率进行匹配
- "helper" match support
CONFIG_NETFILTER_XT_MATCH_HELPER - 加载特定协议的连接跟踪辅助模块,由该模块过滤所跟踪的连接类型的包,比如ip_conntrack_ftp模块
- "hl" hoplimit/TTL match support
CONFIG_NETFILTER_XT_MATCH_HL - 基于IPv6包头的hoplimit字段,或IPv4包头的time-to-live字段进行匹配
- "iprange" address range match support
CONFIG_NETFILTER_XT_MATCH_IPRANGE - 根据IP地址范围进行匹配,而普通的iptables只能根据"IP/mask"的方式进行匹配.
- "ipvs" match support
CONFIG_NETFILTER_XT_MATCH_IPVS - 允许根据包的IPVS属性进行匹配
- "length" match support
CONFIG_NETFILTER_XT_MATCH_LENGTH - 允许对包的长度进行匹配
- "limit" match support
CONFIG_NETFILTER_XT_MATCH_LIMIT - 允许根据包的进出速率进行规则匹配,常和"LOG target"配合使用以抵抗某些Dos攻击
- "mac" address match support
CONFIG_NETFILTER_XT_MATCH_MAC - 允许根据以太网的MAC地址进行匹配
- "mark" match support
CONFIG_NETFILTER_XT_MATCH_MARK - 这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_MARK
- "multiport" Multiple port match support
CONFIG_NETFILTER_XT_MATCH_MULTIPORT - 允许对TCP或UDP包同时匹配多个不连续的端口(通常情况下只能匹配单个端口或端口范围)
- "nfacct" match support
CONFIG_NETFILTER_XT_MATCH_NFACCT - 允许通过nfnetlink_acct使用扩展记账
- "osf" Passive OS fingerprint match
CONFIG_NETFILTER_XT_MATCH_OSF - 开启Passive OS Fingerprinting模块,以允许通过进入的TCP SYN包被动匹配远程操作系统.规则和加载程序可以从这里获取:http://www.ioremap.net/projects/osf
- "owner" match support
CONFIG_NETFILTER_XT_MATCH_OWNER - 基于创建套接字的本地进程身份(user/group)进行匹配,还可以用于检查一个套接字是否确实存在
- IPsec "policy" match support
CONFIG_NETFILTER_XT_MATCH_POLICY - 基于IPsec policy进行匹配
- "physdev" match support
CONFIG_NETFILTER_XT_MATCH_PHYSDEV - 允许对进入或离开所经过的物理网口进行匹配
- "pkttype" packet type match support
CONFIG_NETFILTER_XT_MATCH_PKTTYPE - 允许对封包目的地址类别(广播/组播/直播)进行匹配
- "quota" match support
CONFIG_NETFILTER_XT_MATCH_QUOTA - 允许对总字节数的限额值进行匹配
- "rateest" match support
CONFIG_NETFILTER_XT_MATCH_RATEEST - 根据 RATEEST target 评估的速率值进行匹配
- "realm" match support
CONFIG_NETFILTER_XT_MATCH_REALM - 允许根据iptables中的路由子系统中的realm值进行匹配.它与tc中的CONFIG_NET_CLS_ROUTE4非常类似.
- "recent" match support
CONFIG_NETFILTER_XT_MATCH_RECENT - recent match 用于创建一个或多个最近使用过的地址列表,然后又可以根据这些列表再进行匹配.
- "sctp" protocol match support
CONFIG_NETFILTER_XT_MATCH_SCTP - 支持根据流控制传输协议(SCTP)源/目的端口和"chunk type"进行匹配.
- "socket" match support
CONFIG_NETFILTER_XT_MATCH_SOCKET - can
be used to match packets for which a TCP or UDP socket lookup finds a
valid socket. It can be used in combination with the MARK target and
policy routing to implement full featured non-locally bound sockets. - "state" match support
CONFIG_NETFILTER_XT_MATCH_STATE - 这是对包进行分类的有力工具,它允许利用连接跟踪信息对连接中处于特定状态的包进行匹配
- "statistic" match support
CONFIG_NETFILTER_XT_MATCH_STATISTIC - 允许根据一个给定的百分率对包进行周期性的或随机性的匹配
- "string" match support
CONFIG_NETFILTER_XT_MATCH_STRING - 允许根据包所承载的数据中包含的特定字符串进行匹配
- "tcpmss" match support
CONFIG_NETFILTER_XT_MATCH_TCPMSS - 允许根据TCP SYN包头中的MSS(最大分段长度)选项的值进行匹配
- "time" match support
CONFIG_NETFILTER_XT_MATCH_TIME - 根据包的到达时刻(外面进入的包)或者离开时刻(本地生成的包)进行匹配
- "u32" match support
CONFIG_NETFILTER_XT_MATCH_U32 - "u32"允许从包中提取拥有特定mask的最多4字节数据,将此数据移动(shift)特定的位数,然后测试其结果是否位于特定的集合范围内.更多细节可以直接参考内核源码(net/netfilter/xt_u32.c)
- nfmark target and match support
- Netfilter ingress support
- IP set support
CONFIG_IP_SET - 为内核添加IP集(IP set)支持,然后就可以使用CONFIG_NETFILTER_XT_SET功能.此特性必须配合用户态工具ipset一起使用.
- Maximum number of IP sets
CONFIG_IP_SET_MAX - 默认的最大"set"数,取值范围是[2,65534].此值也可以由ip_set模块的max_sets参数设置.
- bitmap:ip set support
CONFIG_IP_SET_BITMAP_IP - "bitmap:ip"集合类型.根据IP地址范围设定集合.
- bitmap:ip,mac set support
CONFIG_IP_SET_BITMAP_IPMAC - "bitmap:ip,mac"集合类型.根据IP/MAC地址对范围设定集合.
- bitmap:port set support
CONFIG_IP_SET_BITMAP_PORT - "bitmap:port"集合类型.根据端口范围设定集合.
- hash:ip set support
CONFIG_IP_SET_HASH_IP - "hash:ip"集合类型.为多个离散的IP地址设定集合.
- hash:ip,port set support
CONFIG_IP_SET_HASH_IPPORT - "hash:ip,port"集合类型.为多个离散的IP/MAC地址对设定集合.
- hash:ip,port,ip
CONFIG_IP_SET_HASH_IPPORTIP - "hash:ip,port,ip"集合类型.为多个离散的IP/端口/IP三元组设定集合.
- hash:ip,port,net set support
CONFIG_IP_SET_HASH_IPPORTNET - "hash:ip,port,net"集合类型.为多个离散的IP/端口/网段三元组设定集合.
- hash:net set support
CONFIG_IP_SET_HASH_NET - "hash:net"集合类型.为多个离散的网段设定集合
- hash:net,port set support
CONFIG_IP_SET_HASH_NETPORT - "hash:net,port"集合类型.为多个离散的网段/端口对设定集合
- hash:net,iface set support
CONFIG_IP_SET_HASH_NETIFACE - "hash:net,iface"集合类型.为多个离散的网段/网卡接口对设定集合
- list:set set support
CONFIG_IP_SET_LIST_SET - "list:set"集合类型.将多个集合组成一个更大的集合
- Maximum number of IP sets
- IP virtual server support
CONFIG_IP_VS - IPVS(IP Virtual Server)支持.IPVS可以帮助LVS基于多个后端真实服务器创建一个高性能的虚拟服务器.可以使用三种具体的方法实现:NAT,隧道,直接路由(使用较广).
- IPv6 support for IPVS
CONFIG_IP_VS_IPV6 - 为IPVS添加IPv6支持
- IP virtual server debugging
CONFIG_IP_VS_DEBUG - 为IPVS添加调试支持
- IPVS connection table size (the Nth power of 2)
CONFIG_IP_VS_TAB_BITS - 设置IPVS连接哈希表的大小(2CONFIG_IP_VS_TAB_BITS),取值范围是[8,20],默认值12的意思是哈希表的大小是212=4096
项.IPVS连接哈希表使用链表来处理哈希碰撞.使用大的哈希表能够显著减少碰撞几率,特别是哈希表中有成千上万连接的时候.比较恰当的值差不多等于每秒
的新建连接数乘以每个连接的平均持续秒数.太小的值会造成太多碰撞,从而导致性能大幅下降;太大的值又会造成占用太多不必要的内存(每个表项8字节+每个
连接128字节).该值也可以通过ip_vs模块的conn_tab_bits参数进行设置. - TCP load balancing support
CONFIG_IP_VS_PROTO_TCP - TCP传输协议负载均衡支持
- UDP load balancing support
CONFIG_IP_VS_PROTO_UDP - UDP传输协议负载均衡支持
- ESP load balancing support
CONFIG_IP_VS_PROTO_ESP - IPSec ESP(Encapsulation Security Payload)传输协议负载均衡支持
- AH load balancing support
CONFIG_IP_VS_PROTO_AH - IPSec AH(Authentication Header)传输协议负载均衡支持.
- SCTP load balancing support
CONFIG_IP_VS_PROTO_SCTP - SCTP传输协议负载均衡支持
- round-robin scheduling
CONFIG_IP_VS_RR - 循环分散算法:最简单的调度算法,将连接简单的循环分散到后端服务器上
- weighted round-robin scheduling
CONFIG_IP_VS_WRR - 基于权重的循环分散算法:在循环分散的基础上,权重较高的后端服务器接纳较多的连接
- least-connection scheduling
CONFIG_IP_VS_LC - 最少连接算法:将连接优先分配到活动连接最少的后端服务器
- weighted least-connection scheduling
CONFIG_IP_VS_WLC - 基于权重的最少连接算法:结合考虑活动连接数与服务器权重
- locality-based least-connection scheduling
CONFIG_IP_VS_LBLC - 基于目的IP的最少连接算法(常用于缓存集群):优先根据目的IP地址将连接分配到特定的后端,仅在这些后端过载时(活动连接数大于其权重)才分散到其他后端.
- locality-based least-connection with replication scheduling
CONFIG_IP_VS_LBLCR - 与LBLC类似,不同之处在于:前端负载均衡器会像NAT一样同时记住客户端IP与后端的对应关系,并在新的连接到来的时候,复用这个对应关系.
- destination hashing scheduling
CONFIG_IP_VS_DH - 目标地址哈希表算法:简单的根据静态设定的目标IP地址哈希表将连接分发到后端
- source hashing scheduling
CONFIG_IP_VS_SH - 源地址哈希表算法:简单的根据静态设定的源IP地址哈希表将连接分发到后端
- shortest expected delay scheduling
CONFIG_IP_VS_SED - 最小期望延迟算法:将连接分配到根据期望延迟公式((Ci+1)/Ui)算得的延迟最小的后端."i"是后端服务器编号,"Ci"是该服务器当前的连接数,"Ui"是该服务器的权重.
- never queue scheduling
CONFIG_IP_VS_NQ - 无排队算法:这是一个两阶段算法,如果有空闲服务器,就直接分发到空闲服务器(而不是等待速度最快的服务器),如果没有空闲服务器,就分发到期望延迟最小的服务器(SED算法).
- IPVS source hashing table size (the Nth power of 2)
CONFIG_IP_VS_SH_TAB_BITS - 将源IP地址映射到后端服务器所使用的哈希表的大小(2CONFIG_IP_VS_SH_TAB_BITS),取值范围是[4,20],默认值8的意思是哈希表的大小是28=256项.理想的大小应该是所有后端的权重乘以后端总数?
- FTP protocol helper
CONFIG_IP_VS_FTP - FTP协议连接追踪帮助
- Netfilter connection tracking
CONFIG_IP_VS_NFCT - Netfilter连接追踪支持
- SIP persistence engine
CONFIG_IP_VS_PE_SIP - 基于SIP Call-ID提供持久连接支持
- IPv6 support for IPVS
- IP: Netfilter Configuration
- 针对IPv4的Netfilter配置
- IPv4 connection tracking support (required for NAT)
CONFIG_NF_CONNTRACK_IPV4 - IPv4链接跟踪.可用于包伪装或地址转换,也可用于增强包过滤能力
- proc/sysctl compatibility with old connection tracking
CONFIG_NF_CONNTRACK_PROC_COMPAT - 用于兼容老旧的连接追踪用户态程序
- proc/sysctl compatibility with old connection tracking
- IP tables support (required for filtering/masq/NAT)
CONFIG_IP_NF_IPTABLES - 要用iptables就肯定要选上
- "ah" match support
CONFIG_IP_NF_MATCH_AH - 允许对IPSec包头的AH字段进行匹配
- "ecn" match support
CONFIG_IP_NF_MATCH_ECN - 这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_MATCH_ECN
- "rpfilter" reverse path filter match support
CONFIG_IP_NF_MATCH_RPFILTER - 对进出都使用同一个网络接口的包进行匹配
- "ttl" match support
CONFIG_IP_NF_MATCH_TTL - 这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_MATCH_HL
- Packet filtering
CONFIG_IP_NF_FILTER - 定义filter表,以允许对包进行过滤.Docker依赖于它.
- REJECT target support
CONFIG_IP_NF_TARGET_REJECT - 允许返回一个ICMP错误包而不是简单的丢弃包
- REJECT target support
- ULOG target support
CONFIG_IP_NF_TARGET_ULOG - 反对使用该选项,因为它已经被CONFIG_NETFILTER_NETLINK_LOG代替
- IPv4 NAT
CONFIG_NF_NAT_IPV4 - 允许进行伪装/端口转发以及其它的NAT功能,仅在你需要使用iptables中的nat表时才需要选择.Docker依赖于它.
- MASQUERADE target support
CONFIG_IP_NF_TARGET_MASQUERADE - SNAT
是指在数据包从网卡发送出去的时候,把数据包中的源地址部分替换为指定的IP,这样,接收方就认为数据包的来源是被替换的那个IP的主机.伪装
(MASQUERADE)是一种特殊类型的SNAT:MASQUERADE是用发送数据的网卡上的IP来替换源IP,用于那些IP不固定的场合(比如拨号
或者通过DHCP分配).Docker依赖于它. - NETMAP target support
CONFIG_IP_NF_TARGET_NETMAP - 这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_TARGET_NETMAP.
- REDIRECT target support
CONFIG_IP_NF_TARGET_REDIRECT - 这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_TARGET_REDIRECT.
- Basic SNMP-ALG support
CONFIG_NF_NAT_SNMP_BASIC - 为SNMP荷载实现ALG(Application Layer Gateway)支持(RFC2962).
- MASQUERADE target support
- Packet mangling
CONFIG_IP_NF_MANGLE - 在iptables中启用mangle表以便对包进行各种修改,常用于改变包的路由
- CLUSTERIP target support
CONFIG_IP_NF_TARGET_CLUSTERIP - CLUSTERIP target 允许你无需使用昂贵的负载均衡设备也能创建廉价的负载均衡集群
- ECN target support
CONFIG_IP_NF_TARGET_ECN - 用于mangle表,可以去除IPv4包头的ECN(Explicit Congestion Notification)位,主要用于在保持ECN功能的前提下,去除网络上的"ECN黑洞".
- "TTL" target support
CONFIG_IP_NF_TARGET_TTL - 这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_TARGET_HL.
- CLUSTERIP target support
- raw table support (required for NOTRACK/TRACE)
CONFIG_IP_NF_RAW - 在iptables中添加一个raw表,该表在netfilter框架中非常靠前,并在PREROUTING和OUTPUT链上有钩子,从而可以对收到的数据包在连接跟踪前进行处理
- Security table
CONFIG_IP_NF_SECURITY - 在iptables中添加一个security表,以支持强制访问控制(Mandatory Access Control)策略
- "ah" match support
- ARP tables support
CONFIG_IP_NF_ARPTABLES - arptables支持
- ARP packet filtering
CONFIG_IP_NF_ARPFILTER - ARP包过滤.对于进入和离开本地的ARP包定义一个filter表,在桥接的情况下还可以应用于被转发的ARP包
- ARP payload mangling
CONFIG_IP_NF_ARP_MANGLE - 允许对ARP包的荷载部分进行修改,比如修改源和目标物理地址
- ARP packet filtering
- IPv4 connection tracking support (required for NAT)
- IPv6: Netfilter Configuration
- 针对IPv6的Netfilter配置.其子项内容类似于IPv4,需要的话可以参考前面IPv4的Netfilter配置进行选择
- DECnet: Netfilter Configuration
- 针对DECnet的Netfilter配置
- Ethernet Bridge tables (ebtables) support
CONFIG_BRIDGE_NF_EBTABLES - 针对以太网桥的ebtables Netfilter配置
- Network packet filtering debugging
- The DCCP Protocol
CONFIG_IP_DCCP - 数据报拥塞控制协议(Datagram Congestion Control Protocol)在UDP的基础上增加了流控和拥塞控制机制,使数据报协议能够更好地用于流媒体业务的传输
- The SCTP Protocol
CONFIG_IP_SCTP - 流控制传输协议(Stream Control Transmission Protocol)是一种新兴的传输层协议.TCP协议一次只能连接一个IP地址而在SCTP协议一次可以连接多个IP地址且可以自动平衡网络负载,一旦某一个IP地址失效会自动将网络负载转移到其他IP地址上
- The RDS Protocol
CONFIG_RDS - 可靠数据报套接字(Reliable Datagram Sockets)协议支持.RDS可以使用Infiniband和iWARP作为支持RDMA(远程直接内存访问)的传输方式,RDMA用于一台远程计算机访问另一台计算机的内存而无需本机计算机操作系统的辅助,这就像直接内存访问(DMA),但是这里远程代替了本地计算机.
- The TIPC Protocol
CONFIG_TIPC - 透明内部进程间通信协议(Transparent Inter Process Communication),以共享内存为基础实现任务和资源的调度,专门用于集群内部通信
- Asynchronous Transfer Mode (ATM)
CONFIG_ATM - 异步传输模式(ATM)支持.主要用于高速LAN和WAN.目前已经日薄西山了.
- Layer Two Tunneling Protocol (L2TP)
CONFIG_L2TP - 第二层隧道协议(RFC2661)是一种对应用透明的隧道协议,VPN经常使用它.
- 802.1d Ethernet Bridging
CONFIG_BRIDGE - 802.1d以太网桥(例如为QEMU虚拟机或Docker容器提供桥接网卡支持)
- IGMP/MLD snooping
CONFIG_BRIDGE_IGMP_SNOOPING - 选"Y"可以允许以太网桥根据IGMP(Internet Group Management Protocol, IPv4)/MLD(Multicast Listener Discovery, IPv6)负载选择性的转发不同端口上的多播包.选"N"可以减小二进制文件的体积.确定需要使用组播的选"Y".
- IGMP/MLD snooping
- 802.1Q/802.1ad VLAN Support
CONFIG_VLAN_8021Q - 802.1Q虚拟局域网
- DECnet Support
CONFIG_DECNET - DECnet协议
- ANSI/IEEE 802.2 LLC type 2 Support
CONFIG_LLC2 - PF_LLC类型套接字支持.也就是IEEE 802.2 LLC 2
- The IPX protocol
CONFIG_IPX - IPX协议是由Novell公司提出的运行于OSI模型第三层的协议,具有可路由的特性,IPX的地址分为网络地址和主机地址,网络地址由管理员分配,主机地址为MAC地址.由于IP协议的广泛使用,IPX的应用早已日薄西山.
- Appletalk protocol support
CONFIG_ATALK - Appletalk是苹果公司创建的一组网络协议,仅用于苹果系列计算机.
- CCITT X.25 Packet Layer
CONFIG_X25 - CCITT X.25协议集支持.
- LAPB Data Link Driver
CONFIG_LAPB - LAPB协议支持.
- Phonet protocols family
CONFIG_PHONET - PhoNet是Nokia开发的面相数据包的通信协议,仅用于Nokia maemo/meego产品.
- IEEE Std 802.15.4 Low-Rate Wireless Personal Area Networks support
CONFIG_IEEE802154 - IEEE Std 802.15.4 定义了一个低速率/低功耗/低复杂度的短距离个人无线网络规范.主要用于物联网中的传感器/交换器之类设备之间的互联.
- 6lowpan support over IEEE 802.15.4
CONFIG_IEEE802154_6LOWPAN - 在IEEE 802.15.4上支持IPv6压缩.
- Generic IEEE 802.15.4 Soft Networking Stack (mac802154)
CONFIG_MAC802154 - 为SoftMAC设备(仅实现了PHY层)实现硬件独立的IEEE Std 802.15.4协议栈.使用HardMAC设备的用户应该选"N".[注意]这里的实现既未经过认证,也未进行充分的兼容性测试.
- 6lowpan support over IEEE 802.15.4
- QoS and/or fair queueing
CONFIG_NET_SCHED - QoS(Quality of Service)支持.当内核有多个包需要通过网络发送的时候,它需要决定哪个包先发,那个包后发,哪个包丢弃.这就是包调度算法.关闭此项表示内核使用最简单的FIFO算法,开启此项后就可以使用多种不同的调度算法(需要配合用户层工具iproute2+tc).QoS还用于支持diffserv(Differentiated Services)和RSVP(Resource Reservation Protocol)功能.包调度的状态信息可以从"/proc/net/psched"文件中获取.仅在你确实需要的时候选"Y".
- Data Center Bridging support
CONFIG_DCB - DCB(Data Center Bridging)支
持.数据中心桥接是一组可增强传统以太网功能,以管理通信的功能,尤其适用于网络通信流量和传输率都很高的环境中.光纤通道可专用于承载此类型的通信.但
是,如果使用专用链路来仅提供光纤通道通信,则成本可能会很高.因此,更多情况下使用以太网光纤通道.DCB功能可满足光纤通道对遍历以太网时包丢失的敏
感度要求.DCB允许对等方基于优先级区分通信.通过区分优先级,可确保在主机之间发生拥塞时,保持较高优先级通信的包完整性.使用DCB交换协议,通信
主机可以交换会影响高速网络通信的配置信息.然后,对等方可对公用配置进行协商,确保通信流不中断,同时防止高优先级包出现包丢失.这些功能都需要底层的
网卡支持.一般网卡都是不支持的.所以不确定的可以选"N". - DNS Resolver support
CONFIG_DNS_RESOLVER - 内核DNS解析支持.用于支持
CONFIG_AFS_FS/CONFIG_CIFS/CONFIG_CIFS_SMB2/NFS_V4模块.此功能需要用户态程序"/sbin
/dns.resolve"和配置文件"/etc/request-key.conf"的支持.更多信息参见"Documentation/networking/dns_resolver.txt"文档,不确定的选"N". - B.A.T.M.A.N. Advanced Meshing Protocol
CONFIG_BATMAN_ADV - B.A.T.M.A.N.(更好的移动无线网络方案)是一种用于 multi-hop ad-hoc mesh 网络的路由协议.它是一种去中心化分布式无线Adhoc模式,特别适用于自然灾害等紧急情况下,创建临时的无线网络.不确定的选"N".
- Open vSwitch
CONFIG_OPENVSWITCH - Open vSwitch 是一个多层虚拟交换标准.此选项提供了内核级的高速转发功能(需要配合用户态守护进程ovs-vswitchd来实现).
- Virtual Socket protocol
CONFIG_VSOCKETS - 这是一个类似于TCP/IP的协议,用于虚拟机之间以及虚拟机与宿主之间的通信.开启此项后,还需要从子项中选择适用于特定虚拟化技术的传输协议.
- VMware VMCI transport for Virtual Sockets
CONFIG_VMWARE_VMCI_VSOCKETS - 适用于VMware虚拟化技术的VMCI传输协议支持.
- VMware VMCI transport for Virtual Sockets
- NETLINK: mmaped IO
CONFIG_NETLINK_MMAP - 基于内存映射机制的 netlink IO 支持.可以避免在用户空间与内存空间之间复制数据,从而提升操作速度.不确定的选"N".
- NETLINK: socket monitoring interface
CONFIG_NETLINK_DIAG - NETLINK socket 监视接口.ss这样的诊断工具需要它.
- MultiProtocol Label Switching
CONFIG_MPLS - 多协议标签交换(MPLS)是新一代的IP高速骨干网络交换标准.不确定的选"N".
- High-availability Seamless Redundancy (HSR)
CONFIG_HSR - 以太网HSR(高可用性无缝冗余)规范(IEC 62439-3:2010)支持.不确定的选"N".
- Network priority cgroup
CONFIG_NETPRIO_CGROUP
CONFIG_CGROUP_NET_PRIO - Cgroup子系统支持:基于每个网络接口为每个进程分配网络使用优先级.Docker依赖于它.
- enable BPF Just In Time compiler
CONFIG_BPF_JIT - BPF(Berkeley Packet Filter)的
过滤功能通常由一个解释器(interpreter)解释执行BPF虚拟机指令的方式工作.开启此项,内核在加载过滤指令后,会将其编译为本地指令,以加
快执行速度.网络嗅探程序(libpcap/tcpdump)可以从中受益.注意:需要"echo 1 >
/proc/sys/net/core/bpf_jit_enable"之后才能生效. - Network testing
- 网络测试,仅供调试使用
- Packet socket
- Amateur Radio support
CONFIG_HAMRADIO - 业余无线电支持.供无线电爱好者进行自我训练/相互通讯/技术研究
- CAN bus subsystem support
CONFIG_CAN - CAN(Controller Area Network)是一个低速串行通信协议.被广泛地应用于工业自动化/船舶/医疗设备/工业设备等嵌入式领域.更多信息参见"Documentation/networking/can.txt"文件.
- IrDA (infrared) subsystem support
CONFIG_IRDA - 红外线通讯技术支持,主要用于嵌入式环境,某些老旧的笔记本上也可能会有红外接口.
- Bluetooth subsystem support
CONFIG_BT - 蓝牙支持.蓝牙目前已经基本取代红外线,成为嵌入式设备/智能设备/笔记本的标配近距离(小于10米)通信设备.在Linux上通常使用来自BlueZ的hciconfig和bluetoothd工具操作蓝牙通信.
- RFCOMM protocol support
CONFIG_BT_RFCOMM - 虚拟串口协议(RFCOMM)是一个面向连接的流传输协议,提供RS232控制和状态信号,从而模拟串口的功能.它被用于支持拨号网络,OBEX(Object Exchange),以及某些蓝牙程序(例如文件传输).
- RFCOMM TTY support
CONFIG_BT_RFCOMM_TTY - 允许在RFCOMM通道上模拟TTY终端
- RFCOMM TTY support
- BNEP protocol support
CONFIG_BT_BNEP - 蓝牙网络封装协议(Bluetooth Network Encapsulation Protocol)可以在蓝牙上运行其他网络协议(TCP/IP). Bluetooth PAN(Personal Area Network)需要它的支持.
- Multicast filter support
CONFIG_BT_BNEP_MC_FILTER - 组播支持
- Protocol filter support
CONFIG_BT_BNEP_PROTO_FILTER - 协议过滤器支持
- Multicast filter support
- CMTP protocol support
CONFIG_BT_CMTP - CMTP(CAPI消息传输协议)用于支持已在上世纪被淘汰的ISDN设备.不确定的选"N".
- HIDP protocol support
CONFIG_BT_HIDP - 人机接口设备协议(Human Interface Device Protocol)用于支持各种人机接口设备(比如鼠标/键盘/耳机等).
- Bluetooth device drivers
- 各种蓝牙设备驱动
- HCI USB driver
CONFIG_BT_HCIBTUSB - 使用USB接口的蓝牙设备支持
- HCI SDIO driver
CONFIG_BT_HCIBTSDIO - 使用SDIO接口的蓝牙设备支持
- HCI UART driver
CONFIG_BT_HCIUART - 使用串口的蓝牙设备支持.此外,基于UART的蓝牙PCMCIA和CF设备也需要此模块的支持.
- UART (H4) protocol support
CONFIG_BT_HCIUART_H4 - 大多数使用UART接口的蓝牙设备(包括PCMCIA和CF卡)都使用这个协议.
- BCSP protocol support
CONFIG_BT_HCIUART_BCSP - 基于CSR(Cambridge Silicon Radio)公司的BlueCore系列芯片的蓝牙设备(包括PCMCIA和CF卡)支持
- Atheros AR300x serial support
CONFIG_BT_HCIUART_ATH3K - 基于Atheros AR300x系列芯片的蓝牙设备支持
- HCILL protocol support
CONFIG_BT_HCIUART_LL - 基于Texas Instruments公司的BRF芯片的蓝牙设备支持
- Three-wire UART (H5) protocol support
CONFIG_BT_HCIUART_3WIRE - Three-wire UART (H5) 协议假定UART通信可能存在各种错误,从而使得CTS/RTS引脚线变得可有可无.看不懂就可以不选.
- UART (H4) protocol support
- HCI VHCI (Virtual HCI device) driver
CONFIG_BT_HCIVHCI - 模拟蓝牙设备支持.主要用于开发
- {大多数蓝牙设备并不需要特定的独立驱动,此处省略的独立驱动仅是为了驱动那些不严格遵守蓝牙规范的芯片}
- HCI USB driver
- RFCOMM protocol support
- RxRPC session sockets
CONFIG_AF_RXRPC - RxRPC会话套接字支持(仅包括传输部分,不含表示部分).CONFIG_AFS_FS依赖于它.不确定的选"N".详情参见"Documentation/networking/rxrpc.txt"文档.
- Wireless
CONFIG_WIRELESS - 无线网络支持.
- cfg80211 - wireless configuration API
CONFIG_CFG80211 - cfg80211是Linux无线局域网(802.11)配置接口,是使用WiFi的前提.注意:"WiFi"是一个无线网路通信技术的品牌,由WiFi联盟所持有.目的是改善基于IEEE 802.11标准的无线网路产品之间的互通性.现时一般人会把WiFi及IEEE 802.11混为一谈,甚至把WiFi等同于无线网路(WiFi只是无线网络的一种).
- nl80211 testmode command
CONFIG_NL80211_TESTMODE - 仅供调试和特殊目的使用.
- enable developer warnings
CONFIG_CFG80211_DEVELOPER_WARNINGS - 仅供调试开发使用
- cfg80211 regulatory debugging
CONFIG_CFG80211_REG_DEBUG - 仅供调试开发使用
- cfg80211 certification onus
CONFIG_CFG80211_CERTIFICATION_ONUS - 仅在你确实明白此项含义的情况下,才考虑选"Y",否则请选"N".
- enable powersave by default
CONFIG_CFG80211_DEFAULT_PS - 若开启此项则表示默认开启省电模式(也就是默认"Soft blocked: yes").关闭此项则表示默认使用BIOS中的状态(通常是上一次关机时的状态).详情参见"Documentation/power/pm_qos_interface.txt"文档.
- cfg80211 DebugFS entries
CONFIG_CFG80211_DEBUGFS - 仅供调试
- use statically compiled regulatory rules database
CONFIG_CFG80211_INTERNAL_REGDB - 由于绝大多数发行版都含有CRDA软件包,所以绝大多数人应该选"N".如果你确实需要选"Y",那么请认真阅读"net/wireless/db.txt"文件.
- cfg80211 wireless extensions compatibility
CONFIG_CFG80211_WEXT - 为那些老旧的用户空间程序提供兼容性,建议关闭.
- nl80211 testmode command
- lib80211 debugging messages
CONFIG_LIB80211_DEBUG - 仅供调试
- Generic IEEE 802.11 Networking Stack (mac80211)
CONFIG_MAC80211 - 独立于硬件的通用IEEE 802.11协议栈模块(mac80211).它是驱动开发者用来编写softMAC无线设备驱动的框架,softMAC设备允许用软件实现帧的管理(包括解析和产生80211无线帧),从而让系统能更好的控制硬件,现在大多数的无线网卡都是softMAC设备.不确定的选"Y".
- PID controller based rate control algorithm
CONFIG_MAC80211_RC_PID - 基于比例-积分-微分控制器(PID controller)的发送速率(TX rate)控制算法.用于CONFIG_MAC80211模块.不确定的选"N".
- Minstrel
CONFIG_MAC80211_RC_MINSTREL - minstrel发送速率(TX rate)控制算法.用于CONFIG_MAC80211模块.这是首选的算法,不确定的选"Y".
- Minstrel 802.11n support
CONFIG_MAC80211_RC_MINSTREL_HT - minstrel_ht发送速率(TX rate)控制算法.适用于802.11n规范.不确定的选"Y".
- Minstrel 802.11n support
- Default rate control algorithm
- 默认发送速率(TX rate)控制算法.相当于mac80211模块"ieee80211_default_rc_algo"参数的值.建议选择"Minstrel"算法.
- Enable mac80211 mesh networking (pre-802.11s) support
CONFIG_MAC80211_MESH - 802.11s草
案是无线网状网络(Mesh Networking)的延伸与增补标准(amendment).它扩展了IEEE 802.11
MAC(介质访问控制)标准,定义了利用自我组态的多点跳跃拓朴(multi-hop topologies),进行无线感知(radio-aware
metrics),以支援广播/组播/单播传送网络封包的架构与协定.不确定的选"N". - Enable LED triggers
CONFIG_MAC80211_LEDS - 允许在接受/发送数据时触发无线网卡的LED灯闪烁.
- Export mac80211 internals in DebugFS
CONFIG_MAC80211_DEBUGFS - 在DebugFS中显示mac80211模块内部状态的扩展信息,仅用于调试目的.
- Trace all mac80211 debug messages
CONFIG_MAC80211_MESSAGE_TRACING - 跟踪所有mac80211模块的调试信息,仅用于调试目的.
- Select mac80211 debugging features
CONFIG_MAC80211_DEBUG_MENU - 仅供调试
- cfg80211 - wireless configuration API
- WiMAX Wireless Broadband support
CONFIG_WIMAX - WiMAX(IEEE
802.16)协议支持.随着2010年英特尔放弃WiMAX以及LTE在4G市场成了唯一的主流标准,WiMAX的电信运营商也逐渐向LTE转
移,WiMAX论坛也于2012年将TD-LTE纳入WiMAX2.1规范,一些WiMAX运营商也开始将设备升级为TD-LTE. - WiMAX debug level
CONFIG_WIMAX_DEBUG_LEVEL - 设置允许使用的最大调试信息详细等级,推荐使用默认值"8",设为"0"表示允许使用所有调试信息.运行时默认禁止使用调试信息,但可通过sysfs文件系统中的debug-levels文件开启调试信息.
- WiMAX debug level
- RF switch subsystem support
CONFIG_RFKILL - 为了节约电力,很多无线网卡和蓝牙设备都有内置的射频开关(RF switche)用于开启和关闭设备(通过rfkill命令).建议选"Y".更多详情参见"Documentation/rfkill.txt"文档
- RF switch input support
CONFIG_RFKILL_INPUT - 这是个反对使用的特性,一般情况下建议关闭.若关闭此项导致某些笔记本的无线网卡开关按钮失效,可以考虑开启.
- Generic rfkill regulator driver
CONFIG_RFKILL_REGULATOR - 通用射频开关驱动,其射频开关连接在电压调节器(voltage regulator)上.依赖于CONFIG_REGULATOR框架.不确定的选"N"或"M"
- GPIO RFKILL driver
CONFIG_RFKILL_GPIO - 通用GPIO射频开关驱动.仅用于嵌入式环境,其射频开关连接在GPIO总线上,比如NVIDIA的Tegra和三星的Exynos 4智能手机SoC芯片.
- RF switch input support
- Plan 9 Resource Sharing Support (9P2000)
CONFIG_NET_9P - 实验性的支持Plan 9的9P2000协议.
- CAIF support
CONFIG_CAIF - 除非你为Android/MeeGo系统编译内核,并且需要使用PF_CAIF类型的socket,否则请选"N".
- Ceph core library
CONFIG_CEPH_LIB - 仅在你需要使用Ceph分布式文件系统,或者rados块设备(rbd)时选"Y".否则应选"N".
- NFC subsystem support
CONFIG_NFC - NFC(近场通信)子系统.这些设备主要用于智能手机之类的嵌入式领域.
- Network light weight tunnels
CONFIG_LWTUNNEL - 为MPLS(多协议标签交换)之类的轻量级隧道提供基础结构支持.不确定的选"N".