Two ethernet cards/networks (still)

Bob Greschke bob at passcal.nmt.edu
Sun Sep 10 16:26:57 EDT 2006


"Steve Holden" <steve at holdenweb.com> wrote in message 
news:mailman.140.1157668455.5279.python-list at python.org...
> Bob Greschke wrote:
> The reason that "binding to a specific address is almost never used for a 
> client" is because it's the server destination address that the network 
> layer will use to determine which interface is used to communicate with a 
> specific server host.
>
> Suppose your network setup looks like this:
>
>
> +-------------------+------------------------+ Network A
>                     |
>                     |
>                     |
>                     | 192.168.12.34/24
>                     |
>            +--------+--------+
>            |                 |
>            |                 |
>            |     YOUR HOST   |
>            |                 |
>            |                 |
>            +--------+--------+
>                     |
>                     | 201.46.34.22/24
>                     |
>                     |
>                     |
> +-------------------+----------+-------------+ Network B
>                                |
>                                +
>                       +--------+--------+
>                       |      router     |
>                       |   to internet   |
>                       +-----------------+
>
> If your client program tries to communicate with, say, 192.168.12.18 then 
> by the IP network layer will automatically select network A as the medium, 
> since the destination is local to that network. If you then want to 
> communicate the results to 201.46.34.118 then network B will be used, 
> again because the destination is local to that network (its first 24 bits 
> are the same as the first 24 bits of the destination).
>
> In this case the router on network B will almost certainly be the default 
> route for the host, as it's the way to everywhere else.
>
> This isn't really Python-related, so I hope it answers your question!
>
> regards
>  Steve
> -- 
> Steve Holden       +44 150 684 7255  +1 800 494 3119
> Holden Web LLC/Ltd          http://www.holdenweb.com
> Skype: holdenweb       http://holdenweb.blogspot.com
> Recent Ramblings     http://del.icio.us/steve.holden
>

Nice explanation!  Thanks!  You mean I don't have to do anything special?? 
That sounds suspiciously easy. :)

To muddy the water a little the equipment I want to get info from (some 
seismic digitizing/recording equipment) comes back to us from the field with 
the IP addresses set to whatever that last user needed.  What we do now is 
put the unit(s) on the bench, connect them to the private network and use a 
broadcast address (like 255.255.255.255) and a specific port number to query 
and see who is connected.  Then we (a program) can get in (login, basically) 
and reset the all of the IPs to the same subnet to proceed with checkout, 
calibration, etc.  We have to disconnect from (or disable the card for) the 
outside network when we do this discovery or else the program discovers all 
of these instruments that we have running in the building (monitoring a 
seismic pier, in people's offices, etc.).  I'm guessing here we will still 
need to do this?  It's not a biggie, but finding a way to not have to do 
this was what started this whole thing.  Once the program knows which 
instruments it found on the private network it doesn't matter.  It will only 
work on those ones.

Thanks!

Bob





More information about the Python-list mailing list