Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

My setup at office is:

Internet -> AirportExtreme --(wifi)--> AirportExpress --(eth1)--> MacPro1 --(eth2)--> MacPro2

MacPro1 has Internet Sharing enabled, allowing MacPro2 to be online.

But MacPro2 does NOT see any of the shared Macs on the network.

I tried changing the IP address manually on MacPro1, so it's the same subnet, but that didn't work.

I tried changing the DHCP server on AirportExtreme from default 10.0.1.x to 192.168.2.x (to match the IP that MacPro2 was getting from MacPro1), so then MacPro1 got a 192.168.2.x address on eth1; but then MacPro2 became 192.168.3.x !

How can I get MacPro2 visible on the local network? It can't "see" OR "be seen" by any of the Macs on the 192.168.2.x network.

However, if I MANUALLY connect from Finder to a 192.168.2.x address, then I can connect to other machines.

Thanks!

share|improve this question

2 Answers 2

Internet sharing on MacPro1 is acting as a router and doing NAT. The protocol used for discovery of other Macs on the 192.168.2.x network probably doesn't cross routers, which is normally what you want on a local network. The best way to fix this is to put an Ethernet switch or hub between MacPro1 and AirportExpress. Then plug both MacPro1 and MacPro2 into the switch.

If you don't want to use additional hardware (the original question didn't mention this), you need some way to get bonjour (OSX's discovery protocol) across the NAT/Routing function of Internet Sharing. There a few of Bonjour proxy/forwarder-type applications and IIRC, the "Sharing" system preferences has a global mode. Finally you might look into implimenting your own DNS Service Discovery server.

Unfortunately, I don't have experience with any of these. I guess this isn't really an answer, but maybe it'll point you in the right direction.

share|improve this answer
    
I know I can use a switch; I'm asking if it can be done without additional hardware. –  Ze'ev Apr 10 '12 at 18:40

This is a broadcast packet issue.

Bonjour (and a number of similar broadcast protocols) operate by sending an informational packet to 'everybody.' When your router (Airport) - and the Mac - receive packets, they open them, observe the recipient, and forward it to the appropriate location. This is where things get tricky, because when a broadcast packet is sent, it's actually sent to nobody in particular. So when your router sees packets of this type, it generally only forwards it to the other computers in the subnet. By having two DHCP servers (by having the bridging Mac share its connection) on the same network, you are essentially forcing it into two subnets. If you tried to have the two routers on the same subnet, you would have two DHCP servers issuing IP addresses - generally said to be a bad thing. The real issue here is that DHCP and Bonjour both operate using broadcast packets.

So what's the best way around this?

You can modify your subnet mask (generally something like 255.255.255.0) to be more general and include the next smallest group of IP addresses - probably by switching to 255.255.0.0. You'll have to do this on all devices on the network. However, this simply reintroduces the issue of dual DHCP servers.

The best solution is to have all your devices pointing at the same DHCP server somehow. You can do this one of two ways:

  1. By transparently bridging the ethernet ports on MacPro1 using 3rd-party software such as IPNetRouterX.

  2. If you're not opposed to obtaining additional hardware, you might consider purchasing a switch to attach to your AirportExpress and then attach both Mac Pros to that switch.

I would do #2. #1 requires MacPro1 to be on, and therefore results in more power usage and more potential downtime.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.