免费注册 查看新帖 |

Chinaunix

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

[网络子系统] 请教ip_local_reserved_ports [复制链接]

论坛徽章:
2
技术图书徽章
日期:2014-02-24 10:31:04技术图书徽章
日期:2014-03-20 16:11:43
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-05-16 21:22 |只看该作者 |倒序浏览
/proc/sys/net/ipv4/ip_local_reserved_ports文件的作用我就无多说了,我想请教一下,哪些内核进程对此文件进行解析,及相应的内核函数?

论坛徽章:
9
辰龙
日期:2014-08-18 20:38:42未羊
日期:2014-09-04 08:50:45丑牛
日期:2014-09-06 00:12:55寅虎
日期:2014-12-22 20:50:56摩羯座
日期:2015-01-14 22:28:15巳蛇
日期:2015-01-23 20:39:272015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之青岛
日期:2016-03-13 23:37:1915-16赛季CBA联赛之深圳
日期:2016-03-29 18:52:38
2 [报告]
发表于 2014-05-19 22:42 |只看该作者
麻烦你移步到内核代码,search!

论坛徽章:
2
技术图书徽章
日期:2014-02-24 10:31:04技术图书徽章
日期:2014-03-20 16:11:43
3 [报告]
发表于 2014-05-22 08:59 |只看该作者
找了很久没找到,能不能给点提示?回复 2# Tinnal


   

论坛徽章:
9
辰龙
日期:2014-08-18 20:38:42未羊
日期:2014-09-04 08:50:45丑牛
日期:2014-09-06 00:12:55寅虎
日期:2014-12-22 20:50:56摩羯座
日期:2015-01-14 22:28:15巳蛇
日期:2015-01-23 20:39:272015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之青岛
日期:2016-03-13 23:37:1915-16赛季CBA联赛之深圳
日期:2016-03-29 18:52:38
4 [报告]
发表于 2014-05-22 19:10 |只看该作者

论坛徽章:
9
辰龙
日期:2014-08-18 20:38:42未羊
日期:2014-09-04 08:50:45丑牛
日期:2014-09-06 00:12:55寅虎
日期:2014-12-22 20:50:56摩羯座
日期:2015-01-14 22:28:15巳蛇
日期:2015-01-23 20:39:272015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之青岛
日期:2016-03-13 23:37:1915-16赛季CBA联赛之深圳
日期:2016-03-29 18:52:38
5 [报告]
发表于 2014-05-22 20:02 |只看该作者
回复 3# 4059056
真正控制的变量在这:
http://lxr.free-electrons.com/so ... pv4.c?v=2.6.36#L750
  1. 748         for (i = ipv4_table; i->procname; i++) {
  2. 749                 if (strcmp(i->procname, "ip_local_reserved_ports") == 0) {
  3. 750                         i->data = sysctl_local_reserved_ports;
  4. 751                         break;
  5. 752                 }
  6. 753         }
复制代码
使用这个变量的地方:
http://lxr.free-electrons.com/so ... /ip.h?v=2.6.36#L199
  1. 199 static inline int inet_is_reserved_local_port(int port)
  2. 200 {
  3. 201         return test_bit(port, sysctl_local_reserved_ports);
  4. 202 }
复制代码
正真生效的地方:
http://lxr.free-electrons.com/so ... ock.c?v=2.6.36#L113
  1. 92 int inet_csk_get_port(struct sock *sk, unsigned short snum)
  2. 93 {

  3.               ……

  4. 103         if (!snum) {
  5. 104                 int remaining, rover, low, high;
  6. 105
  7. 106 again:
  8. 107                 inet_get_local_port_range(&low, &high);
  9. 108                 remaining = (high - low) + 1;
  10. 109                 smallest_rover = rover = net_random() % remaining + low;
  11. 110
  12. 111                 smallest_size = -1;
  13. 112                 do {
  14. 113                         if (inet_is_reserved_local_port(rover))
  15. 114                                 goto next_nolock;

  16.                       ……

  17. 137                 next_nolock:
  18. 138                         if (++rover > high)
  19. 139                                 rover = low;
  20. 140                 } while (--remaining > 0);
  21. 141
  22.                      ……
  23. 213 }
  24. 214 EXPORT_SYMBOL_GPL(inet_csk_get_port);
复制代码
这也不难搜索呀。以后自己要多练习。这个实现在内核来于已经很解单了。
   

论坛徽章:
2
技术图书徽章
日期:2014-02-24 10:31:04技术图书徽章
日期:2014-03-20 16:11:43
6 [报告]
发表于 2014-05-24 09:28 |只看该作者
这些我都看过,看完之后,也没有找到答案,所以我才到CU求助的。还有没有其他的提示?回复 5# Tinnal


   

论坛徽章:
9
辰龙
日期:2014-08-18 20:38:42未羊
日期:2014-09-04 08:50:45丑牛
日期:2014-09-06 00:12:55寅虎
日期:2014-12-22 20:50:56摩羯座
日期:2015-01-14 22:28:15巳蛇
日期:2015-01-23 20:39:272015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之青岛
日期:2016-03-13 23:37:1915-16赛季CBA联赛之深圳
日期:2016-03-29 18:52:38
7 [报告]
发表于 2014-05-24 18:17 |只看该作者
回复 6# 4059056

相关的代码在5楼不是给你了吗?你还想知到什么???{:2_166:}


   

论坛徽章:
2
技术图书徽章
日期:2014-02-24 10:31:04技术图书徽章
日期:2014-03-20 16:11:43
8 [报告]
发表于 2014-05-25 14:53 |只看该作者
这些代码我早就看过,你认为这些代码能解决问题吗?回复 7# Tinnal


   

论坛徽章:
2
技术图书徽章
日期:2014-02-24 10:31:04技术图书徽章
日期:2014-03-20 16:11:43
9 [报告]
发表于 2014-05-25 15:00 |只看该作者
我想知道的不是sysctl_local_reserved_ports的初始化,也不是inet_csk_get_port使用sysctl_local_reserved_ports随机分配端口。而是系统在运行期间实时更新sysctl_local_reserved_ports的过程,回复 7# Tinnal


   

论坛徽章:
9
辰龙
日期:2014-08-18 20:38:42未羊
日期:2014-09-04 08:50:45丑牛
日期:2014-09-06 00:12:55寅虎
日期:2014-12-22 20:50:56摩羯座
日期:2015-01-14 22:28:15巳蛇
日期:2015-01-23 20:39:272015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之青岛
日期:2016-03-13 23:37:1915-16赛季CBA联赛之深圳
日期:2016-03-29 18:52:38
10 [报告]
发表于 2014-05-25 18:51 |只看该作者
回复 9# 4059056

那是一个sysctl接口,系统自己不去更新它,他们系统管理员通过sysctl命令去手工设置的更新的。
系统启动时,现有的发行版本也会按sysctl.conf配置文件去配置。


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP