Bridge

Apr 5, 2013 at 6:58 PM
I have been trying (on and off) for a couple of months to get the bridge to work on my wan. I have the latest version of the client and the bridge installed on 2 machines on the 2 different lans. I have read and re-read the posts trying to figure out the issue of why they will not communicate.

This is a Windows 7 environment. The clients work fine within each lan.

Question 1: How do I know if the bridge service is actually running?
When I look at the services running on each of the 2 bridge nodes, the service startup type states 'automatic'. If I try to 'start' the service, it will go through the process but then state that it "... started and then stopped. Some Services stop automatically if they are not in use by other services or programs."

If I try from the command prompt within the squiggleBridge directory: Squiggle.Bridge .... I get the following error ....

C:\Users\Video\Documents\Squiggle-3.2_Bridge>Squiggle.Bridge
An error occurred creating the configuration section handler for BridgeConfigura
tion: Request failed. (C:\Users\Video\Documents\Squiggle-3.2_Bridge\Squiggle.Bri
dge.exe.Config line 6)

I can ping each of the machines from the other machine on each of the lans.
So, I would like to start here .... how do i verify bridge is functioning?


I've also included the 2 configs for the bridges -- maybe this is wrong?
A:
<BridgeConfiguration>
<InternalServiceBinding IP="172.30.0.69" Port="1235"/>
<ExternalServiceBinding IP="172.30.0.69" Port="1236"/>
<PresenceBinding MulticastIP="224.10.11.12" MulticastPort="9998" ServicePort="9997" CallbackPort="9996" />
<Targets>
  <add IP="206.89.160.99" Port="1236"/>
</Targets>
</BridgeConfiguration>

B:
<BridgeConfiguration>
<InternalServiceBinding IP="206.89.160.99" Port="1235"/>
<ExternalServiceBinding IP="206.89.160.99" Port="1236"/>
<PresenceBinding MulticastIP="224.10.11.12" MulticastPort="9998" ServicePort="9997" CallbackPort="9996" />
<Targets>
  <add IP="172.30.0.69" Port="1236"/>
</Targets>
</BridgeConfiguration>
Apr 5, 2013 at 9:30 PM
I have solved my own issue and hopefully might be useful for the documentation.
Yes, the problem was the server not running.

The solution for win7 users ....
go to the properties of Squiggle.Bridge.exe.config
in the "Attributes" section of the General Tab, if there is a button that says 'Unblock', click it.
Do this for both of your bridge nodes.

After doing this, I was able to start the bridge service by running Squiggle.Bridge from the command prompt.
Coordinator
Apr 5, 2013 at 9:58 PM
Thank you for sharing the solution with us.
Apr 9, 2013 at 1:31 AM
Can someone tell me if the bridge service is only running if you run it in the console mode?
I see the service in Windows Services, but I can only get the service to watch traffic if I run the bridge in console mode.
Also, I am having some issues with the console mode terminating ..., ie, 'the application has stopped working' windows message.
Any help would be appreciated.
My company is very appreciative of the app.
Coordinator
Apr 9, 2013 at 3:36 AM
Bridge works both in console and as windows service. Please enable loging of errors and find out what is causing your client to crash.
Uncomment the trace section in Squiggle.exe.config, restart Squiggle and it will start writing errors to Squiggle.log file.
Apr 10, 2013 at 3:52 AM
I did as you asked with the log, but there is no information in it other than "Forward: Give User Info Message" and messages of the like.
On both servers I had the same error after a period of time (I do not know if they occurred at the same time).

There was the windows message: Squiggle Bridge has stopped working. A program has caused the program to stop working correctly. Windows will close the program and notify you if a solution is available.

The last line in the console window (which was not in the log file) was: Assertion failed: Bad address (......\src\tcp_socket.cpp:93)

The above message was on both of the bridge nodes.


I have been unable to get the Bridge to work as a service within windows. (That is, I only have communication between the bridge nodes when running the bridge in console mode).

When I look at the services running, I do see Squiggle Bridge listed and Startup Type is 'Automatic' but the Status is blank.
Attempting to 'Start' the service produces the message: The Squiggle Bridge service on the local computer started and then stopped. Some services stop automatically if they are not in use by other services or programs.

Is this normal behavior for the Squiggle Bridge service? Or, should the Status show that the service has been 'Started'

Thank you for your help.
Coordinator
Apr 10, 2013 at 3:56 AM
What you are experiencing is not normal behavior. It seems there is a problem with the zeromq library that Squiggle uses to communicate between the bridges.
Apr 10, 2013 at 4:21 AM
Edited Apr 12, 2013 at 12:02 AM
Here is my latest discovery regarding the Win7 Squiggle Bridge service.
Although I was not able to start the service from the main window, if I right-clicked on the Squiggle Bridge service and then selected 'properties', from here I was able to click a 'start' button to start the service and it started up fine.

A couple of notes for users who may be experiencing some trouble with Squiggle Bridge on Windows.

Configure your bridge (edit the file) Squiggle.Bridge.exe.config (see example in the first post of this thread).
Right-click on the config file, choose properties and click 'Unblock'

You will need to allow access through you windows firewall. If you are unsure how to do this you can start by shutting down both the public and private firewalls on each server node just to eliminate it as a point of failure in configuring your bridge. Don't be lazy and leave it that way.

Now ...
  1. Be certain you right-click and select Run as Administrator when opening the Command Prompt
  2. Navigate to the directory where you unzipped the Bridge and at the prompt: Squiggle.Bridge -i
  3. Type "services" in the search box of the start menu: Component Services will launch
  4. Click the 'Services (local)' tree item on the left and locate the Squiggle Bridge service on the right
  5. Right-click on the service and select properties
  6. On the General tab, click the Start button to start the service.
    a. If you find that the bridge service terminates for what seems to be 'no reason', choose the recovery tab and tell it to 'restart the service' on failures.
May 1, 2013 at 10:09 PM
Edited May 1, 2013 at 10:10 PM
One more note for Bridge Users and the firewall.
I am not an expert on ports and firewalls, but I did not want to leave my windows firewalls disabled for the bridge to operate.

Here are 2 lines from the Squiggle.Bridge.exe.config file:
<ExternalServiceBinding IP="172.30.0.53" Port="__1236__"/>
<PresenceBinding MulticastIP="224.10.11.12" MulticastPort="9998" ServicePort="9997" CallbackPort="9996" />
Modifying the windows firewall to accept ports 1236 and 9997 allowed communication to flow.
To open the ports in Win7:
Control Panel -> System and Security -> Windows Firewall

In the left pane, click Advanced Settings.
In the left pane right-click Inbound Rules -> New Rule ....
  1. Select Port, Next>
  2. check TCP and Specific local ports and add 1236, Next>
  3. check Allow the Connection, Next>
  4. check Domain, Private, Public Next>
  5. Give it a name like: Squiggle Bridge 1236
Repeat the process for Outbound Rules
Repeat the process for port 9997
Repeat the process on all bridge node machines

Hope that helps someone and that I haven't opened a huge security hole.