前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >工控网络基础入门篇之建立table概念

工控网络基础入门篇之建立table概念

作者头像
剑指工控
发布2021-11-09 14:35:45
4930
发布2021-11-09 14:35:45
举报
文章被收录于专栏:剑指工控

你可以认为 table 是一个网络访问请求 (数据流) 的容器。一般情况下,我们可以把符合一定特征的网络访问请求 (数据流) 都收集到一个 table 中,这样当我们需要对有这一类特征的网络访问请求进行处理时,就可以直接操作这个 table 了,而不需要一条一条的去处理。

在 linux 操作系统中,table 就是一个 0 到 255 的数字,当然我们也可以在 “/etc/iproute2/rt_tables” 文件中给 table 数字对应上一个名称,然后就可以用这个名称来操作这个 table 了。例如我们的 OpenWRT 系统里的 rt_tables 文件默认是这样的:

local,main,default,unspec 这些都是系统内建的 ip table,可以看到他们分别都对应了一个数字,你操作 table 254 和操作 table main 其实是完全一样的。我们也可以修改这个文件,建立一个自己的 table,例如我们可以建立一个 ID 为 10,名字叫 v** 的 table。如果我们想要在访问被封锁网站的时候通过 V** 接口出去,那我们就可以先对这些数据打上标签4.2.2,然后用 ip rule 命令把有这些标签的数据全部加入一个table。

把数据添加到 table

假定我们现在已经把要访问全部被封锁网站的数据打上了标签 1(fwmark 1),我们又已经建立了一个名叫 v** 的 table,那么命令就可以这样写:

先阅读一下 man page 上对这个命令的注释:

说明如下:

1. ip rule add 表示添加一条规则。

2. fwmark 1 表示符合 fwmark(标签) 值等于 1 的数据。

3. priority 1984,表示这条规则的优先级是 1984,每条命令必须有独立的优先级。优先级从 0 到 32767,数字越小优先级越高,但 0、32766、32767 一般都是已经分配的,所以你要在这几个数中间选一个数作为优先级。

4. table v** 表示把这些数据全部添加到 v** 这个 table 里去。

如果想检查已有的 ip rule,可以用以下的命令:

一般情况下你会看到如下的回显:

让 table 数据走 V** 接口

现在我们已经有了一个 table 了,如何让这个 table 走 V**接口呢? 先阅读一下 man page 上的说明:

很复杂? 那我们看看实际用到的命令:

是不是瞬间觉得很亲切了?ip route 和前面的 route 命令几乎是一样的,只不过后面多了一个 table v**,表示添加默认接口这个动作只是用于 table v**里的数据的,这个灵活性就是 route 命令所没有的了。注意!这里的 pptp-V** 也是要根据你系统实际 V** 接口的名称修改的。我们这里没有指定网关 IP(例如 “via 10.10.10.10.1”) 之类的,因为一般一个接口连接上之后,如果网关支持 DHCP,那么在分配 IP 的时候也就会把默认网关通告给客户端,不需要我们去额外指定。除非你的 V**不支持 DHCP,但这这种 V**我还没见过。

如果你想确认某个 table 是不是走了 V** 接口还是别的接口,可以用如下命令:

如果确实添加默认接口成功了,你应该看到

其实这个添加默认接口的命令是应该早于你往这个 table 添加数据的,以免数据进来了却不知道要从哪里走,所以完整的顺序是:

1. 修改/etc/iprout2/rt_tables 建立一个 table

2. 给这个 table 指定一个默认的网络接口

3. 给指定的数据打上标签

4. 把打上了标签的数据添加到这个 table 里去

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 剑指工控 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档