zoukankan      html  css  js  c++  java
  • 解决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连接跟踪模块

  • 相关阅读:
    Go Map
    Go XORM
    Go切片
    Go函数
    dockerfile常用指令
    Goroutine并发控制
    Go 格式转换
    Go 常用知识点及实例
    Go 时间
    Go error
  • 原文地址:https://www.cnblogs.com/charlieroro/p/9391785.html
Copyright © 2011-2022 走看看