LINUX Ethernet bridge
I have configured one of my LINUX machines as a bridge. The network setup is as follows:
Machine A <-------->LINUX Bridge<-------> Machine B.
Both the links are 1 Gbps links, and so are the interfaces. Now, when I use iperf to send packets using TCP from Machine A to Machine B, it is able to go upto only 650 Mbps. Using iperf from Machine A to the Bridge machine, or from the Bridge Machine to Machine A is able to achieve 950 Mbps. And the same for the link to Machine B.
Can someone please help me understand why from A to B the achieved bandwidth is only 650 Mbps.
Machine A <-------->Bridge iface1<-->copy<-->Bridge iface2<-------> Machine B
Is this clearer? Transferring data from iface1 to iface2 and vice-versa goes through software and as such costs I/O and CPU. This is why there are switches that physically wire stations. Due to the low costs of switches, bridges are no longer in use since some years now. Most administrators know that spending 30$ for a small 4 port switch is indeed cheap.
The reason I have a LINUX box acting as a bridge is that I want to use dummynet to insert delay. But I cannot procede until the bridge itself is not working properly. Any thoughts?
Well, under the assumption that not the full bandwith of 1gbit is available you can safely use dummynet to increase the delay. Have you run a performance test where you bombard the bridge for about an hour with data and observe the load factors of your bridge?