Linux 针对UDP的Nginx直接服务器返回

Linux 针对UDP的Nginx直接服务器返回,linux,nginx,udp,load-balancing,traffic,Linux,Nginx,Udp,Load Balancing,Traffic,我正在使用此资源()设置一个UDP负载平衡器,其中包含DSR和原始NAT 在我到达交通管制处之前,整个过程都很顺利: tc qdisc add dev eth0 root handle 10: htb tc filter add dev eth0 parent 10: protocol ip prio 10 u32 match ip src 172.16.0.11 match ip sport 53 action nat egress 172.16.0.11 192.168.99.10 第二个

我正在使用此资源()设置一个UDP负载平衡器,其中包含DSR和原始NAT

在我到达交通管制处之前,整个过程都很顺利:

tc qdisc add dev eth0 root handle 10: htb
tc filter add dev eth0 parent 10: protocol ip prio 10 u32 match ip src 172.16.0.11 match ip sport 53 action nat egress 172.16.0.11 192.168.99.10
第二个命令失败,原因是:

Illegal "match"
从这里()可以看出,语法看起来是正确的。 当然,我用我正在配置的上游的实际IP替换了172.16.0.11,用托管Nginx的主机的IP替换了192.168.99.10。接口名称为eth0

我正在运行Ubuntu 16.04.02 LTS

“tc filter”命令是否不正确,或者我是否做错了什么?IPV会更简单吗


谢谢大家!

我已使用0xffff掩码接受所有范围

tc filter add dev eth0 parent 10: protocol ip prio 10 u32 match ip src 172.16.0.11 match ip sport 53 0xffff action nat egress 172.16.0.11 192.168.99.10

我已使用0xffff掩码接受所有范围

tc filter add dev eth0 parent 10: protocol ip prio 10 u32 match ip src 172.16.0.11 match ip sport 53 0xffff action nat egress 172.16.0.11 192.168.99.10

非法匹配可能意味着IP i存在问题。在编译和检测tc二进制文件时,我发现match sport需要端口号和位掩码。不过,ip部分工作正常。我没有找到位掩码的确切内容,没有在tc-u32的手册页中找到信息。谢谢。非法匹配可能意味着IP问题。我发现编译和检测tc二进制文件时,match sport需要端口号和位掩码。不过,ip部分工作正常。我没有找到位掩码的确切内容,没有在tc-u32的手册页中找到信息。谢谢。Pff,我怎么以前没试过呢!非常感谢。Pff,我怎么以前没试过呢!非常感谢。