如何在armLinux中设置组播的默认HopLimit值?

问题描述 投票:0回答:2

我正在尝试通过套接字将数据包发送到多播地址。默认情况下

hopLimit
== 1。我默认需要
hopLimit == 255

我可以使用

hopLimit
更改通过此套接字发送的所有数据包的
IPV6_MULTICAST_HOPS setsockopt
。 但我需要类似
hopLimit
的系统默认值来进行多播发送。

我找到了

sysctl
选项。但仅限于
OpenBSD
net.inet6.ip6.defmcasthlim

我找不到类似的选项

armLinux

c++ linux arm multicastsocket sysctl
2个回答
0
投票

不幸的是,无法像 OpenBSD 那样更改 Linux 中的默认多播跳数限制。除非您愿意更改 Linux 内核源代码,否则。如果您确实想为此目的修改内核,只需更改内核树中的 include/net/ipv6.h 头文件中的

IPV6_DEFAULT_MCASTHOPS
定义即可。


0
投票

我无法在armLinux中测试这个,但sysctl可以在rocky 9中工作

例如,进行临时更改:

sudo sysctl net.ipv4.ip_default_ttl=12

例如,要进行将在重新启动后生效的更改:

创建

/etc/sysctl.d/limit-ttl.conf
内容:

sudo sysctl net.ipv4.ip_default_ttl=12

sysctl
可以为您提供当前值,或者您可以查看
/proc/sys/net/ipv4

您可以像往常一样写入这些文件进行更改,如果这适合您想要做的事情。

信用:https://packetpushers.net/blog/ip-time-to-live-and-hop-limit-basics/

要查看其他选项,请查看:https://docs.otc.t-systems.com/elastic-cloud-server/umn/faqs/network_configurations/how_can_i_view_and_modify_kernel_parameters_of_a_linux_ecs.html

© www.soinside.com 2019 - 2024. All rights reserved.