我在终端上使用以下命令生成D-ITG流量, 命令:
ITGSend -a 10.1.1.129 -T TCP -sp 49000 -rp 49000 -C 100 -c 500 -t 2000 -l sender.log
然后它显示以下错误消息:
flowSender: Address family not supported by protocol
Could not bind a new socket. Flow ID: 1
Error - FlowSender interrupted by an error
Finished sending packets of flow ID: 1
因此,请建议我在D-ITG流量中设置源端口的更好解决方案。
答案 0 :(得分:0)
为此,您应该参考以下链接: http://traffic.comics.unina.it/software/ITG/manual/ 要在DITG中设置源和目标端口,可以使用以下选项。
-sp <src_port> Set the source port (default: Set by O.S.).
This option applies only to traffic flow.
-rp <dest_port> Set the destination port (default: 8999).
This option applies only to traffic flows.
根据他们参加DITG手册中的示例,我们可以使用这些选项来设置源端口和目标端口。
答案 1 :(得分:0)
如果任何人出于任何原因仍在使用旧版本的D-ITG(低于2.8.1),则该解决方案将在两端禁用IPv6:
sudo -S sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo -S sysctl -w net.ipv6.conf.default.disable_ipv6=1
sudo -S sysctl -w net.ipv6.conf.lo.disable_ipv6=1
D-ITG 2.8.1 (r66M)没有此问题。
更新: 版本2.8.1在运行以下情况下确实存在问题(在2.8.0上可以正常工作):
ITGRecv -Sp 9001
ITGSend -D -a 2001:db8:1234:100::2 -sa fd00:10::11 -Sdp 9001 -rp 23150 -sp 23150 -T TCP -t 30000 -C 128.0 -c 400
答案 2 :(得分:0)
互联网号码分配机构 (IANA) 建议动态或专用端口的范围为 49152 到 65535(215+214 到 216-1)。许多 Linux 内核使用端口范围 32768 到 60999。
在我的 Linux Debian 上
# sysctl net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768 60999
如果您使用此范围内的值,它将起作用。
发送方:
# ITGSend -a 172.16.25.129 -rp 32769 -C 100 -c 500 -t 20000 -x recv_log_file
ITGSend version 2.8.1 (r1023)
Compile-time options: sctp dccp bursty multiport
Started sending packets of flow ID: 1
Finished sending packets of flow ID: 1
接收方:
# ITGRecv
ITGRecv version 2.8.1 (r1023)
Compile-time options: sctp dccp bursty multiport
Press Ctrl-C to terminate
Listening on UDP port : 32769
Finish on UDP port : 32769
Listening on UDP port : 32769
Finish on UDP port : 32769