недеља, 21. фебруар 2010.

Nenad Stojkov design

Dizajn web prezentacije slikara Nenada Stojkova, koja jos nije postavljena online (bice uskoro).




IT Solutions design

Dizajn web prezentacije firme "IT Solutions", uzivo mozete pogledati na adresi www.it-solutions.rs


уторак, 9. фебруар 2010.

OSP - Resources

#################################################################################
KLASA ResourceCB
#################################################################################

package osp.Resources;

import java.util.*;

import osp.IFLModules.*;
import osp.Tasks.*;
import osp.Threads.*;
import osp.Utilities.*;
import osp.Memory.*;

/**
* @author Mihajlo
*
*/

@SuppressWarnings("unused")
public class ResourceCB extends IflResourceCB
{
// Lista heš tabela, gde se u svakoj pojedinačnoj heš tabeli čuvaju informacije
// o zahtevima svih niti za nekim resursom.
private static List zahtevaniBlokovi;
private static Set Tredovi;
private static HashMap[] alokacionaLista;
private static HashMap[] Maximum;

public ResourceCB(int qty)
{
// Pozovite super(), a ostalo ako imate potrebu nešto da inicijalizujete u vašoj implementaciji
super(qty);
}

// metod za osvezavanje liste
private static void osvezavanjeListe(ThreadCB thread, int quantity, int resourceID) {

if (alokacionaLista[resourceID].containsKey(thread)) {
alokacionaLista[resourceID].put(thread, alokacionaLista[resourceID].get(thread) + quantity);
} else {
alokacionaLista[resourceID].put(thread, quantity);
}
}

@SuppressWarnings("unchecked")
public static void init()
{
// Kao i ranije, možete koristiti ovaj metod da inicijalizujete neke statičke promenljive
// koje bi vam možda zatrebale.
zahtevaniBlokovi = new ArrayList();
Tredovi = new HashSet();
Maximum = new HashMap[ResourceTable.getSize()];
alokacionaLista = new HashMap[ResourceTable.getSize()];

int size = ResourceTable.getSize();

for (int i=0; i < size; i++)
{
Maximum[i] = new HashMap();
alokacionaLista[i] = new HashMap();
}
}

public RRB do_acquire(int quantity)
{
// Da bi utvrdili koji proces je zahtevalo resurse, koristimo se PTBRom.
// Konkretnije koristimo metode getPTBR() i nad dobijenim objektom pozivamo metodu getTask().
ThreadCB tred = MMU.getPTBR().getTask().getCurrentThread();

// inicijalizacija
int deadlockMetod = getDeadlockMethod();
int slobodniResursi = getAvailable();
int ukupniResursi = getTotal();

// ako se zahtevani broj resursa ne može dodeliti ni pod kojim uslovom,
// npr ne postoji ih toliko u sistemu, zahtev se odbija, odnosno metoda vraća null
if ((quantity > ukupniResursi) || ((getAllocated(tred) + quantity) > ukupniResursi))
return null;

// dodajem tred
Tredovi.add(tred);

// menjam maximum mapu
Maximum[getID()].put(tred, getMaxClaim(tred));


// u suprotnom, možda u budućnosti će nit moći da bude opslužena, tako da se mora suspendovati.
if ((quantity > slobodniResursi) && (quantity < ukupniResursi))
{
// inicijalizacija novog resurs bloka
RRB noviResursBlok = new RRB(tred, this, quantity);
zahtevaniBlokovi.add(noviResursBlok);

// Zahtevu se status postavlja na Suspended metodom setStatus(),
// a nit se suspenduje metodom suspend()
// i prosleđuje se napravljeni RRB objekat
noviResursBlok.setStatus(Suspended);
tred.suspend(noviResursBlok);

return noviResursBlok;
}

// ispitujemo vrste deadlock metoda

// Kada god je moguće zahtevi za resursima se opslužuju bez dodatnog ispitivanja.
// Povremeno, OS izvršava metodu koja proverava da li postoji deadlock u sistemu.
// Ako postoji moguće je ubiti sve procese, ubijati procese koji učestvuju u deadlocku
// sve dok se deadlock ne otkloni, osloboditi resurse uključene u deadlock, itd.

if (deadlockMetod == Detection)
{
RRB noviResursBlok = new RRB(tred, this, quantity);

zahtevaniBlokovi.add(noviResursBlok);
noviResursBlok.grant();

// osvezavam liste
osvezavanjeListe(tred, quantity, noviResursBlok.getResource().getID());

// vracam noviResursBlok
return noviResursBlok;
}

// Deadlock izbegavanje
// U trenutku zahtevanja resurasa se odlučuje da li će se oni i dodeliti.
// Brine se o tome da li će dodela resursa ostaviti sistem u sigurnom stanju.
// Sigurno stanje je stanje u kom se mogu izvršiti svi procesi nekim redom, bez pojave deadlocka.

// Ako se koristi deadlock izbegavanje,
// onda ovde morate implementirati neki od  odgovarajućih algoritama
else if (deadlockMetod == Avoidance)
{
// Implementiram Banker's Algorithm.
// Ako pomoću algoritma zaključite da je sigurno dodeliti resurse,
// onda to i uradite u suprotnom se nit suspenduje i status zahteva se postavlja na Suspended.
// Metoda na kraju vraća napravljeni RRB objekat.

ThreadCB tredovi[] = Tredovi.toArray(new ThreadCB[0]);
int[][] maksimum = new int[Tredovi.size()][ResourceTable.getSize()];
int[][] alokacija = new int[Tredovi.size()][ResourceTable.getSize()];
int[][] potrebni = new int[Tredovi.size()][ResourceTable.getSize()];
int[] dostupni = new int[ResourceTable.getSize()];

int size = ResourceTable.getSize();

for (int i = 0; i < size; i++)
{
dostupni[i] = ResourceTable.getResourceCB(i).getAvailable();
for (int j = 0; j < Tredovi.size(); j++)
{
if (Maximum[i].containsKey(tredovi[j]))
maksimum[j][i] = Maximum[i].get(tredovi[j]);
else
maksimum[j][i] = 0;

if (alokacionaLista[i].containsKey(tredovi[j]))
alokacija[j][i] = alokacionaLista[i].get(tredovi[j]);
else
alokacija[j][i] = 0;

potrebni[j][i] = maksimum[j][i] - alokacija[j][i];
}
}

int p = ResourceTable.getSize();
int q = Tredovi.size();

int[] radni = Arrays.copyOf(dostupni, p);
int[] kraj = new int[q];

for (int i = 0; i < kraj.length; i++)
{
if (kraj[i] == 0)
for (int j = 0; j < p; j++)
if (potrebni[i][j] <= radni[j])
{
radni[j] += alokacija[i][j];
kraj[i] = 1;
}
}

// u suprotnom se nit suspenduje i status zahteva se postavlja na Suspended
int duzina = kraj.length;
for (int i = 0; i < duzina; i++)
if (kraj[i] == 0)
{
RRB noviResursBlok = new RRB(tred, this, quantity);
zahtevaniBlokovi.add(noviResursBlok);

// suspendovanje treda
tred.suspend(noviResursBlok);

// suspendovanje statusa zahteva
noviResursBlok.setStatus(Suspended);

return noviResursBlok;
}

// Ako pomoću algoritma zaključite da je sigurno dodeliti resurse,
// onda to i uradite
RRB noviResursBlok = new RRB(tred, this, quantity);
zahtevaniBlokovi.add(noviResursBlok);

noviResursBlok.grant();

osvezavanjeListe(tred, quantity, noviResursBlok.getResource().getID());

return noviResursBlok;
}

return null;
}

public static Vector do_deadlockDetection()
{

/*Vector deadlockTredovi = new Vector();
for (int i = zahtevaniBlokovi.size() - 1; i >=0; i--){
ThreadCB tred = zahtevaniBlokovi.get(i).getThread();
if ((tred == )) argggghhhhh
}*/


return null;

}

public static void do_giveupResources(ThreadCB thread)
{
// Ovaj metod se poziva od strane OSPa kada se određena nit ubija
// kako bi se oslobodili svi resursi koje je ona zauzela
for (int i = zahtevaniBlokovi.size() - 1; i >= 0; i--)

{
// U ovoj metodi trebate da prođete kroz sve resurse koje je zauzela ta nit i da osvežite,
// kao i u pređašnjim metodama, brojke koje označavaju zauzeće i raspoloživost resursa
RRB zahtevaniResursBlok = zahtevaniBlokovi.get(i);
if (zahtevaniResursBlok.getThread().equals(thread))
{
ResourceCB resurs = zahtevaniResursBlok.getResource();
int quantity = zahtevaniResursBlok.getQuantity();
int slobodniResursi = resurs.getAvailable();
int noviSlobodanResurs = slobodniResursi + resurs.getAllocated(thread);
resurs.setAvailable(noviSlobodanResurs);

// Broj resursa koje zauzima nit se postavlja na 0.
resurs.setAllocated(thread, 0);

// oslobađam resurse
alokacionaLista[zahtevaniResursBlok.getResource().getID()].remove(thread);
Maximum[zahtevaniResursBlok.getResource().getID()].remove(thread);
zahtevaniBlokovi.remove(zahtevaniResursBlok);
}
}

// Opet, pošto se oslobađaju resursi,
// potrebno je proveriti da li je moguće nastaviti sa izvršavanjem nekih od blokiranih niti.

for (RRB zahtevaniResursBlok : zahtevaniBlokovi)
{
// inicijalizacija slobodnog resursa
int slobodanResurs = zahtevaniResursBlok.getResource().getAvailable();

// proveravam da li je moguce i ukoliko jeste nastavim sa izvrsavanjem
if ((zahtevaniResursBlok.getQuantity() <= slobodanResurs)
&& (zahtevaniResursBlok.getStatus() == Suspended))
{
zahtevaniResursBlok.grant();
slobodanResurs -= zahtevaniResursBlok.getQuantity();

// osvezavanje liste
osvezavanjeListe(zahtevaniResursBlok.getThread(), zahtevaniResursBlok.getQuantity(), zahtevaniResursBlok.getResource().getID());
}
}
}

public void do_release(int quantity)
{
// OSP poziva ovaj metod kada nit treba da osloboti 'quantity' broj resursa tog tipa.
ThreadCB tred = MMU.getPTBR().getTask().getCurrentThread();

// Prvo kao i ranije osvežiti brojke u kojima se čuva koliko je resurasa tog tipa slobodno,
// kao i koliko resursa sada zauzima nit koja oslobađa resurse.

int slobodniResursi = getAvailable();
int noviSlobodanResurs = slobodniResursi + quantity;
setAvailable(noviSlobodanResurs);

int alociraniResursi = getAllocated(tred);
int noviAlociraniResurs = alociraniResursi - quantity;
setAllocated(tred, noviAlociraniResurs);

// S obzirom da su neki resursi oslobođeni,
// moguće je da neke niti nakon toga mogu da nastave sa svojim izvršavanjem,
// tako da je to sledeći korak,
// proveriti da li je moguće nastaviti izvršavanje nekih niti
for (RRB zahtevaniResursBlok : zahtevaniBlokovi)
{
if ((zahtevaniResursBlok.getStatus() == Suspended)
&&
(zahtevaniResursBlok.getResource().getID() == getID())
&&
(zahtevaniResursBlok.getQuantity() <= getAvailable()))
{
// i ako je moguće uraditi to pozivom metode grant()
zahtevaniResursBlok.grant();

osvezavanjeListe(zahtevaniResursBlok.getThread(), zahtevaniResursBlok.getQuantity(), zahtevaniResursBlok.getResource().getID());
}
}
}

public static void atError()
{

}

public static void atWarning()
{

}

}

#################################################################################
KLASA RESOURCE TABLE
#################################################################################
package osp.Resources;

import osp.Utilities.*;
import osp.IFLModules.*;

/**
* @author Mihajlo
*
*/

@SuppressWarnings("unused")
public class ResourceTable extends IflResourceTable
{

public ResourceTable()
{
// Kao i uvek pozvati super().
// Dalje po potrebi, ako vaša implementacija problema to zahteva,
// inicijalizovati dodatno neke instancne promenljive
super();

}

}

#################################################################################
KLASA RRB
#################################################################################

package osp.Resources;

import java.util.*;

import osp.IFLModules.*;
import osp.Threads.*;

/**
* @author Mihajlo
*
*/

@SuppressWarnings("unused")
public class RRB extends IflRRB
{

public RRB(ThreadCB thread, ResourceCB resource,int quantity)
{
// mora se pozvati super
super(thread, resource, quantity);
}

public void do_grant()
{
// Metod simulira davanje resursa niti.
// Ovde se ne vrši provera da li ovo treba uraditi, samo se uradi.
// Treba dekrementirati broj dostupnih resursa zahtevanog tipa,

int slobodniResursi = getResource().getAvailable();
int noviSlobodniResurs = slobodniResursi - getQuantity();
getResource().setAvailable(noviSlobodniResurs);

// i povećati broj koji predstavlja broj alociranih resursa.
int alociraniResursi = getResource().getAllocated(getThread());
int noviAlociraniResursi = alociraniResursi + getQuantity();
getResource().setAllocated(getThread(), noviAlociraniResursi);

// Na kraju stanje niti koja je napravila taj zahtev se mora postaviti na Granted
setStatus(Granted);

// i nit se treba odblokirati metodom notifyThreads().
notifyThreads();
}


}
##############################################

уторак, 2. фебруар 2010.

VPN tehnologije - ukratko

Tehnologije i protokoli u Site-to-Site VPN

U site-to-site VPN-ovima korisnički saobraćaj je tunelovan ili između CE uređaja ili između PE uređaja. Protokoli i tehnologije koji omogućavaju site-to-site VPN uključuju:

- IPsec: sastoji se od skupa protokola koji su dizajnirani da zaštite IP saobraćaj između „security gateway“-a ili hostova dok prolazi kroz mrežu. IPsec tuneli se često koriste da kreiraju site-to-site između CE uređaja (CE-based VPN)

- GRE: može biti korišćen za kreiranje tunela i trasportovanje multiprotokol saobraćaja između CE uređaja u VPN-u. GRE ima slabo razvijenu sigurnost (little or no security), ali se zato GRE tuneli mogu štititi korišćenjem IPsec-a.

- Draf Martini (Any Transport over MPLS [AToM]): Draft Martini trasport dozvoljava point-to-point transport protokola kao što su Frame Relay, ATM, Ethernet, Ethernet VLAN (802.1Q), High-Level Data Link Control (HDLC) i PPP preko MPLS-a

- L2TPv3: L2TPv3 omogućuje point-to-point transport protokola kao što su Frame Relay, ATM, Ethernet, Ethernet VLAN, HDLC i PPP preko IP ili drugog backbone-a

- IEEE 8021.Q tunneling (Q-in-Q): 802.1Q omogućava servis provajderu da tuneluje tagovani Ethernet (odnosno 802.1Q) korisnički saobraćaj putem zajedničkog bekbon-a (engl. shared backbone). Korisnički 802.1Q saobraćaj je tunelovan preko deljenog provajderovog backbone-a dodavanjem još jednog 802.1Q taga.

- MPLS LSP: LSP predstavlja putanju preko LSR (Label Switched Router) u MPLS mreži. Paketi se svičuju na osnovu labela koje se dodaju na sam paket. LSP-ovi mogu biti signalizirani korišćenjem TDP-a (Tag Distribution Protocol), LDP-a (Label Distribution Protocol) ili RSVP-a (Resource Reservation Protocol)

Tehnologije i protokoli u Remote Access VPN

Protokoli i tehnologije koji se koriste u Remote Acces VPN-ovima su:

- L2F (The Layer Two Forwarding Protocol): L2F je vlasništvo kompanije Cisco i dizajniran je da omogući tunelovanje PPP (ili SLIP – Serial Line Interface Protocol) frejmova između NAS i VPN gateway uređaja koji se nalazi na centralnoj lokaciji. Udaljeni korisnici (engl. remote users) se konektuju na NAS i PPP frejmovi udaljenog korisnika su tunelovani preko mreže do VPN (home) gateway-a.

- PPTP (Point-to-Point Tunneling Protocol): protokol u koji su stvorili Microsoft, 3Com i Ascend Communications. Kao i L2F, PPTP dozvoljava tunelovanje PPP frejmova udaljenog korisnika preko NAS do VPN gateway uređaja. PPTP takođe dozvoljava da tunel bude postavljen direktno između korisnika i VPN gateway uređaja. PPP enkapsulirani paketi koji se prenose putem PPTP tunela se često štite MPPE (Microsoft Point-to-Point Encryption).

- L2TPv2/L2TPv3 (The Layer 2 Tunneling protocol versions 2 and 3): L2TP je IETF (Internet Engineering Task Force) standard i kombinuje najbolje od L2F i PPTP protokola. U remote-access okruženju, L2TP dozvoljava ili tunelovanje PPP frejmova udaljenih korisnika preko NAS do VPN gateway uređaja ili tunelovanje PPP frejmova direktno od korisnika do VPN gateway-a. L2TP ima ograničenu sigurnost pa se ovi tuneli često štite korišćenjem IPsec-a.

- IPsec: kao i kod site-to-site VPN-ova, koriste se da obezbete tunelovani sabraćaj između udaljenih ili mobilnih korisnika i VPN gateway uređaja.

- SSL (The Secure Socket Layer): protokol koji je originalno razvijen od strane Netscape Communications (SSL verzije 1, 2 i 3) i omogućuje bezbedan udaljeni pristup mobilnim ili kućnim korisnicima. Funkcionalnost, u odnosu na L2F, PPTP ili IPsec, može biti ograničena ako se implementira „clientless“ SSL remote-access VPN. Prednost ovakvog udaljenog pristupa je ta što nikakav dodatni klijentski softver nije potreban jer SSL je implementiran u skoro svaki internet pregledač (engl. web browser). Stoga, ukoliko korisnik poseduje neki od poznatih browser-a takođe poseduje i potreban SSL softver. Veća funkcionalnost se postiže instaliranjem specifičnog SSL VPN klijentskog softvera na remote-access uređajima.

Photo edit

Edited photo:




Original photo:

недеља, 31. јануар 2010.

Sungazing - Gledanje u sunce!




Kako se primenjuje metoda?

Gledanje u Sunce (Sungazing) se izvodi samo jednom u životu, u trajanju od 270 dana što se obično završi u periodu od 9 do 12 meseci. Počinje se sa 10 sekundi gledanja prvog dana a završava sa 45 minuta. Dok se gleda u Sunce treba stajati na goloj zemlji ili pesku bosonog, ako je to moguće, i to OBAVEZNO u vreme “sigurnog sata” (ili “zlatnog sata” kako se to vreme naziva) a to je u prvom satu od izlaska ili u poslednjem satu pre zalaska Sunca. Svakog sledećeg dana povećava se vreme gledanja za 10 sekundi (ili za 5 sekundi). Praksa se izvodi jednom dnevno (dakle, možete da birate ili se prilagođavate vremenskim uslovima).

Pored gledanja u Sunce, preporučuje se i pijenje "solarne vode" (vode koja je u staklenoj boci stajala na Suncu od jutra do zalaska) a može se koristiti ne samo za piće već i za spoljašnju upotrebu, kao i izlaganje bolnih delova tela Suncu i sunčanje u toku dana kada je UV zračenje nisko. Bosonogo šetanje po goloj zemlji ili pesku, u trajanju od 45 minuta dnevno treba praktikovati svakodnevno, ili bar kada to vremenske okolnosti dozvoljavaju za dobro zdravlje i vitalnost.


Šta možete da očekujete od ove metode?

Gledanjem u Sunce, postepno dolazi do poboljšanja zdravstvenog stanja – najpre na mentalnom planu a zatim na fizičkom. Nakon postignutih 15 minuta geledanja u Sunce, dolazi do poboljšanja pamćenja, i mentalnih sposobnosti uopšte. Još jedan značajn efekat se kod većeg broja ljudi pojavljuje već na samom početku gledanja u Sunce značajno smanjenje apetita što direktno utiče na prirodno i spontano regulisanje telesne težine. Gledanjem u Sunce u telu se akumulira energija koja se koristi za svakodnvne aktivnosti a istovremeno se postepeno smanjuje potreba za unošenjem energije iz hrane koja se smatra sekundarnim izvorom energije.

Ova praksa može pomoći u prevazilaženju fizičkih bolesti kako akutnih tako i hroničnih.

Najvažnije je da se pridržavate datih uputstava i da partite sopstve reakcije vođenjem dnevnika. Svaka osoba je različita tako da su i reakcije na gledanje u Sunce individualne.

четвртак, 7. јануар 2010.

четвртак, 10. децембар 2009.

CISCO SWITCH CONFIGURATION - LAB 1

Komande koje treba da znate su označene BOLD slovima, ostale nisu neophodne!

SW2-kim0#sh run
Building configuration...

Current configuration : 5697 bytes
!
version 12.2
no service pad
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname SW2-kim0
!
!
no aaa new-model
ip subnet-zero
ip routing
!
!
!
!
!
!
no file verify auto
!
spanning-tree mode pvst
spanning-tree portfast bpduguard default
spanning-tree portfast bpdufilter default
spanning-tree extend system-id
spanning-tree uplinkfast max-update-rate 1500
!
vlan internal allocation policy ascending
!
!
interface Loopback0
ip address 1.1.1.222 255.255.255.255

!
interface Port-channel1
description "DOUBLE PORT VEZA SA SW1"
no switchport

ip address 129.1.78.8 255.255.255.0

!
interface FastEthernet0/1
switchport mode dynamic desirable
!
interface FastEthernet0/2
switchport access vlan 22
switchport mode access

!
interface FastEthernet0/3
switchport mode dynamic desirable
!
interface FastEthernet0/4
switchport access vlan 44
switchport mode access

!
interface FastEthernet0/5
switchport mode dynamic desirable
!
interface FastEthernet0/6
switchport mode dynamic desirable
!
interface FastEthernet0/7
switchport mode dynamic desirable
switchport port-security maximum 3
switchport port-security violation shutdown

!
interface FastEthernet0/8
switchport mode dynamic desirable
switchport port-security maximum 3
switchport port-security violation shutdown

!
interface FastEthernet0/9
switchport mode dynamic desirable
!
interface FastEthernet0/10
switchport mode dynamic desirable
!
interface FastEthernet0/11
switchport mode dynamic desirable
!
interface FastEthernet0/12
switchport mode dynamic desirable
!
interface FastEthernet0/13
switchport mode dynamic desirable
!
interface FastEthernet0/14
switchport mode dynamic desirable
!
interface FastEthernet0/15
switchport mode dynamic desirable
!
interface FastEthernet0/16
switchport trunk encapsulation dot1q
switchport mode trunk

!
interface FastEthernet0/17
switchport mode dynamic desirable
!
interface FastEthernet0/18
switchport mode dynamic desirable
!
interface FastEthernet0/19
switchport trunk encapsulation dot1q
switchport mode trunk

!
interface FastEthernet0/20
switchport trunk encapsulation dot1q
switchport mode trunk

!
interface FastEthernet0/21
switchport trunk encapsulation dot1q
switchport mode trunk

!
interface FastEthernet0/22
switchport mode dynamic desirable
!
interface FastEthernet0/23
switchport mode dynamic desirable
!
interface FastEthernet0/24
switchport mode dynamic desirable
!
interface FastEthernet0/25
switchport mode dynamic desirable
!
interface FastEthernet0/26
switchport mode dynamic desirable
!
interface FastEthernet0/27
switchport mode dynamic desirable
!
interface FastEthernet0/28
switchport mode dynamic desirable
!
interface FastEthernet0/29
switchport mode dynamic desirable
!
interface FastEthernet0/30
switchport mode dynamic desirable
!
interface FastEthernet0/31
switchport mode dynamic desirable
!
interface FastEthernet0/32
no switchport
no ip address
channel-group 1 mode on

!
interface FastEthernet0/33
no switchport
no ip address
storm-control broadcast level 20.00
storm-control unicast level 40.00 20.00
channel-group 1 mode on

!
interface FastEthernet0/34
description "TRUNK LINK SW1-SW2"
switchport trunk encapsulation dot1q
switchport trunk native vlan 38
switchport mode trunk
switchport port-security maximum 3
switchport port-security violation restrict

!
interface FastEthernet0/35
switchport mode dynamic desirable
!
interface FastEthernet0/36
switchport mode dynamic desirable
!
interface FastEthernet0/37
switchport mode dynamic desirable
!
interface FastEthernet0/38
switchport mode dynamic desirable
!
interface FastEthernet0/39
switchport mode dynamic desirable
!
interface FastEthernet0/40
switchport mode dynamic desirable
!
interface FastEthernet0/41
switchport mode dynamic desirable
!
interface FastEthernet0/42
switchport mode dynamic desirable
!
interface FastEthernet0/43
switchport mode dynamic desirable
!
interface FastEthernet0/44
switchport mode dynamic desirable
!
interface FastEthernet0/45
switchport mode dynamic desirable
!
interface FastEthernet0/46
switchport mode dynamic desirable
!
interface FastEthernet0/47
switchport mode dynamic desirable
!
interface FastEthernet0/48
switchport mode dynamic desirable
!
interface GigabitEthernet0/1
switchport mode dynamic desirable
switchport block multicast
switchport block unicast
switchport backup interface Gi0/2
switchport backup interface Gi0/2 preemption mode forced
!
interface GigabitEthernet0/2
switchport mode dynamic desirable
switchport block multicast
switchport block unicast
!
interface Vlan1
no ip address
shutdown
!
interface Vlan38
ip address 204.12.1.8 255.255.255.0

max-reserved-bandwidth 80
!
interface Vlan58
description "CORPORATE VLAN"
ip address 10.10.10.1 255.255.255.0

!
router eigrp 100
network 1.1.1.222 0.0.0.0
network 129.1.78.0 0.0.0.255
no auto-summary

!
router bgp 1
no synchronization
bgp log-neighbor-changes
network 129.1.78.0 mask 255.255.255.0
network 203.12.1.0 mask 255.255.255.0
neighbor 1.1.1.11 remote-as 1
neighbor 1.1.1.11 update-source Loopback0
neighbor 1.1.1.11 next-hop-self
no auto-summary

!
ip classless
ip route 1.1.1.11 255.255.255.255 129.1.78.7 name "SW1 - KAMENI"
ip route 129.1.13.0 255.255.255.0 129.1.17.1 name "PREKO R1 DO R3"

ip http server
ip http secure-server
!
!
!
control-plane
!
!
line con 0
logging synchronous
line vty 0 4
logging synchronous
no login
line vty 5 15
no login
!
end

четвртак, 26. новембар 2009.