之前做主备时,发现网卡有2个ip时(其中一个是虚拟ip,推流到虚拟ip),srt不能推流。
后来调查发现是网络回包时源ip选择错误引起。如下图所示:
192.168.11.161是第一ip,192.168.11.163是虚拟ip(推流到192.168.11.163)
#ip route
169.254.0.0/16 dev enp0s3 scope link metric 1002
192.168.0.0/20 dev enp0s3 proto kernel scope link src **192.168.11.161**
#tcpdump -i enp0s3 port 14000 -n
00:59:32.933525 IP 192.168.11.222.54108 > **192.168.11.163**.scotty-ft: UDP, length 204
00:59:32.944368 IP **192.168.11.161**.scotty-ft > 192.168.11.222.54108: UDP, length 44
解决方法是修改路由表src属性,使用如下命令修改:
ip route change dev enp0s3 192.168.0.0/20 src **192.168.11.163**
修改后的结果如下所示:
#ip route
169.254.0.0/16 dev enp0s3 scope link metric 1002
192.168.0.0/20 dev enp0s3 proto kernel scope link src **192.168.11.163**
#tcpdump -i enp0s3 port 14000 -n
00:59:32.933525 IP 192.168.11.222.54108 > 192.168.11.163.scotty-ft: UDP, length 204
00:59:32.944368 IP 192.168.11.163.scotty-ft > 192.168.11.222.54108: UDP, length 44
至此,能正常进行srt推流。