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相关推荐

  1. ip6tables命令

    ip6tables命令和iptables一样,都是linux中防火墙软件,不同的是ip6tables采用的TCP/ip协议为IPv6. 语法 ip6tables(选项) 选项 -t<表>: ...

  2. re2正则表达式匹配引擎的c接口版本cre2的中文使用手册

    前言 re2 官方地址: https://github.com/google/re2 cre2 官方地址: https://github.com/marcomaggi/cre2 1 基本类型定义 不透 ...

  3. LeetCode简单题之统计匹配检索规则的物品数量

    题目 给你一个数组 items ,其中 items[i] = [typei, colori, namei] ,描述第 i 件物品的类型.颜色以及名称. 另给你一条由两个字符串 ruleKey 和 ru ...

  4. 深度树匹配模型(TDM)

    深度树匹配模型(TDM) 算法介绍 Tree-based Deep Match(TDM)是由阿里妈妈精准定向广告算法团队自主研发,基于深度学习上的大规模(千万级+)推荐系统算法框架.在大规模推荐系统的 ...

  5. php 正则中文匹配

    汉字一定注意是gbk还是utf8编码 UTF-8匹配:在javascript中,要判定字符串是中文是很简朴的.比如:var str = "php编程";if (/^[\u4e00- ...

  6. [JS][编程题]括号匹配

    括号匹配 题目来源:牛客网 题目链接:括号匹配 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M 题目描述 给定一个只包含括号的字符串,判断字符串是否有效.其 ...

  7. java正则表达式 匹配%号_java正则表达式匹配带有括号的电话号为什么匹配不上...

    最近在学习正则表达式,尝试着同事匹配三种不同的电话号,类似如下: (012)-79461234 012-79461234 01279461234 我写的匹配方式: \(?0\d{2}[) -]?\d{ ...

  8. Python 匹配字符串开头内容与结尾内容(startswith与endswith)

    1 Python startswith() 与 endswith 描述 startswith() 方法 : 用于判断字符串是否以指定后缀开头,如果以指定后缀开头返回True,否则返回False end ...

  9. c语言括号匹配的检验,检验括号匹配的算法

    用栈实现检验括号匹配的算法没啥具体描述,数据结构的知识,急用,有重赏 思想是 先进栈,获取第一个半边括号,标记一下,继续进栈直到获取到第二个与之匹配的另一外括号,然后出栈,取出内容.就这样.. 数据结 ...

最新文章

  1. [基础题] 7.第一种(*)按如下要求编写Java程序:
  2. 2020蓝桥杯省赛---java---B---6(分类计数)
  3. 微软中文网,越办越好了!
  4. mybatis No enum const class org.apache.ibatis.type.JdbcType.Integer
  5. 在Ubuntu 14.04平台上利用Intel的GPU实现硬件加速--基于VAAPI
  6. pku2777 Count Color
  7. 成功 打不开_switch商店打不开怎么办?手把手教你用这五种方法成功进入eshop
  8. 【推荐】互联网或技术多平台,一文多发小工具!
  9. Python之字符串格式化
  10. windowsbuilder 的介绍
  11. 截图贴图取色Snipaste
  12. 别说你不知道光纤有这七种类型!
  13. Netd 服务的 netd 套接字创建
  14. JS混入(mix-in)小案例
  15. 12日,7月,2012年 - GAE调试,Wordpress,晚睡晚起
  16. vue+drf没公网ip接入支付宝功能
  17. CSS3与页面布局学习笔记(四)——页面布局大全(负边距、双飞翼、多栏、弹性、流式、瀑布流、响应式布局)
  18. [题目解析]乐乐的工作
  19. 2022 互联网中秋月饼大赏,腾讯送火腿,字节寓意圆满,你最钟爱哪款呢?
  20. 如何玩转物联网开发板

热门文章

  1. FreeCAD FEM(Elmer接口)总结
  2. 4G IoT设备开发,一板搞定
  3. Linux 命令--SS
  4. 方便快捷!身份证OCR带你一秒录入
  5. 两个onCreate()方法
  6. Zookeeper出现Error contacting service. It is probably not running问题
  7. TMOS系统之NATS 和 SNAT
  8. slam初学(一)——Kdevelop的安装及汉化
  9. 矢量数据shp七个文件介绍_读取矢量数据
  10. 《50个教育法:我把三个儿子送入了斯坦福》书中的精髓:了解教育的本质,以言传身教、耐心引导的教育方式培养孩子成才。