linux - SCTP - 协议(protocol)不可达错误

标签 linux tcp sctp

我正在处理基本的 SCTP 消息交换(SCTP 新手)并收到“ICMP 协议(protocol)无法访问错误”。

我正在使用两台 Linux 机器“A”(源)和“B”(目标)。在 B 机器上,sipp 工具正在通过 5080 端口上的 SCTP 进行监听(这是使用 netstat 验证的)。

首先,机器 B 可以从我的机器 A 访问,我不能得到“目标无法访问|主机无法访问”。其次,netstat 已验证监听端口为 5080,因此我也不能得到“无法访问的端口”。

现在我将 INIT 从 A(28232 端口)发送到 B(5080 端口)。有趣的是,我收到“ICMP - 协议(protocol)无法访问”?我无法将此 ICMP 错误关联起来。

在互联网上搜索后,我发现很少有帖子(在 stackoverflow 之外)说“ICMP 协议(protocol)无法访问错误和 SCTP 连接有一些竞争条件”。我无法在 Linux 内核网站上找到任何此类问题。

我正在使用内核版本为 3.10.0-327.28.2.el7.x86_64 的 RHEL 机器。

谁能帮我解释预期的行为。

苏丹苏

最佳答案

从您分享的内核版本,

您似乎正在运行 RHEL 7.2

您可能需要检查是否有防火墙 firewall is on..(Linux 防火墙默认不允许 SCTP)

尝试

1:关闭防火墙看错误是否清除

2:如果上面第 1 点的错误被清除,那么您可以在防火墙上允许特定的 SCTP 端口,它应该可以正常工作。

让我知道这个是否有效,或者您是否在任何时候卡住了。

关于linux - SCTP - 协议(protocol)不可达错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39743077/

相关文章:

java - 将图像从 Java TCP 客户端发送到 Node.js TCP 服务器

java - Mobicents JSS7 - 启动 sigtran 协会

无法链接 sctp 二进制文件

linux - 可移植的 bourne shell 脚本,无需使用 bash、ksh、zsh 等现代 shell 的功能

c - fork()后调用exec()会不会导致现有进程数据丢失

Java:使用服务器在两个客户端之间创建 P2P

sockets - 另一个客户端应用程序可以关闭崩溃的客户端应用程序通过服务器打开的TCP连接吗?

SCTP 多宿主问题

node.js - 无法从终端 ubuntu 18.04 LTS 正确安装 Mongodb

c - dup2() 函数的 max_fd 数是多少?