iptables的CONNMARK与MARK
来源:互联网 发布:笔记本共享网络给手机 编辑:程序博客网 时间:2024/05/22 07:59
iptables的CONNMARK与MARK
iptables的CONNMARK与MARK是用于给数据连接和数据包打标记的两个target。一直没搞明白二者的区别。直到昨天花了不少时间解决openwrt下多路合并时工行网银登录问题,才大致弄清这两个target的用法。
两者的区别在于,同样是打标记,但CONNMARK是针对连接的,而MARK是针对单一数据包的。
这么说大家肯定还是不明白。但回想一下,这两种机制一般都要和ip rule中的fwmark联用,实现对满足某一类条件的数据包的策略路由。所以问题的关键在于两点:
1. 对连接打了标记,只是标记了连接,没有标记连接中的每个数据包。标记单个数据包,也不会对整条连接的标记有影响。二者是相对独立的。
2. 路由判定(routing decision)是以单一数据包为单位的。或者说,在netfilter框架之外,并没有连接标记的概念。或者说,ip命令只知道MARK, 而不知道CONNMARK是什么。
所以写相关的iptables规则,关键在于:给所有要进行ip rule匹配的单一数据包打上标记。方法一般有二:用MARK直接打,或者用CONNMARK –restore-mark把打在连接上的标记转移到数据包上。
理解了这些,要解决相关的问题就心里有数了。就比如网银登录的问题吧,在使用openwrt多拨时登录工行网银时,由于使用了多个IP,服务器检测到所认为有安全问题,就会阻止用户登录。解决思路是,由于网银用https协议,对相应的443端口做一些处理。让所有目的端口为443的outgoing包只走一条线路就行了。到iptables规则中,就是对这些包只打一种标记咯。假设打0×01吧。相应的规则像下面这样写:
- iptables的CONNMARK与MARK
- iptables的CONNMARK与MARK
- iptables的CONNMARK与MARK
- iptables数据包、连接标记模块MARK/CONNMARK使用
- iptables 的各中mark
- iptables 的各中mark
- Netfilter CONNMARK用法及分析(一)-- iptables命令行的使用
- 使用iptables CONNMARK target和conntrack 模块记录数据流的转发状态
- 关于IPTABLES 各种MARK 功能的用法
- 关于IPTABLES 各种MARK 功能的用法
- 关于IPTABLES 各种MARK 功能的用法
- Netfilter与iptables的关系
- docker 与 iptables的关系
- Mark McIntyre:与 Fedora 的那些事
- iptables中DNAT与SNAT的理解
- iptables中DNAT与SNAT的理解
- VSFTPD与iptables NAT的设置详解
- iptables 表与链的关系图
- 谷歌地图不再支持WP8设备IE浏览器
- Decorators and Functional Python
- Android 开发从入门到精通-Android开发
- Mac 中显示资源库(Library)文件夹目录的几种方法
- 模仿android_debug_JNITest实现apk 调用framework java JNI中方法
- iptables的CONNMARK与MARK
- Android横竖屏切换的使用方法
- vim 格式化代码之长行换行
- 关于String是否为空的判断
- ORACLE WITH AS 用法
- 模拟退火算法解决TSP问题
- Sublime Text 2 中怎样查找scope的名称
- 完成SQL Server 2000的无人值守安装自网络
- DevTrack与Subversion,Eclipse Subversive集成,解决您的烦恼 (一)
2 THOUGHTS ON “IPTABLES的CONNMARK与MARK”