You are on page 1of 45

I

LI CM N
Li u tin, em xin chn thnh cm n ton th qu Thy C khoa in T - Vin
Thng Trng Khoa Hc T Nhin Thnh Ph H Ch Minh tn tnh, ch bo,
truyn t kin thc cho em trong sut 4 nm qua. chnh l c s, tin vng chc
gip em t tin bc vo i, tip tc pht trin con ng m mnh chn.
Em cng xin chn thnh cm n Ban lnh o v cc anh ch Trung tm iu hnh
mng, Cng ty C phn Vin thng FPT FPT Telecom, nhit tnh gip , to iu
kin cho em hon thnh ti ca mnh.
Tip n, em xin by t lng bit n n hai anh V Thi Bnh v Nguyn Thnh
t ti phng NOC ca FPT Telecom nhit tnh gip em trong thi gian thc tp.
Nh c s nhit tnh gip ca hai anh m em c th hon thnh tt ti ca mnh.
Em xin chn thnh cm n.

Thnh ph H Ch Minh, thng 05 nm 2014
Sinh vin thc hin

L Ngc Thng


II

GII THIU CNG TY
Gii thiu chung v FPT
Thnh lp ngy 13/09/1988, trong gn 26 nm pht trin, FPT lun l cng ty Cng
ngh thng tin v Vin thng hng u ti Vit Nam vi doanh thu 28.647 t ng, tng
ng 1,36 t USD (Bo co ti chnh 2013), to ra hn 17.000 vic lm v gi tr vn
ha th trng (ti 28/2/2014) t 17.608 t ng, nm trong s cc doanh nghip t
nhn ln nht ti Vit Nam (theo bo co ca Vietnam Report 500).
Vi cc lnh vc kinh doanh ct li thuc lnh vc Cng ngh thng tin v Vin
thng, FPT cung cp dch v ti 57/63 tnh thnh ti Vit Nam, khng ngng m rng
th trng ton cu. n thi im hin ti, FPT c mt ti 17 quc gia gm: Vit
Nam, Lo, Thi Lan, Campuchia, Singapore, M, Anh, Nht Bn, Malaysia, c, Php,
Philippines, c, Myanmar, Kuwait, Bangladesh v Indonesia.
FPT c b dy thnh tch trong vic to dng v trin khai cc m hnh kinh doanh
mi c quy m ln. Sau gn 26 nm hot ng, hin FPT l cng ty s 1 ti Vit Nam
trong cc lnh vc Phn mm, Tch hp h thng, Dch v CNTT, Phn phi v Sn xut
cc sn phm CNTT, Bn l sn phm CNTT... lnh vc vin thng, FPT l mt trong
3 nh cung cp dch v vin thng c nh v Internet ln nht Vit Nam. lnh vc ni
dung s, FPT hin l n v Qung co trc tuyn s 1 ti Vit Nam v t ho s hu h
thng bo in t c 42 triu lt truy cp mi ngy. Ngoi ra, FPT cn s hu khi gio
dc i hc v dy ngh vi tng s gn 16.000 sinh vin v l mt trong nhng n v
o to v CNTT tt nht ti Vit Nam.
Con ng FPT chn chnh l cng ngh, vn ti tm cao nng sut lao ng mi
bng nhng tri thc mi thng qua cng ngh. Pht huy ti a kh nng sng to v linh
hot nm bt nhng c hi mi, n lc ng dng v sng to cng ngh trong mi
hot ng mi cp l yu cu i vi tng ngi FPT, hng ti mc tiu chung
OneFPT - Tp on Cng ngh Ton cu Hng u ca Vit Nam.

III

LI NI U
Mng my tnh v ang pht trin rt nhanh ha hn cho php chng ta s dng
vi tc ngy cng cao hn, nhiu tin ch v ng tin cy hn. Tuy nhin, vic ny
ng ngha vi vic tng tnh phc tp ca h thng. Vic m bo tnh cn bng gia
tng cng cc tnh nng mi vi s gim thiu tnh phc tp ca h thng ang l thch
thc i vi nhng nh khai thc mng, nhng ngi lun mun gi cho h thng ca
h cng n gin cng tt gim thiu chi ph vn hnh v trnh pht sinh cc li.
p ng c nhu cu trn, h iu hnh Junos ra i. S dng cc thit b
chy h iu hnh Junos trong mng c th gip gim c tnh phc tp ca h thng.
Li ch ny xut pht t vic cc thit b s dng chung mt h iu hnh trn nhiu thit
b, nh iu hnh mng ch cn o to cho nhn vin ca mnh s dng duy nht mt
h iu hnh vn hnh h thng. iu ny lm gim ng k chi ph vn hnh cng
nh trin khai h thng.
Ngoi ra, Junos cn cung cp mt b cng c t ng ha cc qu trnh cu hnh
cng nh gim st h thng l Junos Automation. Vi b cng c ny vic gim st h
thng s tr nn n gin v tit kim thi gian hn rt nhiu. Junos Automation s dng
ngn ng SLAX vit cc on kch bn (scripts) c lp trnh trc cho mt cng
vic c th. Cc k s mng s khng cn phi mt thi gian cho vic cu hnh hoc
gim st h thng mng.
Trong ti ny, em s dng phn mm GNS3 m phng h thng mng,
VirtualBox m phng h iu hnh JunOs, WinSCP kt ni gia cc my.
Kt qu thu c: hai script thc hin cc cng vic gim st c bn. Script th
nht hin th tt c cc cng kt ni (interface) c a ch IP, cho bit trng thi v
protocol ca cng . Script th hai hin th ln chi s ifIndex, mt ch s dng gim
st mng.



1

MC LC
LI CM N ....................................................................................................... I
GII THIU CNG TY .................................................................................... II
LI NI U ................................................................................................... III
MC LC ............................................................................................................. 1
DANH MC HNH NH .................................................................................... 3
DANH MC T VIT TT............................................................................... 4
CHNG 1: GII THIU JUNOS AUTOMATION ................................... 5
1.1. OPERATION SCRIPT. ............................................................................................. 7
1.2. COMMIT SCRIPT. ................................................................................................... 7
1.3. EVEN SCRIPT ........................................................................................................... 8
CHNG 2: TNG QUAN V XML ............................................................ 9
2.1. C BN V XML. .................................................................................................... 9
2.2. HIN TH XML. ........................................................................................................ 9
2.3. ELEMENT. ............................................................................................................... 11
2.4. ATTRIBUTE. ........................................................................................................... 11
2.5. NAMESPACE. ......................................................................................................... 12
2.6. NODE. ....................................................................................................................... 13
CHNG 3: COMMIT SCRIPT V EVEN SCRIPT ................................ 14
3.1. COMMIT SCRIPT. ................................................................................................. 14
3.1.1. Tng Quan V Commit Script. ........................................................................... 14
3.1.2. Nhng Li ch Khi S Dng Commit Script. ..................................................... 14
3.1.3. Commit Script Hot ng Nh Th No? ......................................................... 15
3.1.4. Tin Trnh Commit Thng Thng. ................................................................... 15
3.1.5. Tin Trnh Commit Vi Commit Script. ............................................................ 16
3.2. EVENT SCRIPT. ..................................................................................................... 17
3.2.1. Even Policy. ........................................................................................................ 17
3.2.2. Even Script. ......................................................................................................... 17
3.2.3. Event Script Hot ng Nh Th No? ............................................................. 18

2

CHNG 4: OPERATION SCRIPT ............................................................ 19
4.1. TNG QUAN V OPERATION SCRIPT. ........................................................... 19
4.2. HOT NG CA OPERATION SCRIPT. ....................................................... 19
4.3. VIT MT OPERATION SCRIPT....................................................................... 20
4.3.1. Cu Trc Ca Mt Operation Script. .................................................................. 20
4.3.2. Mt S Cu Lnh S Dng Trong Operation Script. ......................................... 21
CHNG 5: M PHNG ............................................................................. 23
5.1. GI LP JUNOS TRN GNS3 BNG VIRTUALBOX. .................................... 23
5.2. VIT SCRIPT. ......................................................................................................... 31
5.3. MT VI SCRIPT GIM ST H THNG. ..................................................... 31
5.3.1. Script Hin Th Interface. ................................................................................... 31
5.3.2. Script Hin Th IfIndex Ca Interface. ............................................................... 37
KT LUN ......................................................................................................... 41
TI LIU THAM KHO ................................................................................. 42




3

DANH MC HNH NH

Hnh 1.1. Qu trnh x l ca Junos khi s dng scripts ................................................. 6
Hnh 2.1. Node trong XML ............................................................................................ 13
Hnh 3.1. Tin trnh commit thng thng. ................................................................... 15
Hnh 3.2. Tin trnh commit vi commit script. ............................................................ 16
Hnh 3.3. Hot ng ca event script. ............................................................................ 18
Hnh 4.1. Hot ng ca operation script ...................................................................... 20
Hnh 5.1. Xem Interface bng cch th cng. ................................................................ 32
Hnh 5.2. Kt qu ca script hin th interface. .............................................................. 35
Hnh 5.3. Hin th ifIndex th cng. .............................................................................. 37
Hnh 5.4. Kt qu ca cu lnh: show interfaces | display xml ..................................... 38
Hnh 5.5. Kt qu ca script hin th ifIndex. ................................................................ 40



4

DANH MC T VIT TT

Junos Juniper Operation System
FreeBSD Free Berkeley Software Distribution
XML eXtensible Markup Language
NAT Network Address Translation
IPSec Internet Protocol Security
CLI Command Line Interface
XSLT Extensible Stylesheet Language Transformations
SLAX Stylesheet Language Alternative syntaX
API Application Programming Interface


5

CHNG 1: GII THIU JUNOS AUTOMATION

Juniper Networks, Inc l mt nh sn xut thit b mng ca M thnh lp nm 1996
bi Pradeep Sindhu. N c tr s chnh ti Sunnyvale, California, Hoa K. Juniper l
mt cng ty chuyn thit k cc sn phm v dch v v mng. Cc sn phm chnh ca
cng ty gm c cc loi Router, Switchnhng thit b dng vn hnh h thng
mng.
Junos l h iu hnh ring c to ra chy trn hu ht cc thit b mng ca
Juniper. Junos da trn nn tng FreeBSD. Cng ging nh cc h iu hnh IOS ca
CISCO, Junos c s dng nh tuyn, chuyn mch, bo mtcho cc thit b
mng. Ngoi ra, h iu hnh ny cn h tr ngn ng XML bo mt v qun l
mng. y chnh l u im ca h iu hnh ny so vi cc h iu hnh khc.
Tnh nng c bn:
nh tuyn: cung cp y cc giao thc nh tuyn
Bo mt: tng la, NAT, IPSec.
Chnh sch v kim sot: JunoS h tr mt chnh sch nh tuyn linh ng c
s dng iu khin qung b l trnh v chn ng i.
H tr ngn ng XML
Junos cung cp mt b cng c l Junos Automation. Junos Automation bao gm
mt tp hp cc cng c dng ci t v vn hnh cc thit b mng chy trn h iu
hnh JunOs mt cch t ng. . Cng c Junos Automaiton hot ng da trn kh nng
tng thch vi XML ca h iu hnh Junos.
JunOs Automation gip lm n gin ha vic cu hnh v gip gim cc li tim
tng c th xy ra trong qu trnh cu hnh h thng. N gip tit kim thi gian bng
cch t ng vn hnh v cu hnh cc nhim v nh trc. Cng c ny cng gip
y nhanh qu trnh khc phc cc s c bng cch phn hi ngay cc s kin din ra
trn h thng gip tng thi gian kh dng ca h thng.
Cng c Junos Automation bao gm 3 loi script sau:
Commit (hay configuration) script: cho php gim st v hng dn h iu
hnh c nhng phn hi thch hp tong sut qu trnh commit, tc l mi khi
cu hnh h thng thay i.

6

Operation script: cho php thc hin cc hnh ng mi khi n c gi qua
giao din dng lnh bi ngi qun tr hay bi mt script khc. Operation
script cung cp kh nng ty bin cc cu lnh s dng ch CLI gip
cho vic vn hnh c d dng, nhanh chng.
Event script: cung cp kh nng gim st tt c cc tin trnh chy trn h
thng v hng dn h iu hnh thc hin cc hnh ng cn thit mi khi
c mt s kin x ra trn h thng.



Hnh trn m t qu trnh x l cc script. H iu hnh Junos lu cc script trong
th mc /var/db/scripts/. Nhng script ny c kch hot thng qua cc trigger.
B my Script s dng ngn ng nh du m rng XML (eXtensible Markup
Language) x l cc tp tin script theo tng dng mt c nhng hnh ng thch
hp. Nhng hnh ng ny l nhng yu cu c gi ti cc tin trnh khc chy trn
h iu hnh. Khi cc b my script hon tt qu trnh x l script, n gi kt qu n
mt a ch nh trc.
Trong 3 loi script trn, ti tp trung vo vic nghin cu operation script v
operation script c s dng h tr qu trnh vn hnh v gim st h thng.
B my
Script
Tp tin Script
/var/db/scripts
Kt qu
Qu trnh x l khc
Yu cu
Thc thi
Script
Trigger
Hnh 1.1. Qu trnh x l ca Junos khi s dng scripts

7


1.1. OPERATION SCRIPT.

Junos operation script gip cho vic vn hnh v x l cc li trn h thng c ti
u hn bng cch:
Ty bin ch vn hnh bng dng lnh.
Thc hin mt lot cc cu lnh vn hnh h thng.
Ty chnh thng tin xut ra trong ch vn hnh bng dng lnh.
Thu thp thng tin ca h thng mt cch nh k nhm gip cho thi gian x
l s c c rt ngn.
Gim st tnh trng ca h thng bng cch to ra cc operation script kim
tra h thng.

1.2. COMMIT SCRIPT.

Commit script trong Junos chu trch nhim thc thi nhng cu hnh ca ngi s
dng t ra trc . Khi mt thao tc cu hnh c commit, tng dng lnh s c
xem xt, kim tra. Nu nhng dng lnh ny vi phm nhng quy nh t ra trc ,
commit script s ngay lp tc c nhng hnh ng thch hp phn hi thng qua
nhng hnh ng sau:
Hin th mt thng ip cnh bo ti ngi dng.
Ghi li qu trnh vo mt tp tin.
Thay i cc ci t ph hp vi nhng quy nh t ra trc .
To mt bn tin bo li v ngn chn nhng ci t ca ngi dng nh hng
n h thng.





8

1.3. EVEN SCRIPT

Event Script gip t ng ha vic vn hnh v x l s c ca thit b v mng
li. Event Script cho php thc hin nhng tnh nng sau:
T ng chn on v sa cha nhng vn xy ra trong mng.
Theo di tnh trng ca thit b.
T ng khi chy nh k xc nh tnh trng li xy ra.
Thay i cc cu hnh phn hi li cc vn xy ra.


9

CHNG 2: TNG QUAN V XML

Junos Automation h tr ngn ng XML gim st l qun l qu trnh vn hnh
ca h thng mng.
XML eXtensible Markup Language (ngn ng nh du m rng) l mt ngn
ng nh du m ngi dng c th s dng to ra th (tag) ring ca mnh. Chnh
v th, n c kh nng m t nhiu loi d liu khc nhau. Mc ch chnh ca XML l
n gin ha vic chia s d liu gia cc h thng khc nhau, c bit l cc h thng
c kt ni Internet.

2.1. C BN V XML.

Cc script ca Junos Automation c th c vit bng mt trong hai ngn ng
XSLT v SLAX. XSLT l mt ngn ng da trn XML dng bin i cc ti liu
XML. Ti liu gc th khng b thay i; m thay vo , mt ti liu XML mi c
to ra da trn ni dung ca ti liu c. Ti liu mi c th l c nh dng XML hay l
mt nh dng no khc, nh HTML... SLAX l mt phin bn thay th cho XSLT,
n c cu trc n gin theo phong cch ca C v Perl nhng vn cng mt ng ngha
nh XSLT. Nhng lp trnh vin quen thuc vi C thng rt d dng khi chuyn
qua s dng SLAX. Cc kch bn vit bng SLAX c th d dng c chuyn i qua
XSLT cng nh cc ngn ng khc.
Junos giao tip vi thit b qua ngn ng XML. Phn ny s ni v mt s iu c
bn v ngn ng XML cng nh XML c s dng nh th no trn h iu hnh
JunOs ci t v vn hnh cc script.

2.2. HIN TH XML.

Cc hm JunOs XML API (Application Programming Interface giao din lp trnh
ng dng) cung cp mt phng php cho cc Junos script yu cu cung cp thng
tin t h thng. Nhng yu cu ny ch dn cc tin trnh khc cung cp nhng thng tin

10

cn thit hoc khi chy nhng tin trnh thch hp. H iu hnh JunOs thc thi qu
trnh yu cu ly thng tin v chuyn kt qu cho script engine di dng XML.
V d di y s hin th thng tin c tr v bi h iu hnh JunOs di dng
XML:
user@Junos> show configuration routing-options | display xml
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/9.6I0/junos">
<configuration junos:commit-seconds="1238100702" junos:commit -
localtime="2009-03-26 13:51:42 PDT" junos:commit-user="user">
<routing-options>
<route-distinguisher-id>192.168.1.1</route-distinguisher-id>
<autonomous-system>
<as-number>65535</as-number>
</autonomous-system>
</routing-options>
</configuration>
<cli>
<banner></banner>
</cli>
</rpc-reply>
Thot nhn qua th kt qu tr v c v kh hiu nhng cu trc trc quan ca ngn
ng XML lm cho n tr nn d hiu hn. ngay dng u tin <rpc-reply> cho bit
y l mt kt qu t h iu hnh JunOs tr li cho thng tin c yu cu.
Dng tip theo cho bit y l nhng thng tin v cu hnh. Nhng dng tip theo
hin th thng tin cu hnh ca mc routing-option. Thng tin cu hnh c sp xp theo
th bc gip ngi xem d hiu hn.
V d trn cha mt s khi nim quan trng hiu lm th no giao tip vi
h thng qua JunOs XML API l: element, attribute, namespace v nodes.

11

2.3. ELEMENT.

Element l mt n v thng tin c bn trong cu trc d liu ca XML. Element c
th cha d liu dng s hay chui hay n c th cha trong n mt element khc. Mt
element khi c cha trong mt element khc th n s c gi l con ca element
. c im ny lm nn tnh phn cp cho ngn ng XML.
<routing-options>
<route-distinguisher-id>192.168.1.1</route-distinguisher-id>
<autonomous-system>
<as-number>65535</as-number>
</autonomous-system>
</routing-options>
v d trn <routing-protocol> l mt element v <route-disinguisher-id> lm mt
element con ca n.
Element c vit bng cch s dng th bt u v th kt thc. Th bt u l th
<tn_element> v kt thc l th </tn_element>.
Tt c ni dung bn trong th bt u v th kt thc l d liu ca element. Nu
khng c ni dung bn trong, element c gi l rng, n c th c vit gn thnh
<tn_element/>.

2.4. ATTRIBUTE.

Element c th cha thm thng tin v cc attribute (thuc tnh). Nhng thng tin
ny c din t bng cch thm vo th bt u ca element tn attribute v gi tr ca
n.




12

user@Junos> show configuration routing-options | display xml
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/9.6I0/junos">
<configuration junos:commit-seconds="1238100702" junos:commit -
localtime="2009-03-26 13:51:42 PDT" junos:commit-user="user">
<snip>
V d trn cho thy element <rpc-reply> v <configuration>c cha bn trong n
cc attribute. V d vi element <configuration>, n cha 3 attribute: Junos:commit-
second, Junos:commit-local-time v Junos:commit-user. y l 3 attribute m t thng
tin v ln commit cui cng ca h thng.

2.5. NAMESPACE.

Trong v d mc trn, ba attribute c nh ngha trong element
<configuration>, tt c u bt u vi t Junos. Trong v d ny, t Junos trong phn
tn thuc tnh ch ra namespace ca attribute (khng gian tn ca thuc tnh).
Namespace gip gim s nhm ln gia cc element s dng cng mt tn cho
nhng mc ch khc nhau.V d attribute commit-second c th c s dng bi nhiu
my tnh khc nhau nhng khi n i km vi Junos namespace (Junos:commit-seconds)
n s cho bit chnh xc hn.
Chnh xc hn, Junos l mt s gi ch cho khng gian tn (namespace) y ,
l http://xml.juniper.net/Junos/9.6I0/Junos. Vic vit y tn cc element,
atrribute (bao gm c URL) tr nn rt rm r v d gy sai st. V l do ny XML cho
php to mt trnh gi ch gip ti u hn cho vic vit code XML.
Thuc tnh duy nht ca <rpc-reply> l xmlns nh ngha mt namspace XML. N
nh ngha rng URL http://xml.juniper.net/Junos/9.6I0/Junos l tham chiu ca
namespace c tn l Junos. nh ngha ny c hiu lc cho element <rpc-reply> v cc
element con ca n.



13

2.6. NODE.

Khi phn tch mt ti liu XML, ngi ta a ra khi nim Node. Tc l cc element,
attribute v d liu vn bn s tr thnh cc node trn mt cy.
<interfaces>
<interface>
<name>ge-0/0/0</name>
<disable/>
</interface>
</interfaces>
v d trn, h iu hnh s phn tch d liu theo m hnh cy vi cc node nh
sau:

Hnh 2.1. Node trong XML

C th thy gc ca cy c bt u bng k kiu bng k t /, tip sau cc
element v attribute s ln lt xut pht t gc ca cy v chng c gi l mt
node.


14

CHNG 3: COMMIT SCRIPT V EVEN SCRIPT

3.1. COMMIT SCRIPT.
3.1.1. Tng Quan V Commit Script.

Commit Script trong JunOs chu trch nhim thc thi nhng cu hnh ca ngi s
dng t ra trc . Khi mt candidate configuration c commit, Tng dng lnh
s c xem xt, kim tra. Nu nhng dng lnh ny vi phm nhng quy nh (rules)
t ra trc , commit script s ngay lp tc c nhng hnh ng thch hp phn hi
thng qua nhng hnh ng sau:
Hin th mt thng ip cnh bo ti ngi dng.
To mt bn tin ghi li hot ng ca h thng.
Thay i cc ci t ph hp vi nhng quy nh t ra trc .
To mt bn tin bo li v ngn chn nhng ci t ca ngi dng nh hng
n h thng.

3.1.2. Nhng Li ch Khi S Dng Commit Script.

S dng commit script gip gim nhng li pht sinh do con ngi trong qu trnh
ci t cu hnh, vn hnh h thng. Commit script cho php kim sot qu trnh hot
ng cng nh thc thi cc chnh sch t ra trn h thng. Cng xem xt nhng v
d sau hiu r hn hot ng ca commit script:
Commit Script m bo rng mc [edit interfaces] v [edit protocols] khng
bao gi b v tnh xa i.
m bo rng tt c interface serial c cu hnh s c a vo mc
[edit protocols rip] chy giao thc nh tuyn rip.
m bo rng nhng interface SONET/SDH lun c MTU nh hn 4KB
m bo rng cc giao thc nh tuyn ngoi (BGP) khng bao gi
redistribute vo trong cc giao thc nh tuyn ni (IGB).

15

m bo rng trong h thng mng ca bn khng s dng level 1 router cho
ISIS.
Khi nhng ci t trong candidate configuration vi phm nhng quy nh t ra
trc , commit script s ch th cho h iu hnh sinh ra nhng cnh bo, bn tin log,
hay nhng bn tin bo li v ngn chn nhng ci t ny thc thi. Ngoi ra commit
script cng c th gi thay i nhng ci t trong candidate configuration ph
hp vi nhng quy nh t ra.

3.1.3. Commit Script Hot ng Nh Th No?

S dng tnh nng commit script bng cch ch ra tn ca mt hoc nhiu file commit
script trong mc [edit system scripts commit]. Nhng script ny cha nhng hng dn
h iu hnh thc thi cc quy tc t ra. Commit script c gi trong qu trnh
commit cu hnh, trc khi h iu hnh kim tra tnh hp l ca cc ci t ny.

3.1.4. Tin Trnh Commit Thng Thng.

tin trnh commit thng thng, tin trnh qun l (mgd Management process)
s copy cu hnh ca candidate configuration vo trong checkout configuration sau
tin hnh kim tra v xc nhn cc cu hnh ny theo nhng quy tc (rules) thng thng
ca h iu hnh. Nu nhng cu hnh ny l hp l, chng s tr thnh active
configuration.

Hnh 3.1. Tin trnh commit thng thng.

16

3.1.5. Tin Trnh Commit Vi Commit Script.


Hnh 3.2. Tin trnh commit vi commit script.

Khi s dng commit script, tin trnh commit s tr nn phc tp hn so vi khi
khng s dng commit script. Trc tin, tin trnh qun l s kim tra c php XML
ca candidate configuration, sau gi ti script driver. Ti script driver, commit script
c gi x l cu hnh ca candidate configuration. Mi script c th sinh ra mt
hoc nhiu hnh ng (cch ng x) tng ng vi cc cu hnh candidate configuration,
nhng hnh ng ny c lu trong mt tp tin XML v chuyn v cho Management
Daemom.




17

3.2. EVENT SCRIPT.
3.2.1. Even Policy.

chn on mt li hay tnh trng li ca thit b hay h thng, ta cn phi c cc
thng tin v tnh trng ca thit b hay h thng . Chng ta c th ly cc thng tin ny
t event notification. Event notification l cc bn tin log ca h thng hoc l bn tin
SNMP. V d nh khi mt interface down hay up, hay mt phn cng mi c thm
vokhi mt bn tin log hay SNMP s c sinh ra, chnh l cc event
notification. H iu hnh JunOs s gi qu trnh envent process nhn cc event
notification ny.
Vic chn on v can thip kp thi l iu ht sc quan trng duy trnh kh
nng vn hnh ca h thng. Sau khi qu trnh event process nhn c cc event
notification, n s da vo cc event policy c thit lp thc thi mt s hnh
ng thch hp. Nhng hnh ng ny c th l hnh ng chn on mt li no
hay cng c th l mt hnh ng khc phc mt s c va mi xy ra trn h thng
nhng hnh ng c thc hin thng qua cc event script.
Event process nhn cc event notification t cc tin trnh khc chy trn h thng
(v d nh IBG, BGP routing protocol). Sau thng qua event policy, event process
s c nhng hnh ng thch hp x l nhng event notification . Hnh bn di
m t s tng tc gia event process vi cc tin trnh khc chy trn h thng.

3.2.2. Even Script.

Event script c kch hot t ng bi event policy phn hi li cc s kin trn
h thng v hng dn h iu hnh c hnh ng ngay lp tc. Event script gip t
ng ha vic vn hnh v x l s c ca thit b v mng li.
Event script cho php thc hin nhng tnh nng sau:
T ng chn on v sa cha nhng vn xy ra trong mng
Theo di tnh trng ca thit b.
T ng khi chy nh k xc nh tnh trng li xy ra.
Thay i cc cu hnh phn hi li cc vn xy ra.


18

Event script da trn giao thc qun l JunOs XML v JunOs API. Event script c
th c vit bng ngn ng XSLT hoc SLAX. Event script s dng XPath nh v
i tng ang hot ng v XSLT s xy dng cc hot ng thc thi trn i tng
c nh v.

3.2.3. Event Script Hot ng Nh Th No?

Khi tin trnh event processing c kch hot, cc event notification policy s
chuyn chi tit v s kin n cho event script. Event scrip c kch hot bng cch ch
ra tn ca mt hay nhiu file event script trong [edit event-options eventscript]. Event
scrip s c gi trong event policy.

Hnh 3.3. Hot ng ca event script.

Mt khi c kch hot, event script c t vo trong b nh h thng (system
memory) khi chy. Sau khi qu trnh commit hon tt, event script khi chy
phn hi li cc event notification trong event policy.
Event script cng c th c s dng thay i cu hnh ca thit b bng cch
thm vo tag <load-configuration>.




19

CHNG 4: OPERATION SCRIPT

4.1. TNG QUAN V OPERATION SCRIPT.

JunOs operation script gip cho vic vn hnh v x l cc li trn h thng c
ti u hn bng cch:
Ty bin ch vn hnh bng dng lnh.
Thc hin mt lot cc cu lnh vn hnh h thng.
Ty chnh thng tin xut ra trong ch vn hnh bng dng lnh
Thu thp thng tin ca h thng mt cch nh k nhm gip cho thi gian x l
s c c rt ngn.
Gim st tnh trng ca h thng bng cch to ra cc operation script kim tra h
thng.

4.2. HOT NG CA OPERATION SCRIPT.

JunOs Operation Script thng c gi bi ngi dng ti giao din dng lnh
CLI. Chng c vit thc hin mt hoc mt lot cc cng vic theo yu cu ca
ngi dng. Cc thng s cung cp cho hot ng ca operation script c cung cp
bi ngi dng. y chnh l im khc bit c bn gia operation script vi commit
script v event script.
Hnh bn di m t cch thc hot ng ca operation script:

20


Hnh 4.1. Hot ng ca operation script

H iu hnh JunOs xy dng mt th vin y cc hm XML API cho php
cc operation script c th thc hin y tt cc cc tc v m ngi dng c th thc
hin ch CLI. V d, mt ngi dng thng thng s s dng cu lnh show chasis
hardware hin th cc thng tin v phn cng. Trong khi mt operation script s
s dng XML API tng ng thc hin iu <get-chassisinventory>.

4.3. VIT MT OPERATION SCRIPT.
4.3.1. Cu Trc Ca Mt Operation Script.

Di y l cu trc ca mt operation script c vit theo ngn ng SLAX:

1 version 1.0;
2
3 ns junos = http://xml.juniper.net/junos/*/junos;
4 ns xnm = http://xml.juniper.net/xnm/1.1/xnm;
5 ns jcs = http://xml.juniper.net/junos/commit-scripts/1.0;
6 import ../import/junos.xsl;
7
8 match /
9 {
10 <op-script-results>
11 {
12 <output> Hello World!;
13 }
14 }

21


Version: Phin bn hin ti ca ngn ng SLAX s dng trong script ny. Phin
bn mi nht ca ngn ng SLAX l 1.0.
ns: Cu lnh ns nh ngha mt tin t v mt namespace tng tng ca n.
Nhng namespace nh: junos, xnm, jsc phi c nh ngha trong operation
script.
Import: cu lnh import nhp cc code t mt script vo script ang vit. Script
junos.xls cha cc mu (template) v thng s mc nh hu ch cho vic vit
script.
Match /: y l khi chng trnh chnh ca operation script, l ni ngi
dng vit cc on code.

4.3.2. Mt S Cu Lnh S Dng Trong Operation Script.

jcs:invoke(): Script s dng cu lnh ny gi mt cu lnh n cho h iu
hnh thc thi. Mt API hay mt bin c th c t trong cp du ngoc trn
ca lnh. V d:

var $clear-statistics-rpc = <clear-interfaces-statistics-all>;
var $results = jcs:invoke( $clear-statistics-rpc );
hoc:
var $results = jcs:invoke( "clear-interfaces-statistics-all" );

Trong c 2 trng hp trn, cu lnh clear-interfaces-statistics-all s c script
gi ti cho h iu hnh thc hin v tr v kt qu cho bin$results.

jcs:get-input(): Cu lnh ny dng ly thng tin t ngi s dng script. Khi
x l n lnh ny, script s hin th mt du nhc ngi dng nhp thng tin
vo. Ngi dng kt thc vic cung cp thng tin cho script bng cch nhn phm
Enter.



22

jcs:get-secret(): C chc nng tng t jcs:get-input(). Tuy nhin nhng thng
tin m ngi s dng nhp vo s khng hin th trn mn hnh. jcs:get-secret()
c s dng cho ngi dng nhp vo nhng thng tin c tnh b mt, ring
t nh mt khu.
if (iu kin) { thc hin nu iu kin ng}
else { thc hin nu iu kin sai}
for-each: y l vng lp trong operation script. C ch hot ng ca n cng
tng t nh vng lp fordo hay for(,,) trong cc ngn ng C, C++

1 math /
2 {
3 <op-script-result>
4 {
5 var $results = jcs:invoke("get-interface-information");
6 for-each($results/physical-interface/mtu)
7 {
8 if(.!="Unlimited")
9 {
10 <output>"The MTU for"_../name_"is"_.;
11 }
12 }
13 }
14 }

v d ny, vng lp for-each s qut qua tt c cc interface vt l trn thit
b. Nu interface no c gi tr ca trng MTU khng phi l Unlimited th s
xut ra mn hnh tn v gi tr MTU tng ng ca interface .


23

CHNG 5: M PHNG

5.1. GI LP JUNOS TRN GNS3 BNG VIRTUALBOX.

Chun b: ci GNS3, VirtualBox, file Olive ci JunOs c th l Olive12.9.img
Cc bc thc hin:
Bc 1: Chuyn file Olive t ui .img sang file ui .vdi chy trn VirtualBox.
M cmd ln, chy bng quyn administrator



Tm ng dn n file Olive12.9.img, trong trng hp ny l:
C:\Users\user\Desktop\New folder.
Trong cmd chuyn n folder bng cu lnh:
cd C:\Users\user\Desktop\New folder



24

Lu : file Olive12.9.img phi c lu trn C ( a ci h iu hnh) th
cu lnh cd mi c thc thi.



Tm ng dn n file VBoxManage.exe trong trng hp ny l:
C:\Program Files\Oracle\VirtualBox\VboxManage.exe.
Vo cmd, g cu lnh:
C:\Program Files\Oracle\VirtualBox\VboxManage.exe convertdd Olive12.9.img
Olive12.9.vdi
Cu lnh trn s chuyn file .img sang file .vdi c th s dng c trong
VirtualBox


25







26

Bc 2: To my o chy JunOs bng VirtualBox
M VirtualBox ln, to mt my mi, bm New

Name : t tn cho thit b.
Type: BSD
Version: FreeBSD (32bit)

Bm Next




27

Chn RAM cho my o, ti thiu l 256MB. Bm Next


Bng thng bo mi s hin ra, chn Use an existing virtual drive file. Chn ng
dn n file Olive12.9.vdi m hi ny mi to. Bm Create


28

Bc 3: Thm my o ci vo GNS3
Trong GNS3 chn Edit Preferences Ca s Preferences s hin ra.




29

Chn VirtualBox, tip theo chn tab VirtualBox Guest
Identifier Name: Tn ca thit b.
Bm Refresh VM List. Sau chn VM List (tn ca my o ci trn VirtualBox)
trng hp ny l JunOs1. Tch v Enable console support v Enable console server
(for remote access). Cui cng bm Save lu li.





30

Vy l hon chnh, by gi ch cn ly my o ci s dng trong GNS3:
Ti ct bn tri, chn Browse all devices, bm chn VirtualBox guest v ko th ra
ca s lm vic chnh.

Chy th ta c kt qu:


31

5.2. VIT SCRIPT.

kch hot mt operation script chng ta lm theo nhng bc sau:
Dng ngn ng XSLT hoc SLAX vit script.
Sao chp tp tin script vo th mc var/db/scripts/op trn cng hoc th mc
/config/scripts/op trn a ca router, switch. Ch c nhng ngi dng thuc
nhm supper-user mi c php truy cp vo th mc ny.
S dng cu lnh sau bt script:
set system scripts op file [tn-script.slax]
Dng lnh commit lu li cu hnh.
Mun s dng script ta dng cu lnh sau:
op [tn-script]

5.3. MT VI SCRIPT GIM ST H THNG.
5.3.1. Script Hin Th Interface.

5.3.1.1. t Vn .

Ngi qun tr h thng, khi mun xem chi tit tnh trng ca interface: a ch IP,
trng thi, protocol.. u rt mt cng khi phi thc hin cc cu lnh bng tay mt cch
th cng.


32


Hnh 5.1. Xem Interface bng cch th cng.

Nh hnh trn, ngi qun tr nu mun xem chi tit cc interface trn thit b phi
g hai cu lnh l:
show interfaces descriptions
show interfaces terse
Cu lnh s tr v mt dy cc interface c trong thit b, k c interface khng hot
ng v khng c a ch IP. Hnh trn l i vi thit b c t interface nu mt thit b
c nhiu hn interface na trng s rt l ri mt. V vy, ngi qun tr cn phi vit ra
mt script hin th cc thng s ca interface mt cch nhanh chng v d nhn.



33

5.3.1.2. Thc Hin.

Di y l on script:
1 version 1.0;
2
3
ns junos = "http://xml.juniper.net/junos/*/junos";
4
ns xnm = "http://xml.juniper.net/xnm/1.1/xnm";
5
ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0";
6

7
import "../import/junos.xsl";
8
var $arguments = {
9
<argument> {
10
<name> "interface";
11
<description> "Name of interface to display";
12
}
13
<argument> {
14
<name> "protocol";
15
<description> "Protocol to display (inet, inet6)";
16
}
17
}
18
param $interface;
19
param $protocol;
20

21
match / {
22
<op-script-output> {
23
var $rpc = <get-interface-information> {
24
<terse>;
25
if ($interface) {
26
<interface-name> $interface;
27
}
28
}
29
var $out = jcs:invoke($rpc);
30
<interface-information junos:style = "terse"> {
31
if ($protocol == "inet" || $protocol == "inet6" || $protocol == "mpls"
|| $protocol == "tnp") {
33
for-each ($out/physical-interface/logical-interface[address-
family/address-family-name == $protocol]) {

34

34
call intf();
35
}
37
} else if ($protocol) {
38
<xnm:error> {
39
<message> {
40
expr "invalid protocol: ";
41
expr $protocol;
42
}
43
}
45
} else {
47
for-each ($out/physical-interface/logical-interface) {
48
call intf();
49
}
50
}
51
}
52
}
53
}
54

55
template intf () {
56
var $status = {
57
if (admin-status == "up" && oper-status == "up") {
59
} else if (admin-status == "down") {
60
expr "offline";
62 } else if (oper-status == "down" && ../admin-status == "down") {
63
expr "p-offline";
65
} else if (oper-status == "down" && ../oper-status == "down") {
66
expr "p-down";
68
} else if (oper-status == "down") {
69
expr "down";
71
} else {
72
expr oper-status _ "/" _ admin-status;
73
}
74
}
75
var $desc = {
76
if (description) {
77
expr description;
79
} else if (../description) {
80
expr ../description;
81
}

35

82
}
83
<logical-interface> {
84
<name> name;
85
if (string-length($desc)) {
86
<admin-status> $desc;
87
}
88
<admin-status> $status;
89
if ($protocol) {
90
copy-of address-family[address-family-name == $protocol];
92
} else {
93
copy-of address-family;
94
}
95
}
96
}

Chy script v kt qu:

Hnh 5.2. Kt qu ca script hin th interface.







36

So snh vi vic trc v sau khi p dng script:




Ngi qun tr ch cn s dng mt cu lnh. Kt qu tr v rt trc quan, ngn
gn, hin th ng interface no c a ch IP.


37

5.3.2. Script Hin Th IfIndex Ca Interface.
5.3.2.1. t Vn .

gim st trng thi interface trn thit b Juniper, cn c thng s ifIndex ca
interface .
Trc y, ly thng s ifIndex, ngi qun tr mng phi vo thit b, thc hin
cu lnh: show interface [tn_interface]. Vic ny rt mt thi gian v d gy nhm ln
cho ngi qun tr.

Hnh 5.3. Hin th ifIndex th cng.

Hnh trn cho thy mun ly ch s ifIndex ca Interface no phi dng tng cu
lnh hin th ra. Hn na, khi dng cu lnh th cng, kt qu tr v s rt ri, kh
nhn, d gy nhm ln cho ngi qun tr.



38

5.3.2.2. Thc Hin.

Vit mt operation script, script ny s qut qua tt c cc interface vt l
(physical-interface) hoc logic (logical-interface) ang chy (admin-status = up) trn
thit b. Xut ra tn interface (name) v ifindex (snmp-index) tng ng ra mn hnh.
S dng cu lnh: show interfaces | display xml ly cc thng s cn thit.

Hnh 5.4. Kt qu ca cu lnh: show interfaces | display xml












39

Ni dung script:
1 version 1.0;
2
3 ns junos = "http://xml.juniper.net/junos/*/junos";
4 ns xnm = "http://xml.juniper.net/xnm/1.1/nm";
5 ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0";
6
8 match /
9 {
10 <op-script-results>
11 {
12 var $type = jcs:get-input("Enter 1 to get LOGICAL interface or anything
else to get PHYSICAL interface: ");
14 var $results = jcs:invoke("get-interface-information");
15
16 for-each($results/physical-interface/name)
17 {
19 if ( (../admin-status = "up"))
20 {
21 if ($type == "1")
22 {
23 for-each(../logical-interface/name)
24 {
25 if(. != "")
26 {
27 <output>"The SNMP Ifindex of "_._" is "_../snmp-
index;
28 }
29 }
30 }
31 else
32 {
33 <output>"The SNMP Ifindex of "_._" is "_../snmp-index;
34 }
35 }
36 }
37 }
38 }



40

Chy script v kt qu:

Hnh 5.5. Kt qu ca script hin th ifIndex.

So snh vi vic khng s dng script:


Vi kt qu trn, ta thy r rng khi s dng script kt qu tr v trc quan v ngn
gn hn. Hn na, vi script, kt qu s tr v ifIndex ca tt c cc cng ang hot
ng. Nu lm th cng, ngi qun tr s phi v tng Interface ly c thng s.
S dng script s tit kim c thi gian cho ngi qun tr.


41

KT LUN
Trong nhng nm gn y, cc nh cung cp mng trn th gii ang phn u em
li cho khch hng ca mnh nhiu dch v mi vi cht lng mi ngy cng nng cao.
JunOs Automation l mt cng c hay, gip ch rt nhiu trong vic qun tr, nng
cao tnh kh dng v hiu sut hot ng ca h thng, gip cho nh khai thc mng
cung cp c dch v tt hn n cho khch hng.
Vi mong mun ngy cng em n cho khch hng nhng dch v tt hn, c tnh
sn sng cao, hy vng ti bo kha lun tt nghip ca em vi nhng ng dng c
nu ra s mang tnh thc tin cao.
Qua vic nghin cu v xy dng ti em nhn thy c rng y l mt ti
kh rng v phc tp nhng v cng thit yu. Do trnh , nng lc bn thn c hn,
c bit l khng c kinh nghim trong thc t nn ti khng th trnh khi nhng sai
lm, thiu st.
ti vi s gip nhit tnh ca hai anh V Thi Bnh v Nguyn Thnh t. S
nhit tnh ch bo v kin thc qu bu ca hai anh gip em hon thnh ti ny.
Em xin chn thnh cm n!


42

TI LIU THAM KHO
- Mastering Junos Automation Programming, Jeremy Schulman & Curtis Call
- Applying Junos Configuration Automation, Curtis Call.
- Applying Junos Event Automation, Curtis Call.
- Applying JunOs Operation Automation, Configuration and Operations Automation
Guide, Juniper Networks, Inc.
- V mt s ti liu, bi vit tham kho khc trn Internet.

You might also like