superjer2000
Well-known member
To make sure this is the case, I just re-ran this test in a more controlled environment. That environment was: two Basilisk II instances each using ethernet-over-UDP (so I didn't have to muck about with actual hardware). Bolo running on both. Machine 1 IP address 10.0.0.1, machine 2 10.0.0.2. Wireshark running on the host of machine 1.
Here is one of the packets involved in the connection process. Please disregard the extra framing: Wireshark doesn't know how to dissect the BII Ethernet Tunneling gubbins. The Bolo packet payload starts, appropriately, with the word 'Bolo' (outlined in both the hex and the ASCII).
View attachment 40556
Below this, at $0060, you can see $0a $00 $00 $01 (outlined in green), which in decimal is 10 0 0 1. This is the local IP address of the machine embedded in the payload of the packet and is why NAT breaks this game.
That's awesome cheesestraws!!
I wonder exactly how that is used? I.e. When bolo wants to communicate with another machine I guess it takes the IP address from the packet instead of whatever header or other network information would typically be used? If a bolo packet does make it back to another computer, I wonder if the client looks at the packet and confirms the IP address in the packet against the client as well?
For clarity: Would it be feasible to do a find/replace on these packets? So in your case above, when System 1 sends out a bolo packet that has 10.0.0.1 in it, that gets replaced with the external IP. So now System 2 sees the correct external IP and can get it's packets back to System 1's internal network. But that packet still has the external IP address in it and so even though the router 'routes' it to Server 1 on the internal network, will Bolo ignore it because the IP in the packet (external) doesn't match System 1's internal IP?
That would require monitoring of packets going out and coming back.
I also have no clue if it's as easy as just doing a find replace, or are there checksums that need to be recalculated as well? Time to do a little bit more reading on this stuff. I have very fond memories of all night Bolo LAN parties and would love to play again.