Skip to main content

How to add persistent/permanent routes in Mac OS X

Mac OS X looses static routes when it is rebooted. To preserve the static route on mac we would need to create a startup script which adds your static route upon system startup. The following steps will help  in achieving this.

  1. Create a directory named "addroute" under /System/Library/StartupItems/ with sudo privileges.
  2. Under addroute directory create "StartupParameters.plist" with below contents in it
         
  
     3. Now, create addroute shell script under  /System/Library/StartupItems/addroute directory. The addroute script should be like below.
     
#!/bin/sh
# Setting up static routing tables for Mac OS X                 
. /etc/rc.common
syslogger ( ) {   
        printf "%s\n" "$*" >> /var/log/system.log
}  


StartService ()
{
        syslogger $(/bin/date) " : Adding static route to route table"
        syslogger $(sudo /sbin/route add 192.168.1.0/24 172.16.193.100)
        return 0
}

StopService ()
{
        syslogger $(/bin/date) ": Deleting static routes from routing table"
        syslogger $(sudo /sbin/route delete 192.168.1.0/24 172.16.193.100)
        return 0
}

RestartService ()
{
        StopService
        StartService   
        return 0
}

RunService "$1"
   



4. Now change the permission of addroute script to 755 with sudo chmod 755 addroute command.
5. Reboot the system  or Run command "sudo SystemStarter start addroute" to run the startup item script.
6. Run "netstat -rn" command to verify the route is present in route table.

Now Every time you reboot your mac , you will have static route added to route table automatially. If you want to delete the route entry from table then run "sudo SystemStarter stop addroute"


There is also 3rd party application named "RouteSplit" is available to perform above operation. The tool can be downloaded from here

Comments

  1. Thanks! This was exactly what I was looking for.

    ReplyDelete
  2. Perfect:) i'll try it later. Hope i get it to work...

    ReplyDelete
  3. hi...Im student from Informatics engineering nice article,
    thanks for sharing :)

    ReplyDelete
  4. Hi,

    Thanks for the useful post. May I ask how do I call this service and why do you need...
    StopService ()
    {
    syslogger $(/bin/date) ": Deleting static routes from routing table"
    syslogger $(sudo /sbin/route delete 192.168.1.0/24 172.16.193.100)
    return 0
    }

    Thank you!

    ReplyDelete

Post a Comment

Popular posts from this blog

How to find firmware or boot ROM version in Mac OS X

Firmware and boot ROM version of your mac can be found in two ways. Way 1 : 1. From "Apple" menu , choose "About This Mac" menu item. 2. Click " More Info " to open "System Profiler" application. 3. Under Contents -> Select Hardware Tree item. On the right side panel Under hardware overview section, we can see Boot ROM Version and SMC (Firmware) Version. Way 2 : Run the below command in terminal to get boot ROM version and SMC(firmware) version : $ system_profiler SPHardwareDataType | grep -i "Version" | awk -F ':' '{print $1 $2}'

How to enable root login in gnome on Debian 6 or 7

Root user login in gnome is disabled on Debian system by default for security reasons. If you want to enable it for specific reasons then follow the below steps : 1. Login into Debian system 2. launch the Root Terminal from Applications -> Accessories. 3. Authenticate with password to launch the Root Terminal. 4. Open "/etc/pam.d/gdm3" with vi.          #vi /etc/pam.d/gdm3 5. Look for "auth     required     pam_succeed_if.so  user  != root   quiet_success"  , comment it out as below.     #auth     required     pam_succeed_if.so  user  != root   quiet_success 6. Save the modification with Esc+w+q+Enter keystroke. 7. Restart or reboot Debian system. 8. Login with root user in gnome. You should be now able to login successfully.   

How to setup Redhat cluster and GFS2 on RedHat Enterprise Linux 6 on Vmware ESXi

1)     Installing RHEL6 on Vmware esxi  with clustering packages . a)     Creating a RedHat Enterprise Linux 6.0 Virtual image. i)       Open vSphere Client by connecting to a Vmware ESXi Server. ii)     Login into your vSphere Client iii)    Goto File -> New -> Virtual Machine (VM). iv)    Select Custom option in Create New Virtual Machine Window and click Next v)   Give a name to the virtual machine(VM) ( In my case name of my virtual machine is – RHEL6-ClusterNode1) and click next. vi)    Select a resource pool where you want your VM to  reside ( In my case , I have created a      resource pool named RHEL6-Cluster.) and click Next. vii)  Select a datastore  to store your VM files  and Click Next. viii) Select VM version which is suitable for your environment.( In my case VM version is 7) and click Next. ix)   Specify ...