Archive for January, 2016

un piccolo recap

January 31st, 2016 | Category: tmrc

sull’ospf

nssa-stub

r-sopra#sh run
Building configuration...
..
..
interface Ethernet0/0
ip address 192.168.106.4 255.255.255.192
full-duplex
!
interface Serial1/0
ip address 172.21.4.2 255.255.255.252
no fair-queue
..
..
router ospf 1
router-id 10.106.110.4
log-adjacency-changes
network 172.21.4.0 0.0.0.3 area 1
network 192.168.106.0 0.0.0.63 area 0

r-sotto#sh run
Building configuration...
..
..
interface Serial1/0
ip address 172.21.4.1 255.255.255.252
clock rate 115200
!
..
..
!
router ospf 1
router-id 172.21.4.1
log-adjacency-changes
network 172.21.4.0 0.0.0.3 area 1
!

in questo modo, r-sotto si becca la rotta 192.168.106.0/26 (inter-area):

r-sotto#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

192.168.106.0/26 is subnetted, 1 subnets
O IA 192.168.106.0 [110/791] via 172.21.4.2, 00:08:54, Serial1/0
172.21.0.0/30 is subnetted, 1 subnets
C 172.21.4.0 is directly connected, Serial1/0

se configuro l’area 1 stub, viene generata automaticamente la rotta di default:

r-sopra(config)#router ospf 1
r-sopra(config-router)#area 1 stu
r-sopra(config-router)#area 1 stub
r-sopra(config-router)#

r-sotto(config)#router ospf 1
r-sotto(config-router)#area 1 stu
r-sotto(config-router)#area 1 stub
r-sotto(config-router)#^Z
r-sotto#

r-sotto#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route

Gateway of last resort is 172.21.4.2 to network 0.0.0.0

192.168.106.0/26 is subnetted, 1 subnets
O IA 192.168.106.0 [110/791] via 172.21.4.2, 00:00:00, Serial1/0
172.21.0.0/30 is subnetted, 1 subnets
C 172.21.4.0 is directly connected, Serial1/0
O*IA 0.0.0.0/0 [110/782] via 172.21.4.2, 00:00:00, Serial1/0

se invece configuro l’area come NSSA, la rotta di default non viene automaticamente injectata:

r-sopra(config-router)#no area 1 stub
r-sopra(config-router)#ara 1
*Mar 1 00:53:07.873: %OSPF-5-ADJCHG: Process 1, Nbr 172.21.4.1 on Serial1/0 from FULL to DOWN, Neighbor Down: Adjacency forced to
r-sopra(config-router)#
r-sopra(config-router)#area 1 ns
r-sopra(config-router)#area 1 nssa
r-sopra(config-router)#

r-sotto(config-router)#no area 1 stub
r-sotto(config-router)#area 1 nssa
r-sotto(config-router)#

r-sotto#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

192.168.106.0/26 is subnetted, 1 subnets
O IA 192.168.106.0 [110/791] via 172.21.4.2, 00:00:13, Serial1/0
172.21.0.0/30 is subnetted, 1 subnets
C 172.21.4.0 is directly connected, Serial1/0
r-sotto#

due scelte: o si fa (sempre sull’ABR) area 1 nssa no-summary:

r-sopra(config-router)#area 1 nssa no-summary
r-sopra(config-router)#

e viene generata una rotta di default inter-area:

r-sotto#
*Mar 1 00:54:01.661: %SYS-5-CONFIG_I: Configured from console by console
r-sotto#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route

Gateway of last resort is 172.21.4.2 to network 0.0.0.0

172.21.0.0/30 is subnetted, 1 subnets
C 172.21.4.0 is directly connected, Serial1/0
O*IA 0.0.0.0/0 [110/782] via 172.21.4.2, 00:00:19, Serial1/0

r-sotto#sh ip ospf database

OSPF Router with ID (172.21.4.1) (Process ID 1)

Router Link States (Area 1)

Link ID ADV Router Age Seq# Checksum Link count
10.106.110.4 10.106.110.4 109 0x80000011 0x005973 2
172.21.4.1 172.21.4.1 109 0x80000010 0x00B43D 2

Summary Net Link States (Area 1)

Link ID ADV Router Age Seq# Checksum
0.0.0.0 10.106.110.4 48 0x80000001 0x006EE0

oppure si fa area 1 nssa default-information-originate, e si genera una LSA di tipo 7, rotta esterna:

r-sotto#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route

Gateway of last resort is 172.21.4.2 to network 0.0.0.0

192.168.106.0/26 is subnetted, 1 subnets
O IA 192.168.106.0 [110/791] via 172.21.4.2, 00:00:27, Serial1/0
172.21.0.0/30 is subnetted, 1 subnets
C 172.21.4.0 is directly connected, Serial1/0
O*N2 0.0.0.0/0 [110/1] via 172.21.4.2, 00:00:22, Serial1/0

r-sotto#sh ip ospf database

OSPF Router with ID (172.21.4.1) (Process ID 1)

Router Link States (Area 1)

Link ID ADV Router Age Seq# Checksum Link count
10.106.110.4 10.106.110.4 195 0x80000011 0x005973 2
172.21.4.1 172.21.4.1 195 0x80000010 0x00B43D 2

Summary Net Link States (Area 1)

Link ID ADV Router Age Seq# Checksum
192.168.106.0 10.106.110.4 39 0x80000001 0x0009A8

Type-7 AS External Link States (Area 1)

Link ID ADV Router Age Seq# Checksum Tag
0.0.0.0 10.106.110.4 35 0x80000001 0x00FA08 0

No comments

totally 2016

January 29th, 2016 | Category: musica,tmrc,un'incontenibile voglia di esprimersi

l’anno in cui vai in un locale dove si fanno le jam session, convinto di suonare la chitarra, e invece ti ritrovi dopo secoli a suonare la batteria

credo di essere totalmente afflitto dalla sindrome dell’eterno studente.

mi piace studiare, mi piace evadere coi pensieri.

ma adesso, rispetto al passato, mi sforzo di dare un senso pratico a quello che studio.

per questo ieri ho chiesto a Vinz di farmi “ruotare” qualcosa 🙂

ascensori

grande incertezza, grande indecisione prima di fare “click” col mouse, ma poi ci ripensi e ti convinci che non può non funzionare (*), almeno se è vero che quella cosa la sai abbastanza da prevederne le conseguenze.

(*) si parla sempre di cose che se fai qualche cazzata, qualcuno deve prendere il doblò e farsi KM per raggiungere l’apparato 😀

No comments

vett (updated)

January 28th, 2016 | Category: tmrc

OK, non uscirò più di casa fin quando qualcuno non mi spiega questo:

#include <stdio.h>
main()
{
int n, i, vetta[n], vettb[n], vettc[n];
printf("Immetti la lunghezza dei vettori: ");
scanf("%d", &n);

// immssione valori vettore A e B
for (i=0; i<n; i++) {
printf("Immetti il valore del vettore A posizione [%d]: ", i);
scanf("%d", &vetta[i]);
printf("Immetti il valore del vettore B posizione [%d]: ", i);
scanf("%d", &vettb[i]);
}

// stampa vettore A
for (i=0; i<n; i++)
printf("vetta[%d]=%d ", i, vetta[i]);
printf("\n");
// stampa vettore B
for (i=0; i<n; i++)
printf("vettb[%d]=%d ", i, vettb[i]);
printf("\n");
}

 

stesso codice, compilato su due Linux diversi, risultato A:

sugo@vm:~/c$ ./esercizio7.1
Immetti la lunghezza dei vettori: 5
Immetti il valore del vettore A posizione [0]: 0
Immetti il valore del vettore B posizione [0]: 1
Immetti il valore del vettore A posizione [1]: 2
Immetti il valore del vettore B posizione [1]: 3
Immetti il valore del vettore A posizione [2]: 4
Immetti il valore del vettore B posizione [2]: 5
Immetti il valore del vettore A posizione [3]: 6
Immetti il valore del vettore B posizione [3]: 7
Immetti il valore del vettore A posizione [4]: 8
Immetti il valore del vettore B posizione [4]: 9
vetta[0]=9 vetta[1]=2 vetta[2]=4 vetta[3]=6 vetta[4]=8
vettb[0]=1 vettb[1]=3 vettb[2]=5 vettb[3]=7 vettb[4]=9

 

risultato B:

 

*siberia /home/sugo:==> ./es
Immetti la lunghezza dei vettori: 5
Immetti il valore del vettore A posizione [0]: 0
Immetti il valore del vettore B posizione [0]: 1
Immetti il valore del vettore A posizione [1]: 2
Immetti il valore del vettore B posizione [1]: 3
Immetti il valore del vettore A posizione [2]: 4
Immetti il valore del vettore B posizione [2]: 5
Immetti il valore del vettore A posizione [3]: 6
Immetti il valore del vettore B posizione [3]: 7
Immetti il valore del vettore A posizione [4]: 8
Immetti il valore del vettore B posizione [4]: 9
vetta[0]=0 vetta[1]=2 vetta[2]=4 vetta[3]=6 vetta[4]=8
vettb[0]=1 vettb[1]=3 vettb[2]=5 vettb[3]=7 vettb[4]=9

 

perché nel primo caso (risultato A) vetta[0] = 9?
da capire :))

 

————

credo di aver capito.

forse il problema è nella dichiarazione dei vettori. se al posto di:

int n, i, vetta[n], vettb[n], vettc[n];

metto:

int n, i, vetta[10], vettb[10], vettc[10];

 

funziona come ci si aspetta.

 

per una sessione di debug carina vedere qui 🙂

No comments

la morte nera.

January 13th, 2016 | Category: vita

madonna che palle.

se c’è una cosa che odio profondamente è.. perdere tempo

sprecare il tempo

annoiarmi

essere in un luogo dove non si vuole stare

essere passivi

per disperazione ho dovuto trovare qualcosa con cui impegnare la mente

ho provato a memorizzare le etichette dei vini

dall’alto, da sinistra verso destra:

  1. cataldi madonna
  2. cabernet
  3. marina cvetic
  4. masciarelli
  5. montepulciano d’abruzzo
  6. vermiglio
  7. regaleali

sì, dovrebbe essere corretto.

 

1 comment

:fail:

January 06th, 2016 | Category: tmrc

mi sono stufato di non capire un cazzo di determinate cose.
così mi sono prefissato, per questo 2016, di arrivare almeno fino alla fine di Linguaggio C.
ovviamente sono ripartito da zero.

al capitolo 4 sono spiegati i cicli, if annidati, e tutte ‘ste storie qua.
a fine capitolo ci sono gli esercizi, che ovviamente ho fatto.

il primo diceva di

1) fare un programma che trovasse il maggiore tra 3 numeri.
poi

2) uno che trovasse il maggiore tra 4 numeri.
3) poi uno che contemplasse anche il caso in cui i numeri fossero tutti identici
4) poi diceva: adesso ripeti l’esercizio 2, ma devi trovare anche il minore.

allora mi sono messo a farlo (su carta), mi veniva incredibilmente lungo e pensavo “mah, chissà.. mo vado a vedere a fine libro e lo trovo fatto con 10 righe”.
anche perché la soluzione (che avevo visto con la coda dell’occhio a fine libro) mi sembrava molto corta.

alla fine l’ho fatto.

ho visto la soluzione e… ho capito che, come spesso mi capita, avevo sbagliato a leggere (o letto frettolosamente….)
l’esercizio diceva “ripeti l’esercizio n.1 (non n.2!), e trova il maggiore il minore tra TRE numeri (non QUATTRO!)”

20160106_131207

cmq funziona 🙂

No comments

Goodbye Supernova

January 06th, 2016 | Category: musica

httpv://www.youtube.com/watch?v=Dug-YEIvoe8

mi ha sempre colpito lo stile di Satriani, a modo suo semplice
ho sempre immaginato che volendo in 5 minuti uno si poteva imparare i suoi pezzi e risuonarli

1 comment

Debra

January 01st, 2016 | Category: ricordi,tmrc,vita

ciao

cddebian
questi sono i miei primi 2 cd di debian..
chissa’, forse all’epoca non esisteva la netinstall 🙂

debian 3.0r2 credo.
fu un suggerimento dello Smilzo
il mio primo server era “katy”
perche’… mm , credo di averlo gia’ raccontato qui nel blog il perche’..

ho passato un sacco di guai perche’ dovevo ricompilare il kernel
oggi praticamente non si fa piu’ 🙂
ma all’epoca.. dovevo farlo per forza per far funzionare il modem (alcatel speedtouch usb)

lo compilavo e ogni volta NON bootava..
alla fine smilzo mi diede una mano in chat, su irc

praticamente io lanciavo il make menuconfig, e poi gli facevo copia/incolla
di tutto quello che c’era nel menu
e lui mi diceva cosa spuntare
mi ricordo che scrisse “arriviamo almeno a fare un kernel che SI AVVII

addio, Ian.
continuero’ a voler bene alla distribuzione che tu hai creato
:*****

No comments