Two ethernet cards/networks (still)

Steve Holden steve at holdenweb.com
Mon Sep 11 04:17:22 CEST 2006


Bob Greschke wrote:
> "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.
> 

Ah, so you want to do a limited broadcast over a single interface (the 
one for the private network) to avoid having to disable the other 
interface? That's a different kettle of fish.

I suspect you could do it by binding the local socket to a single 
address, but I'd need to play around to get it right. Maybe someone else 
has already done this?

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




More information about the Python-list mailing list