недеља, 21. фебруар 2010.
уторак, 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
private static Set
private static HashMap
private static HashMap
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
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.
недеља, 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.
субота, 16. јануар 2010.
четвртак, 7. јануар 2010.
четвртак, 10. децембар 2009.
CISCO SWITCH CONFIGURATION - LAB 1
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