J'ai trouvé la suggestion d'utiliser les namespaces sur stackoverflow (ce qui est bien plus simple que les solutions à base de règles iptables), j'ai ensuite fait moi-même.
Je n'ai pas vérifié si un seul namespace n'était pas suffisant, mais en utiliser deux permet de partir sur des règles iptables vides et donc potentiellement limiter la charge CPU :
# ip netns add server
# ip link set dev enp10s0 netns server
# ip netns exec server ip link set enp10s0 up
# ip netns exec server ip addr add 192.168.2.1/24 dev enp10s0
# ip netns exec server iperf3 -s
# ip netns add client
# ip link set dev enp66s0 netns client
# ip netns exec client ip link set enp66s0 up
# ip netns exec client ip addr add 192.168.2.2/24 dev enp66s0
# ip netns exec client iperf3 -c 192.168.2.1 -t 20
Bien sûr pour tester deux cartes dans le même PC il faut avoir deux ports PCIe 8x de libres, ce qui n'est pas le cas de la majorité des PC (à moins de ne pas installer de carte graphique).
Le driver mlx4 est intégré au kernel, il n'y a donc rien à faire, la carte fonctionne immédiatement.
Je donne suite: J'ai reçu mes 2 cartes de ITService: 82.80 euros port compris les 2 cartes avec un Cable DirectAttach de 3m permettant de tester rapidement le tout.
J'ai testé tes instructions hwti, auquel je préciserai que les cartes peuvent porter un autre nom. Pour ceux qui lirai le topic, il est nécessaire de connaitre leur nom avec la commande suivante au préalable:
# ip link show
ce qui permet ensuite de suivre les commandes de hwti avec les bons noms. Ce qui me donne:
# ip netns exec server iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.2.2, port 47984
[ 5] local 192.168.2.1 port 5201 connected to 192.168.2.2 port 47986
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 1.02 GBytes 8.78 Gbits/sec
[ 5] 1.00-2.00 sec 1.09 GBytes 9.40 Gbits/sec
[ 5] 2.00-3.00 sec 1.09 GBytes 9.40 Gbits/sec
[ 5] 3.00-4.00 sec 1.09 GBytes 9.40 Gbits/sec
[ 5] 4.00-5.00 sec 1.09 GBytes 9.40 Gbits/sec
[ 5] 5.00-6.00 sec 1.09 GBytes 9.40 Gbits/sec
[ 5] 6.00-7.00 sec 1.09 GBytes 9.40 Gbits/sec
[ 5] 7.00-8.00 sec 1.09 GBytes 9.39 Gbits/sec
[ 5] 8.00-9.00 sec 1.09 GBytes 9.40 Gbits/sec
[ 5] 9.00-10.00 sec 1.09 GBytes 9.40 Gbits/sec
[ 5] 10.00-11.00 sec 1.09 GBytes 9.40 Gbits/sec
[ 5] 11.00-12.00 sec 1.09 GBytes 9.39 Gbits/sec
[ 5] 12.00-13.00 sec 1.09 GBytes 9.40 Gbits/sec
[ 5] 13.00-14.00 sec 1.09 GBytes 9.39 Gbits/sec
[ 5] 14.00-15.00 sec 1.09 GBytes 9.40 Gbits/sec
[ 5] 15.00-16.00 sec 1.09 GBytes 9.39 Gbits/sec
[ 5] 16.00-17.00 sec 1.09 GBytes 9.39 Gbits/sec
[ 5] 17.00-18.00 sec 1.09 GBytes 9.39 Gbits/sec
[ 5] 18.00-19.00 sec 1.09 GBytes 9.39 Gbits/sec
[ 5] 19.00-20.00 sec 1.09 GBytes 9.39 Gbits/sec
[ 5] 20.00-20.05 sec 52.2 MBytes 9.39 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-20.05 sec 21.9 GBytes 9.36 Gbits/sec receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Cela me semble ok
Lorsque je recevrai les commandes suivantes, je pourrai comparer en RJ45 et SFP+ optique