Why doesn't traceroute work?

freaky

OSXer
Ever since I can remeber, I cannot run "traceroute" on my iMac or my PowerBook. If I go to a new shell and type "traceroute cnn.com", it shows *** on the first hop. Then if I go to Network Utility and try it through there it does the same thing. I have no problems running tracert cnn.com on my Windoze boxes in my network.

Does anybody have any idea why I can't get it to work on any of my Macs? I have Little Snitch installed but I deleted the rule then hit Allow Foroever for any connections when I was prompted when doing a traceroute.
 
No, I can't ping a site either. I thought it may be a firewall issue but I couldn't figure out which port they are on so I'm not sure what to unblock.

bobw said:
Do you have the BSD subsystem installed?

Sorry if I sound like an idiot but how can I tell if this is installed or not? Probably not since I don't know what it is. :)
 
Are you behind a NAT router? OS X's traceroute uses a different method from Windows. OS X uses ICMP I believe, while Windows uses something else.

My router didn't support OS X's method for a while, until they issued an update and now it works.

I would contact your router manufacturer if you have one.
 
I upgraded my firmware on my linksys router but it's still not working.

I searched for BSD and there's a folder named BSD-OS and a BSD.pkg file.
 
Sounds like BSD isn't installed.

Is the BSD.pkg file in the Receipts folder?

If it isn't, double click it and see if it will install.
 
freaky said:
Ever since I can remeber, I cannot run "traceroute" on my iMac or my PowerBook. If I go to a new shell and type "traceroute cnn.com", it shows *** on the first hop. Then if I go to Network Utility and try it through there it does the same thing. I have no problems running tracert cnn.com on my Windoze boxes in my network.

I had the exact same problem when I switched to OSX with 10.2.4, 10.3.0, 10.3.3.

NetBarrier TraceRoute, VisualRoute, GlobalTraceRoute all fail any traceroute attempts. I could NEVER get them to work either. I had not tried OSX tools as I am far from UNIX savvy.

I did hit upon two that work however. IPNetMonitor has many tools among them TRACEROUTE. If you toggle it off the default UDP TRACE to ICMP TRACE, it works like a charm under OSX 10.2.4, 10.3.0 & 10.3.3.

Another was WHATROUTE. This also works. Under WHATROUTE window choose TRACE setting from popup, click OPTIONS button, and toggle OFF the radio button: Use UDP Traceroute. WhatRoute will then traceroute perfectly.

I never found out why this problem occurs or why only some traceroute OSX software provides options that work. It involves ICMP & UDP protocols, that's clear. WINDOWS uses a traceroute routine most similar to the ICMP choices and more compatible with routers.

I use a router a MIH 130A XRouter Pro from MacSense (XSense.com). I think (hazy memory from two years ago) if I removed my router, and direct connected to my cable modem>Mac the traceroute routines worked, but not through the router.

Annoying, but at least I found software that works.

Hope this hint works for you. It works on my G4 450, G4 933 & iMac1.25
G'Day


:(
 
The BSD subsystem does not actually install anything named BSD that's findable with the Finder's "Find" command other than the BSD.pkg file in the Receipts folder. The BSD subsystem is a set of UNIX utilities, programs and config files, not a program.
 
I would say that if the traceroute program is installed, then the BSD subsystem has been installed. The problem is with your router not supporting the way traceroute does the trace.
 
Some applications require that you have the BSD Subsystem software installed on your computer. The BSD Subsystem is installed by the Mac OS X Installer, but you can choose to not install it. If you did not install this software, you need to reinstall Mac OS X and make sure the BSD Subsystem is selected in the Custom Install pane of the Installer. (Reinstalling Mac OS X does not affect your settings.)
 
The BSD subsystem installs a lot of the command line programs, traceroute I think being one of them, along with ls, netstat, & about 100 other things.
 
just open all ports of type "icmp", which are used for ping, traceroute etc.

the command on FreeBSD looks like this:
Code:
ipfw add 1 allow icmp from any to any

it should be the same on os x. must be run as root (sudo would do)
 
Racer D said:
just open all ports of type "icmp", which are used for ping, traceroute etc.

the command on FreeBSD looks like this:
Code:
ipfw add 1 allow icmp from any to any

it should be the same on os x. must be run as root (sudo would do)

IT WORKED! Thank you!!!
 
no problem...

though I think the change is not permanent (it will be gone when you reboot), how to do that, I do not know, I have no idea where os x keeps its configuration files for stuff like this
 
Racer D said:
just open all ports of type "icmp", which are used for ping, traceroute etc.

the command on FreeBSD looks like this:
Code:
ipfw add 1 allow icmp from any to any

it should be the same on os x. must be run as root (sudo would do)

Unfortunately for me, it still fails with my router after trying (with trepidation as I am not UNIX savvy) you suggestion above.

It failed with my router, MIH 130A XRouter Pro from MacSense (XSense.com). The router works fine otherwise.

I can do a TraceRoute ONLY with IPNetMonitor with ICMP enabled NOT UDP Traceroute. It also works with WHATROUTE with "Use UDP TraceRoute" disabled.

Thanks for the hints tho. It must be something weird with my router, UDP & ICMP protocols.
 
MLJ_osxcom: that command cannot help you if you are behind a router. freaky was running a firewall on his mac, that's why it worked. You have to figure out how to open icmp ports on your router
 
Back
Top