Hello all, i'm writing hear because i have a problem with some simulation that i'm making, the simulation is on my laptop with VM. I'm focusing on the hold timer expiration, i want to make this timer expire and see the differences. This is my topology: H1---H2----H3----H4----H5 H1 and H5 are the only one that share some route, i'll call them R1 and R2. So when the network it will be stabilized, in all RT (H1,H2,H3,H4,H5) I will have 2 voice, one to reach R1 and one to reach R2. In every host i setted an hold timer = 3 for every session, with this command: hold time 3; Now i want to "kill" the node H3 and see this result: after 3 seconds see in the RT of H2 and H4 a variation, like one cannot more reach R1 and the other one cannot reach R2. How can i do it? i need to disable something? because i tried this: 1)using the command: birdc -s socket_H3 down and shutting down the VM i see that the process that is shutted down, but the other simulation changed immediatly the RT so i tried: 2)use only the command birdc -s socket_H3 down and get active the VM i was thing that there was a checking on the interface if it is active or not. But it didn't work, the RT of others changed istantly. 3) so i was thinking that before closing itself bird send a signal to other bird connected (i didn't search in the code) so i use the command "sudo kill -9 *pid*" on the pid of the bird relative to H3, but with a big surprised i see that not only the process associated with H3 is killed but it will be closed the process of H2 H3 and H4 i'll try to explain it better: Process list: 100 Bird_H1 101 Bird_H2 102 Bird_H3 103 Bird_H4 104 Bird_H5 i use "sudo kill -9 102" process list resulting: 100 Bird_H1 104 Bird_H5 The survives is only the process that was sharing some route. do you have any suggestion to see the expiration of hold timer in act? Thanks a lot, Mattia
On May 17, 2018 12:56:22 PM GMT+02:00, Mattia Milani <mattia.milani@studenti.unitn.it> wrote:
Hello all, i'm writing hear because i have a problem with some simulation that i'm making, the simulation is on my laptop with VM. I'm focusing on the hold timer expiration, i want to make this timer expire and see the differences.
This is my topology:
H1---H2----H3----H4----H5
H1 and H5 are the only one that share some route, i'll call them R1 and R2.
So when the network it will be stabilized, in all RT (H1,H2,H3,H4,H5) I will have 2 voice, one to reach R1 and one to reach R2.
In every host i setted an hold timer = 3 for every session, with this command:
hold time 3;
Now i want to "kill" the node H3 and see this result: after 3 seconds see in the RT of H2 and H4 a variation, like one cannot more reach R1 and the other one cannot reach R2.
How can i do it? i need to disable something?
because i tried this:
1)using the command: birdc -s socket_H3 down and shutting down the VM i see that the process that is shutted down, but the other simulation changed immediatly the RT
so i tried: 2)use only the command birdc -s socket_H3 down and get active the VM i was thing that there was a checking on the interface if it is active or not. But it didn't work, the RT of others changed istantly.
3) so i was thinking that before closing itself bird send a signal to other bird connected (i didn't search in the code) so i use the command "sudo kill -9 *pid*" on the pid of the bird relative to H3, but with a big surprised i see that not only the process associated with H3 is killed but it will be closed the process of H2 H3 and H4
i'll try to explain it better:
Process list: 100 Bird_H1 101 Bird_H2 102 Bird_H3 103 Bird_H4 104 Bird_H5
i use "sudo kill -9 102"
process list resulting: 100 Bird_H1 104 Bird_H5
The survives is only the process that was sharing some route.
do you have any suggestion to see the expiration of hold timer in act?
Thanks a lot, Mattia
-- Sent from my Android device with K-9 Mail. Please excuse my brevity.
3) so i was thinking that before closing itself bird send a signal to other bird connected (i didn't search in the code) so i use the command "sudo kill -9 *pid*" on the pid of the bird relative to H3, but with a big surprised i see that not only the process associated with H3 is killed but it will be closed the process of H2 H3 and H4
Have you looked into the logs? There should be written why these processes are also down. Or you should somewhere collect their status to see whether they ended correctly or failed somehow. Maria
Have you looked into the logs? There should be written why these processes are also down. Or you should somewhere collect their status to see whether they ended correctly or failed somehow.
Maria
yeah, i had looked into the logs but I diddn't see anything strange, here is the last part of the logs, i'm using the command "log filetolog.log all;" Log of H3, the one that i killed with kill -9: 2018-05-17 14:03:50.710 <TRACE> h3_3_h4_4: Got KEEPALIVE 2018-05-17 14:03:50.972 <TRACE> h3_3_h2_2: Sending KEEPALIVE 2018-05-17 14:03:51.178 <TRACE> h3_3_h2_2: Got KEEPALIVE 2018-05-17 14:03:51.517 <TRACE> h3_3_h4_4: Sending KEEPALIVE 2018-05-17 14:03:51.533 <TRACE> device1: Scanning interfaces 2018-05-17 14:03:51.534 <TRACE> h3_3_h4_4: Got KEEPALIVE -----here the log is brusquely interruptet by the kill ------- here is the log of H2 (with htop i see that the process is interruptet with the process of H3): 2018-05-17 14:03:51.290 <TRACE> h2_2_h1_1: Got KEEPALIVE 2018-05-17 14:03:51.535 <TRACE> device1: Scanning interfaces 2018-05-17 14:03:51.608 <TRACE> h2_2_h3_3: Connection closed 2018-05-17 14:03:51.608 <TRACE> h2_2_h3_3: BGP session closed 2018-05-17 14:03:51.608 <TRACE> h2_2_h3_3: State changed to stop 2018-05-17 14:03:51.608 <TRACE> h2_2_h3_3 > removed [sole] 100.1.2.0/24 unicast 2018-05-17 14:03:51.608 <TRACE> kernel1 < removed 100.1.2.0/24 unicast 2018-05-17 14:03:51.608 <TRACE> h2_2_h1_1 < removed 100.1.2.0/24 unicast here the log of H4: 2018-05-17 14:14:53.662 <TRACE> device1: Scanning interfaces 2018-05-17 14:14:53.732 <TRACE> h4_4_h3_3: Connection closed 2018-05-17 14:14:53.732 <TRACE> h4_4_h3_3: BGP session closed 2018-05-17 14:14:53.732 <TRACE> h4_4_h3_3: State changed to stop 2018-05-17 14:14:53.733 <TRACE> h4_4_h3_3 > removed [sole] 100.1.1.0/24 unicast 2018-05-17 14:14:53.733 <TRACE> kernel1 < removed 100.1.1.0/24 unicast 2018-05-17 14:14:53.733 <TRACE> h4_4_h5_5 < removed 100.1.1.0/24 unicast all the log is brusquely interruptet, and i don't know why. and after this...do you know if there is in bird some check in the interface if it is already on? so if i disable the interface beetween the host could i reach the result that i want? thanks, Mattia
all the log is brusquely interruptet, and i don't know why.
They may also have crashed (which would be bad). Try running the Birds in debug mode (don't remember the flag, see bird --help) and collecting their exit value.
and after this...do you know if there is in bird some check in the interface if it is already on? so if i disable the interface beetween the host could i reach the result that i want?
Yes. Try it. Maria -- Sent from my Android device with K-9 Mail. Please excuse my brevity.
They may also have crashed (which would be bad). Try running the Birds in debug mode (don't remember the flag, see bird --help) and collecting their exit value.
I used the command bird -c *confFile* -s *socketFile* -D *debugFile* in the conf file I inserted: debug protocols all; debug commands 2; but i didn't see anything in the debug file i setted, (i need to recompile bird with some option?)
Yes. Try it.
now i'm trying this Mattia
making ifconfig eth* down in the interface of H3, on H2 and H4 it relevated this in the log: 2018-05-17 16:26:38.462 <TRACE> kernel1 < interface h1_1-eth2 changes link 2018-05-17 16:26:38.462 <TRACE> direct1 < interface h1_1-eth2 changes link 2018-05-17 16:26:38.462 <TRACE> h2_2_h3_3: Link down 2018-05-17 16:26:38.462 <TRACE> h2_2_h3_3: State changed to stop 2018-05-17 16:26:38.462 <TRACE> h2_2_h3_3: BGP session closed 2018-05-17 16:26:38.462 <TRACE> h2_2_h3_3 > removed [sole] 100.1.2.0/24 unicast 2018-05-17 16:26:38.462 <TRACE> kernel1 < removed 100.1.2.0/24 unicast 2018-05-17 16:26:38.462 <TRACE> h2_2_h1_1 < removed 100.1.2.0/24 unicast 2018-05-17 16:26:38.462 <TRACE> h2_2_h3_3: Sending NOTIFICATION(code=6.0) 2018-05-17 16:26:38.463 <TRACE> h2_2_h1_1: Sending UPDATE 2018-05-17 16:26:38.463 <TRACE> h2_2_h3_3: Down it learn istantly that the link now is down, how can i do this without losing the link? Mattia 2018-05-17 15:58 GMT+02:00 Mattia Milani <mattia.milani@studenti.unitn.it>:
They may also have crashed (which would be bad). Try running the Birds in
debug mode (don't remember the flag, see bird --help) and collecting their exit value.
I used the command bird -c *confFile* -s *socketFile* -D *debugFile* in the conf file I inserted:
debug protocols all; debug commands 2;
but i didn't see anything in the debug file i setted, (i need to recompile bird with some option?)
Yes. Try it.
now i'm trying this
Mattia
On May 17, 2018 4:31:18 PM GMT+02:00, Mattia Milani <mattia.milani@studenti.unitn.it> wrote:
making ifconfig eth* down in the interface of H3, on H2 and H4 it relevated this in the log:
2018-05-17 16:26:38.462 <TRACE> kernel1 < interface h1_1-eth2 changes link 2018-05-17 16:26:38.462 <TRACE> direct1 < interface h1_1-eth2 changes link 2018-05-17 16:26:38.462 <TRACE> h2_2_h3_3: Link down 2018-05-17 16:26:38.462 <TRACE> h2_2_h3_3: State changed to stop 2018-05-17 16:26:38.462 <TRACE> h2_2_h3_3: BGP session closed 2018-05-17 16:26:38.462 <TRACE> h2_2_h3_3 > removed [sole] 100.1.2.0/24 unicast 2018-05-17 16:26:38.462 <TRACE> kernel1 < removed 100.1.2.0/24 unicast 2018-05-17 16:26:38.462 <TRACE> h2_2_h1_1 < removed 100.1.2.0/24 unicast 2018-05-17 16:26:38.462 <TRACE> h2_2_h3_3: Sending NOTIFICATION(code=6.0) 2018-05-17 16:26:38.463 <TRACE> h2_2_h1_1: Sending UPDATE 2018-05-17 16:26:38.463 <TRACE> h2_2_h3_3: Down
it learn istantly that the link now is down, how can i do this without losing the link?
The same way as making any other tcp session disconnect immediately. You may try iptables or dropping the link in your virtual hypervisor or whatever else is applicable to your config. Maria
The same way as making any other tcp session disconnect immediately. You
may try iptables or dropping the link in your virtual hypervisor or whatever else is applicable to your config.
Maria
i've used the "tc" command to insert a delay/loss rate on the interface so now it works. for the problem of the process i can't use "echo $?" and see the exit code for my development envirorment, but with the use of "tc" i didn't need to kill the node. Now i'm trying to use coredump to send you some feedback
On May 17, 2018 3:58:43 PM GMT+02:00, Mattia Milani <mattia.milani@studenti.unitn.it> wrote:
They may also have crashed (which would be bad). Try running the Birds in debug mode (don't remember the flag, see bird --help) and collecting their exit value.
I used the command bird -c *confFile* -s *socketFile* -D *debugFile* in the conf file I inserted:
debug protocols all; debug commands 2;
but i didn't see anything in the debug file i setted, (i need to recompile bird with some option?)
Yes, it is needed to reconfigure BIRD with --enable-debug. But it is probably an overkill. Maybe my previous hint was misleading. Try running BIRD in no-fork mode and collect its exit value. It will tell you how it stopped. You can also enable coredumps to see whether there is some corpse left after unexpected death of BIRD. Maria
participants (2)
-
Maria Jan Matějka -
Mattia Milani