• 解决iptables nat sctp协议无效的问题


    环境组网如下:

    A----->B-----C

    IP如下:

    A:1.1.1.1

    B:1.1.1.2; 2.2.2.1

    C:2.2.2.2

    需求为,A 需要使用sctp连通C

    在B机器上添加iptables规则为:

    iptables -t nat -I PREROUTING -d 1.1.1.2 -p sctp --dport 11111 -j DNAT --to-destination  2.2.2.2:11111
    

    就是把A发出的报文的目的地址:端口由1.1.1.2:11111转变为2.2.2.2:11111

    同时在C的接口上使用tcpdump抓包,发现并没有接收到sctp报文,为检验网络是否正常(包括路由等配置),仅将上述规则中的sctp改为tcp进行tcp的连通测试

    iptables -t nat -I PREROUTING -d 1.1.1.1 -p tcp --dport 11111 -j DNAT --to-destination  2.2.2.2:11111
    

    发现C机器上可以抓到tcp报文,说明网络没有问题,iptables的规则也没有问题。

    因为tcpdump抓包解包并不需要系统支持特定的协议,怀疑可能是iptables规则因为某种原因没有生效,借助google发现了解决办法:iptables-nat-not-work-for-sctp

    载入nf_conntrack_proto_sctp即可,该模块用来对sctp进行连接跟踪

    # modprobe nf_conntrack_proto_sctp

    连接跟踪模块可以参见:nf_conntrack连接跟踪模块

  • 相关阅读:
    java 运算
    java String
    java的数据类型
    Python: str() 和 repr() 的区别
    Linux命令:which
    Linux命令:locate
    Linux命令:ifconfig
    Linux命令:whereis
    Linux命令:rz 和 sz
    Linux命令:scp
  • 原文地址:https://www.cnblogs.com/charlieroro/p/9391785.html
Copyright © 2020-2023  润新知