[Netkit.users] problem when simulating link/node down on Netkit

Massimo Rimondini rimondin a dia.uniroma3.it
Dom 8 Lug 2007 23:05:13 CEST

Hi all,

and apologies for the delay.

I'm afraid I cannot be of much help in solving the issue you are reporting,
as I don't have enough experience of quagga working in such setting.

As for the matter of bringing a link down, the only effective way is
actually via ifconfig. In fact:
- There is no physical medium transporting signals, therefore virtual
machines cannot "sense a carrier", and the breakage must be performed by
resorting to software artifacts. 
- If a virtual hub is killed, there is no chance to bring it up again
without killing the virtual machines that were using it, because data
exchange between the hub and a UML kernel takes place on a dedicated
protocol that has to be reinitialized.
- Virtual network interfaces are actually connected to the virtual hub.
Therefore, killing a virtual machine that is "on the other side" of a
"virtual medium" does not trigger any event on the other machines on the
same collision domain, as the event is shielded by the hub.
- Zebra/Quagga can correctly sense (as it should) interfaces being brought

Last, if you are interested replacing hubs with switches, this can be done
in Netkit in two ways:
- by turning a virtual machine into a switch by means of brctl;
- by launching the uml_switch userspace tool without the -hub option. The
syntax to invoke uml_switch is displayed by vstart every time a virtual
machine attached to a new collision domain is started. However, adopting
this solution means losing the ability to use vstart or lstart.



	From: netkit.users-bounces a list.dia.uniroma3.it
[mailto:netkit.users-bounces a list.dia.uniroma3.it] On Behalf Of Julien
	Sent: Wednesday, June 27, 2007 11:57 PM
	To: Users of the Netkit Network Emulation System
	Subject: Re: [Netkit.users] problem when simulating link/node down
on Netkit
	Please, see my answer inline,
	On 6/27/07, Xu Yao < yaox06 a gmail.com <mailto:yaox06 a gmail.com> >

		I am currently using netkit to emulate a lab about MPLS and
LDP. I have compiled a new kernel, updated the filesystem, installed an
MPLS-and-LDP-enabled quagga and executed some basic scenarios.

	I think you are using mpls-linux and ldp-portable!  I did the same,
I will explain few things that might have impact on your research. By the
way, is the mpls4 module loaded? In other words, is your kernel MPLS
enabled? Have you convert the rpm to deb or have you compiled everything
from source code? 

		Everything worked fine until I tried to simulate a link/node
down event. I used the command "ifconfig ethx down" and I noticed that the
zebra process on some of the machines died silently without leaving any log

	I had the similar problem with ldpd (LDP daemon from quagga-mpls),
it was when I configured (by vtysh) the daemon and the interface was
connected to the same collision domain than two others machines. So, for one
interface, ldpd has two next hop. This is explained by the fact that a
collision domain is like a (virtual) hub, every packet sent to this c.d.
will be received by every other machines connected to that c.d.
	The thing is sometimes it works, sometimes it doesn't (ldpd crashed)
but when it crashed, I never managed to restart it. In other words, when I
configured all the virtual machines in a specific order, I didn't have the
same "result" (ldpd crashed or it doesn't). I didn't find out what was the
exact cause but I think if the virtual hub were virtual switches, this
problem would be solved. If your problem is coming from the Zebra daemon,
make sure you have uninstalled the old zebra package. Like this you may
avoid conflicts. 

		I would like to know if anyone has encoutered similar
behavior before and what can be done to prevent that from happening. Also,
is there a better way to simulate such an event on Netkit?

	FYI, If you want to simulate a node down event, you'd rather use the
vcrash command. 
	If you want to simulate a link down event, I hope Massimo can help
you out on this because I have no other idea than the "ifconfig ethX down"


	By the way, I think it may be a good idea to post this thread to the
mpls-devel malling list.
	I hope it helps,

		Netkit.users mailing list
		Netkit.users a list.dia.uniroma3.it 

	Julien BISCONTI <julien.bisconti(at)student.fundp.ac.be>
	M.Sc. student in Computer Science, University of Namur
	FUNDP, Belgium 

Maggiori informazioni sulla lista Netkit.users