免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3449 | 回复: 8
打印 上一主题 下一主题

[网络管理] iptables源代码修改tos在哪 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-27 09:19 |只看该作者 |倒序浏览
请问iptables源代码修改tos在哪个点c文件里啊,求人指点啊。

论坛徽章:
2
巨蟹座
日期:2014-03-09 21:37:25射手座
日期:2014-04-16 16:23:03
2 [报告]
发表于 2012-03-29 10:53 |只看该作者
net/ipv4/netfilter/ipt_TOS.c

论坛徽章:
0
3 [报告]
发表于 2012-03-29 13:02 |只看该作者
回复 2# kwest


   没有这个文件啊, linux内核版本2.6.32.15以上的,你说的是老版本的吧。

论坛徽章:
0
4 [报告]
发表于 2012-03-30 12:21 |只看该作者
m3yangxiao 发表于 2012-03-29 13:02
回复 2# kwest

新版本已经融合到了 xt_DSCP.c 和 xt_dscp.c 里

  1. MODULE_AUTHOR("Harald Welte <laforge@netfilter.org>");
  2. MODULE_DESCRIPTION("Xtables: DSCP/TOS field modification");
  3. MODULE_LICENSE("GPL");
  4. MODULE_ALIAS("ipt_DSCP");
  5. MODULE_ALIAS("ip6t_DSCP");
  6. MODULE_ALIAS("ipt_TOS");
  7. MODULE_ALIAS("ip6t_TOS");
复制代码
判断和处理的时候其实还是针对 IP 头的 tos 字段

  1. static unsigned int
  2. tos_tg(struct sk_buff *skb, const struct xt_action_param *par)
  3. {
  4.         const struct xt_tos_target_info *info = par->targinfo;
  5.         struct iphdr *iph = ip_hdr(skb);
  6.         u_int8_t orig, nv;

  7.         orig = ipv4_get_dsfield(iph);
  8.         nv   = (orig & ~info->tos_mask) ^ info->tos_value;

  9.         if (orig != nv) {
  10.                 if (!skb_make_writable(skb, sizeof(struct iphdr)))
  11.                         return NF_DROP;
  12.                 iph = ip_hdr(skb);
  13.                 ipv4_change_dsfield(iph, 0, nv);
  14.         }

  15.         return XT_CONTINUE;
  16. }
复制代码

论坛徽章:
0
5 [报告]
发表于 2012-03-30 15:40 |只看该作者
[fly]回复 4# platinum
  1.     static bool tos_mt(const struct sk_buff *skb, const struct xt_match_param *par)
  2. {
  3.         const struct xt_tos_match_info *info = par->matchinfo;

  4.         if (par->match->family == NFPROTO_IPV4)
  5.                 return ((ip_hdr(skb)->tos & info->tos_mask) ==
  6.                        info->tos_value) ^ !!info->invert;
  7.         else
  8.                 return ((ipv6_get_dsfield(ipv6_hdr(skb)) & info->tos_mask) ==
  9.                        info->tos_value) ^ !!info->invert;
  10. }
复制代码
内核2.6.32.15,在xt_dscp.c文件里,怎么看都不像是修改tos的代码呢?

论坛徽章:
0
6 [报告]
发表于 2012-03-31 11:45 |只看该作者
现在的设备对TOS支持吗, 修改这个字段有什么作用? 回复 4# platinum


   

论坛徽章:
0
7 [报告]
发表于 2012-03-31 19:43 |只看该作者
morris2600 发表于 2012-03-31 11:45
现在的设备对TOS支持吗, 修改这个字段有什么作用? 回复 4# platinum

广域网路由器基本都可以给予 TOS 进行 QoS 调度
但由于现在 TOS 被滥用,导致 QoS 的方法失效了
具体请见搜索引擎

论坛徽章:
0
8 [报告]
发表于 2012-04-01 16:11 |只看该作者
不知道

论坛徽章:
0
9 [报告]
发表于 2012-04-04 09:44 |只看该作者
但由于现在 TOS 被滥用,导致 QoS 的方法失效了 ????
所以現在都不用TOS 改用其他東西 來使用QOS?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP