[Xorp-users] How to notify the OSPF process to use FEA on a different machine?

Mingcy.Xu mingcy.xu at gmail.com
Fri Sep 12 02:53:17 PDT 2008



Things are getting better after I used the command "egrep fea *.tp |egrep
path" to find all the files including
    "%modinfo: path "fea/xorp_fea"
and then removed this line from these files.

[root at Lab_62 templates]# egrep fea *.tp | egrep path
fea.tp:    			%modinfo:    path            "fea/xorp_fea";
firewall.tp:    %modinfo:    path            "fea/xorp_fea";
interfaces.tp:  %modinfo:    path            "fea/xorp_fea";
mfea4.tp:       %modinfo:    path            "fea/xorp_fea";
mfea6.tp:       %modinfo:    path            "fea/xorp_fea";
[root at Lab_62 templates]# 

Note: Lab_62(10.20.1.1): rtrmgr
      Lab_59(10.20.1.2): fea
      
But the rtrmgr can still not be started successfully. The following is the
detailed information.


1. Remove line "%modinfo: path "fea/xorp_fea" " in all .tp files as
described above.


2. On the rtrmgr side setup the finder server and client addresses:

	[root at Lab_62 templates]# env | more
	HOSTNAME=Lab_62
	TERM=vt100
	SHELL=/bin/bash
	XORP_FINDER_SERVER_ADDRESS=10.20.1.1
	XORP_FINDER_CLIENT_ADDRESS=10.20.1.1
	...

3. On the remote fea side setup the finder server and client addresses:

	[root at Lab_59 templates]# env|more
	HOSTNAME=Lab_59
	TERM=vt100
	SHELL=/bin/bash
	XORP_FINDER_SERVER_ADDRESS=10.20.1.1
	XORP_FINDER_CLIENT_ADDRESS=10.20.1.2
	...

4. Run the rtrmgr on 10.20.1.1 and enable connections from host 10.20.1.2:
   (The config.boot used is listed below.)
	
[root at Lab_62 rtrmgr]# ./xorp_rtrmgr -a 10.20.1.2
[ 2008/09/12 16:35:38  INFO xorp_rtrmgr:16706 IPC +477 sockutil.cc
set_preferred_ipv4_addr ] Changing to address 10.20.1.1 for IPv4 based XRL
communication.
[ 2008/09/12 16:35:38  INFO xorp_rtrmgr:16706 RTRMGR +239
master_conf_tree.cc execute ] Changed modules: interfaces, firewall, fea,
rib, policy, ospf4
[ 2008/09/12 16:35:38  INFO xorp_rtrmgr:16706 RTRMGR +96 module_manager.cc
execute ] Executing module: interfaces ()
[ 2008/09/12 16:35:40  WARNING xorp_rtrmgr:16706 XrlFinderTarget +406
../xrl/targets/finder_base.cc handle_finder_0_2_resolve_xrl ] Handling
method for finder/0.2/resolve_xrl failed: XrlCmdError 102 Command failed
Target "fea" does not exist or is not enabled.
[ 2008/09/12 16:35:41  WARNING xorp_rtrmgr:16706 XrlFinderTarget +406
../xrl/targets/finder_base.cc handle_finder_0_2_resolve_xrl ] Handling
method for finder/0.2/resolve_xrl failed: XrlCmdError 102 Command failed
Target "fea" does not exist or is not enabled.
[ 2008/09/12 16:35:42  WARNING xorp_rtrmgr:16706 XrlFinderTarget +406
../xrl/targets/finder_base.cc handle_finder_0_2_resolve_xrl ] Handling
method for finder/0.2/resolve_xrl failed: XrlCmdError 102 Command failed
Target "fea" does not exist or is not enabled.
[ 2008/09/12 16:35:43  WARNING xorp_rtrmgr:16706 XrlFinderTarget +406
../xrl/targets/finder_base.cc handle_finder_0_2_resolve_xrl ] Handling
method for finder/0.2/resolve_xrl failed: XrlCmdError 102 Command failed
Target "fea" does not exist or is not enabled.
[ 2008/09/12 16:35:44  WARNING xorp_rtrmgr:16706 XrlFinderTarget +406
../xrl/targets/finder_base.cc handle_finder_0_2_resolve_xrl ] Handling
method for finder/0.2/resolve_xrl failed: XrlCmdError 102 Command failed
Target "fea" does not exist or is not enabled.
[ 2008/09/12 16:35:45  WARNING xorp_rtrmgr:16706 XrlFinderTarget +406
../xrl/targets/finder_base.cc handle_finder_0_2_resolve_xrl ] Handling
method for finder/0.2/resolve_xrl failed: XrlCmdError 102 Command failed
Target "fea" does not exist or is not enabled.
[ 2008/09/12 16:35:46  WARNING xorp_rtrmgr:16706 XrlFinderTarget +406
../xrl/targets/finder_base.cc handle_finder_0_2_resolve_xrl ] Handling
method for finder/0.2/resolve_xrl failed: XrlCmdError 102 Command failed
Target "fea" does not exist or is not enabled.

(Note: at this point the xorp_fea on the remoter machine was started.)

[ 2008/09/12 16:35:47  INFO xorp_rtrmgr:16706 RTRMGR +96 module_manager.cc
execute ] Executing module: firewall ()
[ 2008/09/12 16:35:51  INFO xorp_rtrmgr:16706 RTRMGR +96 module_manager.cc
execute ] Executing module: fea ()
[ 2008/09/12 16:36:07  ERROR xorp_rtrmgr:16706 XRL +639 xrl_pf_stcp.cc die ]
XrlPFSTCPSender died: Keepalive timeout
[ 2008/09/12 16:36:07  ERROR xorp_rtrmgr:16706 RTRMGR +1400 task.cc
execute_done ] 210 Transport failed
[ 2008/09/12 16:36:07  ERROR xorp_rtrmgr:16706 RTRMGR +1998 task.cc
task_fail ] Shutting down fatally wounded process (fea)
[ 2008/09/12 16:36:07  INFO xorp_rtrmgr:16706 RTRMGR +171 module_manager.cc
terminate ] Terminating module: fea
[ 2008/09/12 16:36:07  ERROR xorp_rtrmgr:16706 RTRMGR +681
master_conf_tree.cc commit_pass2_done ] Commit failed: 210 Transport failed
[ 2008/09/12 16:36:07  ERROR xorp_rtrmgr:16706 RTRMGR +251
master_conf_tree.cc config_done ] Configuration failed: 210 Transport failed
[ 2008/09/12 16:36:07  INFO xorp_rtrmgr:16706 RTRMGR +2228 task.cc run_task
] No more tasks to run
[ 2008/09/12 16:36:07  INFO xorp_rtrmgr:16706 RTRMGR +171 module_manager.cc
terminate ] Terminating module: firewall
[ 2008/09/12 16:36:07  INFO xorp_rtrmgr:16706 RTRMGR +171 module_manager.cc
terminate ] Terminating module: interfaces
[root at Lab_62 rtrmgr]# 


5.Run the fea on 10.20.1.2:

[root at Lab_59 fea]# ./xorp_fea
[ 2008/09/12 15:32:48 INFO xorp_fea IPC ] Changing to address 10.20.1.2 for
IPv4 based XRL communication.
[ 2008/09/12 15:32:48 INFO xorp_fea IPC ] Changing to address 10.20.1.2 for
IPv4 based XRL communication.
[ 2008/09/12 15:32:48 INFO xorp_fea IPC ] Changing to address 10.20.1.2 for
IPv4 based XRL communication.
[ 2008/09/12 15:32:48 INFO xorp_fea IPC ] Changing to address 10.20.1.2 for
IPv4 based XRL communication.
[ 2008/09/12 15:32:49 INFO xorp_fea MFEA ] MFEA enabled
[ 2008/09/12 15:32:49 INFO xorp_fea MFEA ] CLI enabled
[ 2008/09/12 15:32:49 INFO xorp_fea MFEA ] CLI started
[ 2008/09/12 15:32:49 INFO xorp_fea MFEA ] MFEA enabled
[ 2008/09/12 15:32:49 INFO xorp_fea MFEA ] CLI enabled
[ 2008/09/12 15:32:49 INFO xorp_fea MFEA ] CLI started
(Note: the xorp_finder was not started manually on this machine. So the
above message showed the fea had found its finder server on another
machine.)
  


At this point, the rtrmgr host lost its connection to the fea host. The
connection can be established again only after the fea host is rebooted(this
is similar when I used the script approach.). 



The config.boot used:

/* $XORP: xorp/rtrmgr/config/ospfv2.boot,v 1.1 2007/08/29 06:49:43 pavlin
Exp $ */

policy {
     policy-statement connected {
         term export {
             from {
                 protocol: "connected"
             }
         }
     }
}

interfaces {

    interface eth0 {
        disable: false
        discard: false
        vif eth0 {
            disable: false
    	       address 10.20.1.1 {
                prefix-length: 24
                broadcast: 10.20.1.255
                disable: false
    	    }
    	}
    }

    interface eth1 {
        disable: false
        discard: false
        vif eth1 {
            disable: false
    	      address 10.30.1.1 {
                prefix-length: 24
                broadcast: 10.30.1.255
                disable: false
    	    }
    	}
    }
    
}

fea {
       unicast-forwarding4 {
       disable: false
    }
}

protocols {

    ospf4 {
	router-id: 10.20.1.1
	area 0.0.0.0 {
	    interface eth0 {
		link-type: "broadcast"
		vif eth0 {
		       address 10.20.1.1 {
	             disable: false
		    }
		}
	    }
        
	    interface eth1 {
		link-type: "broadcast"
		vif eth1 {
		       address 10.30.1.1 {
			 disable: false
		    }
		}
	    }
        
	}
    
	traceoptions {
	    flag {
		all {
		    disable: false
		}
	    }
	}
	
    export: "connected"
    }
}






-----Original Message-----
From: Pavlin Radoslavov [mailto:pavlin at ICSI.Berkeley.EDU] 
Sent: Friday, September 12, 2008 2:51 AM
To: Mingcy.Xu
Cc: 'Pavlin Radoslavov'
Subject: Re: [Xorp-users] How to notify the OSPF process to use FEA on a
different machine? 


Thank you for the detailed information.
It looks like the issue is that the xorp_fea process was still started
locally.
I think the reason is because more than one *.tp template file can actually
start the fea. Hence, you would need to do the same
"%modinfo: path ..." change/removal for all files:

egrep fea *.tp |egrep path

You shouldn't replace xorp_fea with xorp_static_routes, so you should try
removing the line.

I wonder why replacing xorp_fea with the script didn't work for you.
Later this afternoon I will do some experiments to see what happens.

Pavlin

P.S. In general, unless you have reasons to keep things private, I'd
recommend that you send XORP-related emails to one of the XORP mailing
lists, so other folks can have the opportunity to provide
(better) answer and/or they can benefit from the answers.

Mingcy.Xu <mingcy.xu at gmail.com> wrote:

> Hi Pavlin,
> 
> I am very grateful to you for taking your time to help me. I have 
> followed your guide to do the experiment but surprisingly it does not 
> work out. I guess there must be something I did wrong. I have tried 
> but can not figure it out. So I hope you could give me more clues. The 
> following are the details about the experiment.
> 
> 
> Host 20.1.1.1: Run xorp_rtrmgr (the config.boot used is listed below) 
> Host 20.1.1.2: Run xorp_fea 
> /////////////////////////////////////////////////////////////
> 
> 
> 
> Step 1: For xorp_rtrmgr,replace "%modinfo:   path" data in
> /etc/templates/fea.tp with "static_routes/xorp_static_routes":
> ....
> fea {
>     %help:      short           "Configure the Forwarding Engine
> Abstraction";
>     %modinfo:   provides        fea;
>     %modinfo:   depends         firewall;
>     %modinfo:   path            "static_routes/xorp_static_routes";
>     %modinfo:   default_targetname "fea";
> 
> Also tried:
> 
> ....
> fea {
>     %help:      short           "Configure the Forwarding Engine
> Abstraction";
>     %modinfo:   provides        fea;
>     %modinfo:   depends         firewall;
>     %modinfo:   default_targetname "fea";
> 
>    (i.e,just remove the line "%modinfo:   path".the result seems to make
no
> difference though.)
> /////////////////////////////////////////////////////////////
> 
> 
> 
> Step 2: For xorp_rtrmgr,set required environments :
> [root at 20.1.1.1 ~]# env
> ....
> SHELL=/bin/bash
> XORP_FINDER_SERVER_ADDRESS=20.1.1.1
> XORP_FINDER_CLIENT_ADDRESS=20.1.1.1
> ....
> /////////////////////////////////////////////////////////////
> 
> 
> 
> Step 3: For xorp_fea,set required environments :
> [root at 20.1.1.2 ~]# env
> SHELL=/bin/bash
> XORP_FINDER_SERVER_ADDRESS=20.1.1.1
> XORP_FINDER_CLIENT_ADDRESS=20.1.1.2
> ..........
> /////////////////////////////////////////////////////////////
> 
> 
> Step 4: Run xorp_rtrmgr: 
> [root at 20.1.1.1 rtrmgr]# ./xorp_rtrmgr -a 20.1.1.2 >debug [ 2008/09/11 
> 16:52:47  INFO xorp_rtrmgr:2878 IPC +477 sockutil.cc 
> set_preferred_ipv4_addr ] Changing to address 20.1.1.1 for IPv4 based 
> XRL communication.
> [ 2008/09/11 16:52:47  INFO xorp_rtrmgr:2878 RTRMGR +239 
> master_conf_tree.cc execute ] Changed modules: interfaces, firewall, 
> fea, rib, policy, ospf4 [ 2008/09/11 16:52:47  INFO xorp_rtrmgr:2878 
> RTRMGR +96 module_manager.cc execute ] Executing module: interfaces 
> (fea/xorp_fea) [ 2008/09/11 16:52:49  INFO xorp_rtrmgr:2878 RTRMGR +96 
> module_manager.cc execute ] Executing module: firewall (fea/xorp_fea) 
> [ 2008/09/11 16:52:53  INFO xorp_rtrmgr:2878 RTRMGR +96 
> module_manager.cc execute ] Executing module: fea 
> (static_routes/xorp_static_routes)
> [ 2008/09/11 16:52:59  INFO xorp_rtrmgr:2878 RTRMGR +96 
> module_manager.cc execute ] Executing module: rib (rib/xorp_rib) [ 
> 2008/09/11 16:53:01  INFO xorp_rtrmgr:2878 RTRMGR +96 
> module_manager.cc execute ] Executing module: policy 
> (policy/xorp_policy) [ 2008/09/11 16:53:03  INFO xorp_rtrmgr:2878 
> RTRMGR +96 module_manager.cc execute ] Executing module: ospf4 
> (ospf/xorp_ospfv2) [ 2008/09/11 16:53:05  INFO xorp_rtrmgr:2878 RTRMGR 
> +2228 task.cc run_task ] No more tasks to run
> 
> When xorp_fea invoked at 20.1.1.2,the following two lines came up:
> [ 2008/09/11 16:53:50  INFO xorp_rtrmgr:2878 RTRMGR +275 
> module_manager.cc module_exited ] Module normal exit: fea [ 2008/09/11 
> 16:53:50  ERROR xorp_rtrmgr:2878 LIBXORP +717 asyncio.cc 
> complete_transfer ] Write error 104 
> /////////////////////////////////////////////////////////////
> 
> 
> [root at 20.1.1.1 ~]# ps -a
>   PID TTY          TIME CMD
>  2878 pts/0    00:00:01 xorp_rtrmgr
>  2879 pts/0    00:00:00 xorp_fea
>  2882 pts/0    00:00:00 xorp_rib
>  2883 pts/0    00:00:00 xorp_policy
>  2885 pts/0    00:00:00 xorp_ospfv2
>  2890 pts/1    00:00:00 ps
> /////////////////////////////////////////////////////////////
> 
> 
> 
> Step 5: Run xorp_fea:
> [root at 20.1.1.2 fea]# ./xorp_fea
> [ 2008/09/11 15:51:14 INFO xorp_fea IPC ] Changing to address 20.1.1.2 
> for
> IPv4 based XRL communication.
> [ 2008/09/11 15:51:14 INFO xorp_fea IPC ] Changing to address 20.1.1.2 
> for
> IPv4 based XRL communication.
> [ 2008/09/11 15:51:14 INFO xorp_fea IPC ] Changing to address 20.1.1.2 
> for
> IPv4 based XRL communication.
> [ 2008/09/11 15:51:14 INFO xorp_fea IPC ] Changing to address 20.1.1.2 
> for
> IPv4 based XRL communication.
> [ 2008/09/11 15:51:14 INFO xorp_fea MFEA ] MFEA enabled [ 2008/09/11 
> 15:51:14 INFO xorp_fea MFEA ] CLI enabled [ 2008/09/11 15:51:14 INFO 
> xorp_fea MFEA ] CLI started [ 2008/09/11 15:51:14 INFO xorp_fea MFEA ] 
> MFEA enabled [ 2008/09/11 15:51:14 INFO xorp_fea MFEA ] CLI enabled [ 
> 2008/09/11 15:51:14 INFO xorp_fea MFEA ] CLI started [ 2008/09/11 
> 15:51:14  FATAL xorp_fea:2610 MFEA +519 xrl_mfea_node.cc 
> cli_manager_client_send_add_cli_command_cb ] Cannot add a command to 
> CLI
> manager: 102 Command failed Cannot install command 'show mfea': Error 
> installing 'show mfea' on '<ROOT>': Command 'mfea' already installed 
> Aborted /////////////////////////////////////////////////////////////
> 
> 
> 
> 
> 
> /////////////////////////////////////////////////////////////
> the config.boot used at 20.1.1.1:
> 
> /* $XORP: xorp/rtrmgr/config/ospfv2.boot,v 1.1 2007/08/29 06:49:43 
> pavlin Exp $ */
> 
> interfaces {
> 
>     interface eth0 {
>         disable: false
>         discard: false
>         vif eth0 {
>             disable: false
>     	    address 20.1.1.1 {
>                 prefix-length: 24
>                 broadcast: 20.1.1.255
>                 disable: false
>     	    }
>     	}
>     }
> 
> 
>     interface eth1 {
>         disable: false
>         discard: false
>         vif eth1 {
>             disable: false
>     	    address 30.1.1.1 {
>                 prefix-length: 24
>                 broadcast: 30.1.1.255
>                 disable: false
>     	    }
>     	}
>     }
>     
> }
> 
> fea {
>     unicast-forwarding4 {
>     disable: false
>     }
> }
> 
> 
> /*
> plumbing{
> 	mfea4{
> 		disable: true
> 	}
> 	mfea6{
> 		disable: true
> 	}
> }
> */
> 
> 
> protocols {
> 
>     ospf4 {
> 	router-id: 30.1.1.1
> 	area 0.0.0.0 {
>               interface eth0 {
> 		link-type: "broadcast"
> 		vif eth0 {
> 		     address 20.1.1.1 {
> 	             disable: false
> 		    }
> 		}
> 	    }
> 
> 	    interface eth1 {
> 		link-type: "broadcast"
> 		vif eth1 {
> 		     address 30.1.1.1 {
> 			 disable: false
> 		    }
> 		}
> 	    }
>         
> 	}
>     
> 
> 	traceoptions {
> 	    flag {
> 		all {
> 		    disable: false
> 		}
> 	    }
> 	}
>     }
> }
> /////////////////////////////////////////////////////////////
> 
> 
> I have also tried the script way, but failed either. The xorp_fea does 
> be invoked by the remote xorp_rtrmgr,but exit after about 20 seconds.
> 
> I saved the following script as file xorp_fea and replaced the one at 
> xorp-1.5/fea/, and made sure that the fea.tp stay unchanged.
> 
> #!/bin/sh
> #
> ssh 20.1.1.2 env XORP_FINDER_SERVER_ADDRESS=20.1.1.1
> XORP_FINDER_CLIENT_ADDRESS=20.1.1.2 /home/Martin/xorp-1.5/fea/xorp_fea
> 
> 
> 
> 
> -----Original Message-----
> From: Pavlin Radoslavov [mailto:pavlin at ICSI.Berkeley.EDU]
> Sent: Thursday, September 11, 2008 1:07 AM
> To: Mingcy.Xu
> Cc: Xorp-Users
> Subject: Re: [Xorp-users] How to notify the OSPF process to use FEA on 
> a different machine?
> 
> Mingcy.Xu <mingcy.xu at gmail.com> wrote:
> 
> > Hi,
> >  
> > As described in the FEA document, the forwarding plane may be 
> > distributed across multiple machines. So it must be possible to run 
> > the OSFP process on one machine with its FEA disabled, and to run 
> > its associated FEA on another machine.
> >  
> > But how to configure this? How to write the configuration file? It 
> > seems that no XORP documents have covered this. Anybody can help me?
> 
> You configure XORP as usual, and you need to do a bit of extra work to 
> start the FEA on a remote machine.
> 
> Please see the following email for details:
> http://mailman.icsi.berkeley.edu/pipermail/xorp-users/2007-October/002
> 134.ht
> ml
> 
> Note that the example in that email is how to run static_routes on a 
> remote machine, but the solution is basically same for running the 
> FEA. A small clarification re. the instructions: the sample script 
> that is at the end of the above email should be named fea/xorp_fea, 
> and the real xorp_fea binary should be placed on the remote host.
> 
> Please let us know how it goes.
> 
> Pavlin



More information about the Xorp-users mailing list