ip6tables匹配hoplimit
hoplimit匹配帮助信息如下,可判断相等,大于和小于三种关系。
# ip6tables --match hl -h
hl match options:
[!] --hl-eq value Match hop limit value--hl-lt value Match HL < value--hl-gt value Match HL > value
如下在主机3ffe::2上配置策略,丢弃IPv6头部hoplimit值等于2的报文。
# ip6tables -t filter -A INPUT -m hl --hl-eq 2 -j DROP
#
# ip6tables -L -n -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destination 0 0 DROP all * * ::/0 ::/0 HL match HL == 2
在另外一台主机执行ping,hoplimit指定为2。
$ ping -6 3ffe::2 -t 2
PING 3ffe::2(3ffe::2) 56 data bytes
^C
--- 3ffe::2 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1003ms
在主机3ffe::2上查看,丢弃了两个报文(每个报文由64字节数据 + 40字节IPv6头部组成,单个报文总长度为104字节)。
# ip6tables -L -n -v
Chain INPUT (policy ACCEPT 7 packets, 552 bytes)pkts bytes target prot opt in out source destination 2 208 DROP all * * ::/0 ::/0 HL match HL == 2
hl匹配
由函数xt_register_matches注册匹配结构hl_mt_reg。
static struct xt_match hl_mt_reg[] __read_mostly = {{.name = "hl",.revision = 0,.family = NFPROTO_IPV6,.match = hl_mt6,.matchsize = sizeof(struct ip6t_hl_info),.me = THIS_MODULE,},
};
static int __init hl_mt_init(void)
{return xt_register_matches(hl_mt_reg, ARRAY_SIZE(hl_mt_reg));
}
匹配处理函数hl_mt6比较简单,如下,取得IPv6头部的hop_limit值,根据配置的操作模式,与配置的hl值相比较。
static bool hl_mt6(const struct sk_buff *skb, struct xt_action_param *par)
{const struct ip6t_hl_info *info = par->matchinfo;const struct ipv6hdr *ip6h = ipv6_hdr(skb);switch (info->mode) {case IP6T_HL_EQ:return ip6h->hop_limit == info->hop_limit;case IP6T_HL_NE:return ip6h->hop_limit != info->hop_limit;case IP6T_HL_LT:return ip6h->hop_limit < info->hop_limit;case IP6T_HL_GT:return ip6h->hop_limit > info->hop_limit;}return false;
内核版本 5.10
ip6tables匹配hoplimit相关推荐
- ip6tables命令
ip6tables命令和iptables一样,都是linux中防火墙软件,不同的是ip6tables采用的TCP/ip协议为IPv6. 语法 ip6tables(选项) 选项 -t<表>: ...
- re2正则表达式匹配引擎的c接口版本cre2的中文使用手册
前言 re2 官方地址: https://github.com/google/re2 cre2 官方地址: https://github.com/marcomaggi/cre2 1 基本类型定义 不透 ...
- LeetCode简单题之统计匹配检索规则的物品数量
题目 给你一个数组 items ,其中 items[i] = [typei, colori, namei] ,描述第 i 件物品的类型.颜色以及名称. 另给你一条由两个字符串 ruleKey 和 ru ...
- 深度树匹配模型(TDM)
深度树匹配模型(TDM) 算法介绍 Tree-based Deep Match(TDM)是由阿里妈妈精准定向广告算法团队自主研发,基于深度学习上的大规模(千万级+)推荐系统算法框架.在大规模推荐系统的 ...
- php 正则中文匹配
汉字一定注意是gbk还是utf8编码 UTF-8匹配:在javascript中,要判定字符串是中文是很简朴的.比如:var str = "php编程";if (/^[\u4e00- ...
- [JS][编程题]括号匹配
括号匹配 题目来源:牛客网 题目链接:括号匹配 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M 题目描述 给定一个只包含括号的字符串,判断字符串是否有效.其 ...
- java正则表达式 匹配%号_java正则表达式匹配带有括号的电话号为什么匹配不上...
最近在学习正则表达式,尝试着同事匹配三种不同的电话号,类似如下: (012)-79461234 012-79461234 01279461234 我写的匹配方式: \(?0\d{2}[) -]?\d{ ...
- Python 匹配字符串开头内容与结尾内容(startswith与endswith)
1 Python startswith() 与 endswith 描述 startswith() 方法 : 用于判断字符串是否以指定后缀开头,如果以指定后缀开头返回True,否则返回False end ...
- c语言括号匹配的检验,检验括号匹配的算法
用栈实现检验括号匹配的算法没啥具体描述,数据结构的知识,急用,有重赏 思想是 先进栈,获取第一个半边括号,标记一下,继续进栈直到获取到第二个与之匹配的另一外括号,然后出栈,取出内容.就这样.. 数据结 ...
最新文章
- [基础题] 7.第一种(*)按如下要求编写Java程序:
- 2020蓝桥杯省赛---java---B---6(分类计数)
- 微软中文网,越办越好了!
- mybatis No enum const class org.apache.ibatis.type.JdbcType.Integer
- 在Ubuntu 14.04平台上利用Intel的GPU实现硬件加速--基于VAAPI
- pku2777 Count Color
- 成功 打不开_switch商店打不开怎么办?手把手教你用这五种方法成功进入eshop
- 【推荐】互联网或技术多平台,一文多发小工具!
- Python之字符串格式化
- windowsbuilder 的介绍
- 截图贴图取色Snipaste
- 别说你不知道光纤有这七种类型!
- Netd 服务的 netd 套接字创建
- JS混入(mix-in)小案例
- 12日,7月,2012年 - GAE调试,Wordpress,晚睡晚起
- vue+drf没公网ip接入支付宝功能
- CSS3与页面布局学习笔记(四)——页面布局大全(负边距、双飞翼、多栏、弹性、流式、瀑布流、响应式布局)
- [题目解析]乐乐的工作
- 2022 互联网中秋月饼大赏,腾讯送火腿,字节寓意圆满,你最钟爱哪款呢?
- 如何玩转物联网开发板