首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >标记匹配在IPTABLES中的意义是什么?

标记匹配在IPTABLES中的意义是什么?
EN

Unix & Linux用户
提问于 2020-06-24 21:53:16
回答 1查看 3.1K关注 0票数 2

我正试图建立一个牧场网站,并努力争取建立正确的网络。我的健康检查容器在“无寄主路线”方面失败了。我将IPTABLE规则与正在工作的Rancher站点进行了比较,并遇到了在working站点中设置的以下规则:

代码语言:javascript
运行
复制
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
DOCKER-USER  all  --  anywhere             anywhere
DOCKER-ISOLATION  all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
DOCKER     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
DOCKER     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
CATTLE_NETWORK_POLICY  all  --  10.42.0.0/16         10.42.0.0/16
CATTLE_FORWARD  all  --  anywhere             anywhere

Chain CATTLE_FORWARD (1 references)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            mark match 0x1068
ACCEPT     all  --  anywhere             anywhere            mark match 0x4000

$ iptables-save | grep mark

代码语言:javascript
运行
复制
-A CATTLE_RAW_PREROUTING ! -i docker0 -p udp -m udp --dport 500 -j MARK --set-xmark 0x1068/0xffffffff`
-A CATTLE_RAW_PREROUTING ! -i docker0 -p udp -m udp --dport 4500 -j MARK --set-xmark 0x1068/0xffffffff
-A CATTLE_FORWARD -m mark --mark 0x1068 -j ACCEPT
-A CATTLE_FORWARD -m mark --mark 0x4000 -j ACCEPT

我的问题:

  1. 这些规则是什么?WHat是mark match 0x168mark match 0x4000
  2. 如何将这些规则添加到iptable中?我只知道如何从iptables中添加或删除标准的tcp/udp端口,而无法找到任何内容。我该如何添加这些规则?
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-06-24 22:45:50

在Linux主机中,IP数据包有一个名为packet的属性。那只是个数字。

这些规则接受被赋予数据包标记值0x1068或0x4000 (在PREROUTING链的manglerawnat链中)的数据包。

添加这些规则

我假设您在CATTLE_FORWARD表中找到了filter规则,在raw表中找到了CATTLE_RAW_PREROUTING规则。

代码语言:javascript
运行
复制
# create the chain CATTLE_FORWARD
iptables -N CATTLE_FORWARD
iptables -t raw -N CATTLE_RAW_PREROUTING

# add the rules
iptables -A CATTLE_FORWARD -m mark --mark 0x1068 -j ACCEPT
iptables -A CATTLE_FORWARD -m mark --mark 0x4000 -j ACCEPT

iptables -t raw -A CATTLE_RAW_PREROUTING ! -i docker0 -p udp -m udp --dport 500 -j MARK --set-xmark 0x1068/0xffffffff
iptables -t raw -A CATTLE_RAW_PREROUTING ! -i docker0 -p udp -m udp --dport 4500 -j MARK --set-xmark 0x1068/0xffffffff

但这还不够。您还需要在不同的表中设置此值的规则。否则,上述规则不会起到任何作用。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/594902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档