运维基础-iptables和ipvs
作者:互联网
1、iptables和ipvs
1
2、iptables
- Linux网络协议栈非常高效,同时比较复杂。如果我们希望在数据的处理过程中对关心的数据进行一些操作,则该怎么做呢?Linux提供了一套机制来为用户实现自定义的数据包处理过程。
- 在Linux网络协议栈中有一组回调函数挂接点,通过这些挂接点挂接的钩子函数可以在Linux网络栈处理数据包的过程中对数据包进行一些操作,例如过滤、修改、丢弃等。整个挂接点技术叫作Netfilter和iptables。
2.1、iptables和Netfilter
- iptables和Netfilter配合实现整个Linux网络协议栈中灵活的数据包处理机制。
- Netfilter负责在内核中执行各种挂接的规则,运行在内核模式中;(netfilter是防火墙的安全框架)
- iptables是在用户模式下运行的进程,负责协助和维护内核中Netfilter的各种规则表。(iptables是命令行工具)
- Netfilter可以挂接的规则点有5个,如图7.4中的粉色图形所示。
2.1.1、规则表Table
- 这些挂接点能挂接的规则也分不同的类型(也就是规则表Table),我们可以在不同类型的Table中加入我们的规则。
- 目前主要支持的Table类型有:RAW、MANGLE、NAT和FILTER(RAW的优先级最高,FILTER最低)。
- 在实际应用中,不同的挂接点需要的规则类型通常不同(图7.4中每个挂载点旁边的方框中就是其可以使用规则类型)。例如,在Input的挂接点上明显不需要FILTER过滤规则,因为根据目标地址已经选择好本机的上层协议栈了,所以无须再挂接FILTER过滤规则。
- 当Linux协议栈的数据处理运行到挂接点时,它会依次调用挂接点上所有的挂钩函数,直到数据包的处理结果是明确地接受或者拒绝。
2.1.2、处理规则
- 每个规则的特性都分为以下几部分:
- 表类型(准备干什么事情)。
- 什么挂接点(什么时候起作用)。
- 匹配的参数是什么(针对什么样的数据包)。
- 匹配后有什么动作(匹配后具体的操作是什么)。
- 前面已经介绍了表类型和挂接点,接下来看看匹配的参数和匹配后的动作。
1、匹配的参数
- 匹配的参数用于对数据包或者TCP数据连接的状态进行匹配。当有多个条件存在时,它们一起发挥作用,来达到只针对某部分数据进行修改的目的。
- 常见的匹配参数如下:
- 流入、流出的网络接口(网卡名)。
- 来源、目的地址。
- 协议类型。
- 来源、目的端口。
2、匹配后的动作
- 一旦有数据匹配,就会执行相应的动作。动作类型既可以是标准的预定义的几个动作,也可以是自定义的模块注册的动作,或者是一个新的规则链,以便更好地组织一组动作。
2.2、iptables命令
- iptables命令用于协助用户维护各种规则。
1
# #
标签:iptables,匹配,运维,ipvs,接点,规则,数据包,Netfilter 来源: https://www.cnblogs.com/maiblogs/p/16363714.html