14 באוג׳ 2011

IPSEC IOS Configuration for Cisco Client Ver 5.x

שלום לכולם,
הנושא שרציתי לשתף איתכם הפעם אלו הגדרות של IPSEC על גבי נתבי סיסקו,
לי באופן אישי קרה שהסתכלתי על הגדרות של IPSEC והצפנה בכלל ולא הבנתי מה כל מונח אומר,או איפה משתמשים בכל דבר והדבר הכי חשוב זה איך אנחנו משלבים את הכל ביחד...
אז ברצוני להראות לכם פה דוגמא של הגדרות IPSEC עבור קליינטים שמתחברים מרחוק (עם cisco vpn client),
לי זה עשה סדר בראש.. אני מקווה שגם לכם זה ייעשה...
הדוגמא המצורפת כאן היא דוגמא לקליינט מרוחק שמבצע התקשרות VPN על גבי האינטרנט,
בו בזמן שהוא מתחבר הוא מבצע הצפנה של התעבורה אשר עוברת בינו לבין רשת היעד,

להלן תמונה אשר ממחישה את תצורת החיבור:



להלן ההגדרות של ציוד הסיסקו אשר אמור לבצע טרמינציה לקליינטים שמנסים להגיע אל רשת ה-LAN אשר נמצאת מאחורי הנתב:


IPSEC Configurations – with Cisco Client 

  1.    create 2 groups in AAA:
aaa authentication login vpn_auth local
aaa authorization network vpn_auth local

  2.    Create ISAKMP Policy  (order matters first one takes over):
crypto isakmp policy 1 ----- Policy for ISAKMP
 encr 3des ---- Encryption Method
 authentication pre-share ---- Authentication Method
 group 2 ----- DH Group

  3.    Create ISAKMP client configuration:
crypto isakmp client configuration group IPSEC ----- Group that configured on client VPN
 key 123456 ---- Pre-Shared key for group authentication
 dns 194.90.1.5 212.143.212.143
 pool VPN --- DHCP Pool for client's requests
 acl 100----- define the networks the users can reach
 max-users 5 ----- Max Allowed users to connect simultaneity
 netmask 255.255.255.0

  4.    Create ISAKMP Profile PHASE I:
crypto isakmp profile ike-profile-1 ------------à Profile Name
   match identity group IPSEC ------à match to the group configuration
   client authentication list vpn_auth --à Match to the AAA Group
   isakmp authorization list vpn_auth --à Match to the AAA Group
   client configuration address respond -à Responds to client's requests
   virtual-template 2 ---à Attached to virtual template.

  5.    Create Transform-Set PHASE II:
crypto ipsec transform-set ESP-3DES-SHA esp-3des esp-sha-hmac - Yellow'd is the name of the T-S

  6.    Create IPSEC Profile And attach ISAKMP and and transport set:
crypto ipsec profile IPSEC_Profile1 ----- Create new ipsec  profile
 set transform-set ESP-3DES-SHA ------  Configured above
 set isakmp-profile ike-profile-1-------  Configured above

  7.    Create Virtual-Template to attached encryption :
interface Virtual-Template2 type tunnel ------àNew Interface
 ip unnumbered Dialer1 --- Attached to a dialer interface
 no ip unreachables
 tunnel mode ipsec ipv4 --- Tunnel mode
 tunnel protection ipsec profile IPSEC_Profile1 --- Attache encryption of tunnel to virtual template

  8.    Configure Virtual-Template to initiate users requests:
interface Virtual-Template3 ------New Interface
 ip unnumbered Dialer1 ------ Attached to a dialer interface
 no ip unreachables
 ip nat inside ---à Applies NAT to interface
 ip virtual-reassembly
 peer default ip address pool VPN ------Applies DHCP to clients
 no keepalive
 ppp encrypt mppe auto --- Encryption Apply
 ppp authentication pap chap


9.    Create DHCP Pool for users requests:

ip local pool VPN 192.168.200.10 192.168.200.20 --- DHCP Pool for clients

  10.     Create Access-list that define the networks the users can reach:

access-list 100 permit ip 172.30.0.0 0.0.255.255 any ------ Attached Above
access-list 100 permit ip 4.4.4.0 0.0.0.255 any ------ Attached Above
access-list 100 permit ip 192.168.15.0 0.0.0.255 any ------ Attached Above
access-list 100 permit ip 172.16.5.0 0.0.0.255 any ------ Attached Above


 מקווה שעזרתי,
אבי













7 בינו׳ 2011

Routing Protocols - EIGRP




שלום לכולם,
מאמר זה הולך לדבר על פרוטוקול הניתוב EIGRP,
התמונה ממחישה EIGRP על גבי ענן Frame-Relay.
מאמר זה הוא הראשון בסדרה הקשורה לפרוטוקולי הניתוב השונים והם OSPF, BGP, RIP.

אז נתחיל..
כיום קיימים מספר סוגים של פרוטוקלי ניתוב אשר בשימוש והם בעצם הכותרת לפרוטוקולים עצמם והם:

Distance Vector:
פרוטוקולים הנמנים תחת כותרת זו הם BGP,IGRP, RIPv1/v2 - (זהו הפרוטוקול אשר נמצא בשימוש האינטרנט) וכמובן הפרוטוקול שעליו אנו מדברים והוא EIGRP, סיסקו מכנה את EIGRP כפרוטוקול Hybrid וזאת כיוון שקיימים בו תכונות של של פרוטוקולים מסוג Link-State (נרחיב על כך בהמשך..).
פרוטוקולים מסוג DV הם פרוטוקולים אשר מתבססים על "שמועות" ומה זה אומר בעצם..
פרוטוקולים אלו בעצם מעבירים את טבלת הניתוב אל הנתבים השכנים.
מידע בנוגע לטבלת הניתוב נשלח בכל פרק זמן קבוע (בהתאם לפרוטוקול עצמו), במצב זה הנתב מכיר אך ורק את הרשתות שפורסמו אליו ולא מכיר את הרשת כולה.
כל פרוטוקול משתמש בשיטת חישוב הדרך אל היעד בצורה שונה ובכך בעצם מושפעת בחירת הנתיב הטוב ביותר  (Best Route).
לדוגמא פרוטוקול RIP משתמש בשיטת Hop Count בעצם כמה יעדים הוא עובר עד להגעה לנתיב היעד.
פרוטוקול EIGRP לעומת זאת משתמש בחישוב של מספר פרמטרים עליהם נרחיב בהמשך..

Link-State:
פרוטוקולים הנמנים בקבוצה זו הם OSPF, IS-IS.
פרוטוקולים אלו משתמשים בשיטה שונה לגמריי מזו של ה-DV, בשיטה זו כל נתב מכיר את כל היעדים לכל נתב ונתב ברשת ובכך מכיר את כלל הטופולוגיה וע"י כך הוא יודע לבחור את הנתיב הטוב ביותר לרשת היעד.
היתרון בשימוש בשיטה זו הוא מהירות התגובה בעת נפילה של נתב באמצע הדרך.
כיוון שהנתב מכיר את כל הרשתות אל היעד הוא יודע להחליף ניתוב בצורה מהירה מאוד ולהתאושש מנפילה.
פרוטוקולים אלו משתמשים בחישוב רוחב הפס (Cost) על מנת למצוא את הנתיב הטוב ביותר אל היעד (ארחיב על פרוטוקולים אלו במאמר הבא).

מכאן אנו מגיעים לחלוקת הפרוטוקולים לקבוצות וקיימות 2 קבוצות אשר כוללות את כלל הפרוטוקולים והם:


Interior Gateway Protocol - IGP
פרוטוקולים אלו הם בעצם פרוטוקולים אשר משמשים לניתוב פנים ארגוני, משמע הם מחזיקים טבלאות לא גדולות (יחסית) והם מודדים מרחק מנקודה לנקודה בהתאם לפרמטרים שצויינו לעיל, דוגמא לפרוטוקולים אלו הם, OSPF,RIP וכמובן EIGRP.

Exterior Gateway Protocol - EGP
פרוטוקולים אלו אינם משמשים למדידת מרחק מנקודה לנקודה אלא מאפשרים להשפיע על נקודת הכניסה והיציאה מהרשת, פרוטוקולים אלו משמשים את ספקיות האינטרנט על מנת להעביר תעבורה בינהן או לחילופין בין ארגונים גדולים לדוגמא - BGP.

** גם EGP מתחלק ל2 סוגים של תעבורה:
* האחד הוא Transit AS - שהוא בעצם משמש ספקיות אינטרנט בדר"כ.
* או לחילופין Stub AS אשר בדר"כ משמש ארגונים גדולים אשר לא מעבירים דרכם את תעבורת האינטרנט
  אלא משתמשים בו לצרכי הארגון בין הסניפים.

מכאן נמשיך לפרוטוקול שלשמו המאמר - EIGRP

* כפי שציינתי פרוקוטול EIGRP הוא פרוטוקול אשר נמנה עם פרוטוקולי ה-Distance Vector.
  בדומה לפרוטוקול OSPF גם EIGRP ניחן בזמן התכנסות מאוד גבוה ומאפשר חזרה מהירה מקריסה.
  החסרון היחיד של פרוטוקול זה שהוא שייך לסיסקו ולכן ניתן להשתמש בו רק על ציודים של סיסקו.
  מה שסיסקו עשו הם בעצם לקחו את פרוטוקול ה-IGRP ושיפרו אותו ובכך בעצם הפכו אותו לייחודי לסיסקו.

* פרוטוקול זה מוגדר לעבוד בשכבת התעבורה (4) במודל ה-OSI (ראה מאמר קודם),
מספר הפרוטוקול ID שלו בתוך ה-IP Header הוא 88, בנוסף EIGRP מוגדר כפרוטקול אמין Connection Oriented כיוון שהוא מכיל מנגנון ACK משלו, הוא אינו מתבסס על TCP

* EIGRP עובד בכתובת Multicast 224.0.0.10 ליצירת קשרי שכנות ושמירה עליהם, מה שהופך אותו ליעיל ביותר בעת פרסום עדכונים או הקמת קשרי שכנות כיוון שהוא אינו עושה זאת בצורת Broadcast בניגוד לפרוטוקולים אחרים דוגמת RIPV1, יתרון נוסף שקיים לEIGRP הוא שליחת העדכונים רק במצב שקרה משהו לדוגמא רשת נפלה, או שנוסף ניתוב - רק אז EIGRP מוציא עדכון לשכנים מה שנקרא Triggered Updates.

* נוסף על כך פרוטוקול זה מאפשר לבטל את פונקציית ה-Auto Summary ולכן EIGRP
הוא פרוטוקול מסוג Classless משמע הוא מפרסם את ה SM המקורי שהגיע ובכך מאפשר לנו להשתמש ב-VLSM.
במילים פשוטות אם היינו מפרסמים רשת עם SM של 27/ היינו רואים את ה-MASK המקורי ולא את זה של הרשת עצמה.

בקצרה אספר על IGRP:
נתחיל מכך שהוא אינו בשימוש בארגונים יותר, בניגוד ל-EIGRP לא ניתן לבטל את אופציית ה- Auto Summary מה שהופך את IGRP לפרוטוקול מסוג Classfull משמע הוא מפרסם את ה-Class המקורי של הניתוב, לצורך הדוגמא אם לקחנו רשת  10.1.1.0 וחילקנו אותה למספר תתי רשתות, מה שהיה קורה זה שלא משנה לאיזה SM היינו מחלקים הרשת הנתב המרוחק שהיה מקבל את הניתוב היה רואה את הרשת כ- 10.0.0.0/8 דבר שהיה משפיע על הניתוב כיוון שהנתיב מציג את עצמו כאחראי הבלעדי לרשת 10 ולכן לא היינו יכולים למקם אף נתב אחר עם כתובת זו.


נמשיך..

הפעלת פרוטוקול EIGRP היא מאוד פשוטה והיא מתבצעת בפקודה:

Router(config)#router eigrp 1  הספרה 1 מייצגת מספר אוטונומוס סיסטם שחייב להיות דומה בכל הנתבים

אך לפני שאנו ניגשים להסברים איך מפעילים את EIGRP על הממשקים עצמם חובה להכיר מספר תנאים אשר חייבים להתקיים על מנת שיתקיימו קשרי שכנות והם:

1. מספר ה-AS חייב להיות זהה על כל הנתבים.
2. ערכי ה-K-Values (ערכים על-פיהם נקבע הניתוב) חייבים להיות תואמים.
3. כתובת ה-IP חייבת להיות זהה על גבי הממשק - אך אורך ה-SM לא חייב להיות זהה (על בסיס כתובת ה-Primary על גבי הממשק).

* K-Values - ציינתי את ערכים אלו כתנאי ליצירת קשרי שכנות, אז מה זה בעצם K-Values?
נוסחת חישוב ה-Best Route של EIGRP מתבססת על מספר פרמטרים ואלו נקראים K, והם:

Bandwidth
Reliability
Delay
Load
MTU

כאשר לכל ערך יש מיקום בנוסחה, אך חשוב לציין שלא לכל ערך יש משמעות כיוון שלא כולם פעילים בנוסחה.
למעשה סיסקו ממליצה שלא לשנות ערכים אלו כיוון שהם יכולים להשפיע לרעה על ביצועי הנתב.
הערכים שכן נכנסים לנוסחה הם K1 ו- K3 שהם Bandwidth - Delay.
זה מה שנקרא Metric.

אני תמיד הייתי מבלבל בין Administrative Distance ל- Metric, אז ככה להבהרה ה-AD הוא בעצם האמינות של הפרוטוקול ביחס לפרוטוקולים אחרים המספר של EIGRP הוא 90 מבחינת ה-AD, דוגמא אחרת שהיא OSPF ה-AD שלו היא 110, מה שהופך את EIGRP לאמין יותר.
והעניין השני הוא ה- Metric שהוא בעצם החישוב של הפרוטוקול אל היעד, כך זה נראה בטבלת הניתוב:

האדום הוא ה- AD
הירוק הוא ה- Metric.

Router#sh ip route

Gateway of last resort is not set

     10.0.0.0/32 is subnetted, 3 subnets
D       10.1.2.1 [90/130816] via 192.168.1.1, 00:00:06, GigabitEthernet0/0
D       10.1.3.1 [90/130816] via 192.168.1.1, 00:00:06, GigabitEthernet0/0
D       10.1.1.1 [90/130816] via 192.168.1.1, 00:00:06, GigabitEthernet0/0

והחלק הפחות אהוב עליי.. :) הנוסחה לחישוב:

10^7/bandwidth+delay*256=FD

עכשיו אתם בטח שואלים מה זה FD??
אני אסביר...
כפי שהזכרתי למעלה, EIGRP יודע להחזיק 2 נתיבים אל היעד ואפילו להציג אותם בטבלת ניתוב ואפילו יותר מזה גם לעשות בינהם Load-Balance.
ולמה אני מזכיר את זה..
מהסיבה הפשוטה שמה שאנו רואים בטבלת הניתוב נקרא Successor שהוא בעצם הנתיב הטוב ביותר אל היעד- ומה זה הנתיב הטוב ביותר אל היעד, זהו בעצם ה-FD.
 וכפי שציינתי EIGRP יודע להחזיק 2 ניתובים (בעלי Metric זהה או שהוגדרו בפקודת Variance) ולכן הניתוב שלא נבחר לשמש כ- Best Route נקרא Feasible Successor.

FD- מייצג את ראשי התיבות Feasible Distance ובתרגום פשוט מה שזה אומר שהמרחק ממני עד לרשת היעד הוא בעצם מיוצג על ידי ה-FD (כולל כל הנתבים בדרך ליעד).

קיים עוד נתון אשר עוד לא דיברנו עליו והוא ה-AD:

AD- מייצג את ראשי התיבות Administrative Distance ובתרגום מה שאומר AD הוא בעצם המרחק של השכן שאליו אני מחובר אל רשת היעד.

להלן דוגמא שתעזור להמחיש את הקונספט של AD ו FD.


שימו לב שהנתב E השמאלי הוא רשת המקור, היעד שלנו הוא NET X שמקושר לנתב A.
לצורך הדוגמא נבחר את המסלול העליון.
ה-FD שלנו הוא המרחק בין נתב E לנתב A ז"א כל המסלול ולכן הוא גם נקרא Sucssesor.
ה-AD שלנו הוא המרחק בין נתב B לנתב A משמע המרחק של השכן שלנו מרשת היעד.


פרוטוקול EIGRP מחזיק במספר טבלאות ואלו שהופכות אותו להיות דומה לפרוטוקלים מסוג Link State והם:

Neighbor Table - טבלת השכנים, טבלה זו מציגה את כל השכנים המחוברים ישירות אל הנתב דוגמא להצגת השכנים ב-EIGRP בפקודה:

Router#sh ip eigrp neighbors
IP-EIGRP neighbors for process 1
H   Address                 Interface       Hold    Uptime   SRTT RTO  Q  Seq Type
                                                            (sec)                    (ms)          Cnt Num
0   192.168.1.1             Gi0/0             12    00:23:42  120   720    0      2


מה שניתן לראות בפלט מפקודה זו הוא:
1. את השכנים - בכתובת 192.168.1.1
2. האות H מייצגת את המילה Handle משמע סדר השכנים - מי עלה קודם.
3. על איזה ממשק הוא עלה.
4. Hold Time כמה זמן עד שהשכן נחשב כלא פעיל.
5. Up Time כמה זמן השכן למעלה.
6. SRTT - כמה זמן לקח לשכן להגיע ליעד ולחזור.
7. RTO - כמה זמן יש להמתין במידה ולא הגיע פקטה של Hello.
8. Q - כמה פקטות ממתינו ב-Queue.


Routing Table - הטבלה השניה היא כמובן טבלת הניתוב, טבלה זו מכילה את כל הניתובים לרשתות השונות ואת הממשקים המחוברים ישירות לנתב לדוגמא: 
Router#sh ip route

Gateway of last resort is not set

     10.0.0.0/32 is subnetted, 3 subnets
D       10.1.2.1 [90/130816] via 192.168.1.1, 00:30:12, GigabitEthernet0/0
D       10.1.3.1 [90/130816] via 192.168.1.1, 00:30:12, GigabitEthernet0/0
D       10.1.1.1 [90/130816] via 192.168.1.1, 00:30:12, GigabitEthernet0/0
     192.168.1.0/30 is subnetted, 1 subnets
C       192.168.1.0 is directly connected, GigabitEthernet0/0
שימו לב שישנה אות ליד כל ניתוב, האות D מייצגת רשת שנלמדה ע"י EIGRP והאות C מייצגת רשת שמחוברת ישירות לנתב.
 
Topology Table- הטבלה השלישית שקיימת בEIGRP היא טבלת הטופולוגיה, טבלה זו מכילה את כל הניתובים אל כל הרשתות כולל אלו שלא נכנסו לטבלת הניתוב ואלו הם...... זוכרים??

ה-Feasible Successor שהם בעצם הניתוב המשני הטוב ביותר אל היעד.

כך נראית טבלת הטופולוגיה ב EIGRP : 

Router#sh ip eigrp topology
IP-EIGRP Topology Table for AS(1)/ID(192.168.1.2)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 10.1.2.1/32, 1 successors, FD is 130816
         via 192.168.1.1 (130816/128256), GigabitEthernet0/0
P 10.1.3.1/32, 1 successors, FD is 130816
         via 192.168.1.1 (130816/128256), GigabitEthernet0/0
P 10.1.1.1/32, 1 successors, FD is 130816
         via 192.168.1.1 (130816/128256), GigabitEthernet0/0
P 192.168.1.0/30, 1 successors, FD is 2816
         via Connected, GigabitEthernet0/0


מה שאנחנו יכולים ללמוד מהטבלה הזו בעצם זה את כל הרשתות ש EIGRP מכיר, ואם קיימים ניתובים משניים - FS.
האות P משמאל מציינת שהניתוב הוא ב- Passive מה שאומר לנו שהכל תקין, במידה והייתה מופיעה לנו האות A משמע ACTIVE וזה אומר שהניתוב לרשת נפל והנתב מנסה בצורה אקטיבית לחפש דרכים חלופיות.

מה שמביא אותנו אל ה-Packets ש- EIGRP משתמש על-מנת להקים קשרי שכנות ולשמור עליהם ועוד...
והם:

1.Hello- הקמה ותחזוקת קשרי השכנות בין 2 נתבים - עובד בכתובת מולטיקאסט 224.0.0.10 ושולח פקטות של
   Hello כברירת מחדל כל 5 שניות ו-Hold Time כל 15 שניות בקווים מהירים (מעל 1.5M).
2. Update - מייצג עדכון לגבי רשת שנוספה\הוסרה, מייצג את טבלת הניתוב.
3. Query- תהליך תשאול שכנים לגבי רשת שנפלה, במצב זה אנו נראה A בטבלת טופולגיה.
4. Reply- תהליך קבלת תשובה משכן עבור רשת שנפלה.
5. Ack- מה שהופך את EIGRP לפרוטוקול אמין בזכות ה- ACK, עבור כל פקטה ישנו ACK למעט Hello ועל ACK עצמו.

קיים מצב שבו רשת נפלה והנתב מוציא פקטה של Query ע"מ למצוא נתיב חלופי לרשת היעד, כברירת מחדל הנתב ממתין 3 דקות ע"מ לשמוע Query Reply מכל השכנים ולאחר מכן כל קשרי השכנות מתאפסים ומתחדשים.

מצב זה נקרא SIA - Stuck In Active , אפילו שהנתב קיבל Query Reply מאחד השכנים, הוא עדיין ממתין כדי לקבל תגובה מכולם ובטבלת הטופולגיה אנו נראה A על יד הניתוב עצמו.

קיימים פתרונות למצב, וזאת ע"י מניעה מהנתב להוציא Packet של Query, כיוון שאנחנו כמנהלי הרשת יודעים בדיוק לאילו ניתובים ניתן להגיע ואילו נתבים מחזיקים בכל ניתוב וניתוב (ברוב המקרים).

הפתרון הראשון לבעיה זו הוא הגדרת הנתב כ- Stub, נתב שמוגדר כ- Stub בעצם מייצג את הנתב האחרון בשרשרת והוא אינו מכיל עוד נתבים אחריו ולכן אין צורך לתשאל אותו בנוגע לניתובים חסרים.
חשוב לציין שהגדרת Stub מבוצעת בטופולוגיות של Hub-And-Spoke (ראו תמונה).

שימו לב שנתבי A ו-B הם ה-Hub Routers ונתבי C,D,E הם ה-Spoke Routers ולכן מבחינה הגיונית אין צורך לתשאל אותם לגבי רשתות.


הפתרון השני הוא ע"י הגדרת Summary-Address, מה שעושה Summary-Address הוא בעצם מפרסם Supernet אחד כלפי הנתב ששכן מולו, ומה שקורה בעצם זה שהנתב אומר אני מחזיק רק את טווח הכתובות הזה ולא שום רשת אחרת.
היתרון של Summary Address ב- EIGRP הוא שניתן להגדיר אותו על כל נתב ברשת, זאת בניגוד לOSPF שמאפשר להגדיר רק על נתבים אסטרטגיים.

הגדרת Summary Address בפקודה תחת הממשק:

Router(config-if)#ip summary-address eigrp 1 192.168.1.0 255.255.255.240

אחרי שלמדנו את הקונספט הכללי של איך EIGRP עובד נעבור לחלק הסופי של הגדרת EIGRP והוא הפעלתו על הממשק שעליו אנו רוצים שEIGRP ישלח Hello Packets בפקודה: 
מה שאנו עושים בפקודה זו זה בעצם לציין על אילו ממשקים אנו מעוניינים להפעיל את EIGRP, במקרה הזה אני מעוניין להפעילו על הממשק הספציפי שכתובתו היא 192.168.1.1 כיוון שה-WildCard שלי ממוקד ספציפית לממשק זה.

Router(config-router)#network 192.168.1.1 0.0.0.0

הערה:
כאשר אנו משתמשים בפקודת Network נשלחים פקטות באמצעות multicast לכתובת 224.0.0.10.
במצב שאנו עובדים על גבי ענן שלא מאפשר multicast לדוגמא - Frame relay ניתן להתשמש בפקודת Neighbor אשר שולחת פקטות באמצעות unicast.
כתובת 192.168.1.2 מייצגת את השכן המרוחק ואת הממשק דרכו נגיע אליו.

Router(config-router)#neighbor 192.168.1.2 gigabitEthernet 0/0
הערה:
חשוב לבטל Auto-Summary כדי שהרשתות יפורסמו עם ה-MASK שלהם ולא בצורת Classfull.


מקווה שעזרתי לכם להבין איך הפרוטוקול עובד,
אם ישנן שאלות ניתן לשלוח אליי למייל.








15 באוק׳ 2010

EtherChannel Concept & Configuration



שלום לכולם,
אחרי הרבה מאוד זמן שלא כתבתי מאמר בבלוג ולאחר בקשות על הנושא אני מעלה מאמר חדש בנושא EtherChannel,
אז מה זה EtherChannel?

ישנם מנהלי רשתות שמכירים את המושג Bonding או Teaming מעולמות אחרים (מיקרוסופט\לינוקס),
EtherChannel זהו מונח שמשתמשים בו בעולם ה-Cisco שבעצם מאפשר לנו לקחת מספר חיבורי רשת פיזיים כגון:
Fast Ethernet או FiberOptic ולאגד אותם לפורט לוגי אחד.
באגה המקצועית איחוד הפורטים נקרא EtherChannel, דבר זה מאפשר לנו להגדיל את רוחב הפס שלנו מ- 200Mbps
(במידה ומדובר בפורט של Fast Ethetnet Full Duplex 100Mbps ) לעד 16 פורטים- בפרוטוקול דינמי לאיחוד פורטים שנקרא LACP שעליו נדבר בהמשך..
בנוסף לאיחוד הפורטים ולהגדלת רוחב הפס איחוד פורטים מאפשר לנו ביצוע יתירות  (Redundancy) משמע,
כאשר פורט מתוך האיחוד פורטים כשל, שאר הפורטים מאפשרים המשך תעבורה תקינה ללא הפרעה למשתמשים ולתעבורת רשת תקינה.

ל-EtherChannel (אשתמש במושג זה במהלך המאמר) ישנן מספר אפשרויות לביצוע הגדרתו התקינה, 2 מהאופציות הן דינמיות (באמצעות פרוטוקול) ושיטה אחת באופן ידני.

השיטה הראשונה עליה אדבר היא באמצעות פרוטוקול שנקרא
 PAGP -Port Aggregation Protocol,
פרוטוקול זה פותח על-ידי סיסקו ולכן הוא נתמך אך ורק בין ציודי סיסקו.
לפרוטוקול זה ישנם מספר אפשרויות אשר בעת ההגדרה אנו נאלץ להגדיר על מנת ששתי הציודים יבצעו את האיגוד בצורה דינמית והם:
1. Auto- אופציה זו היא דיי ניטרלית, משמע אנו ממתינים להודעות PAGP אשר יגיעו מהצד השני של החיבור
 "ויבקשו" להעלות את ה-Port-Channel (מייד אסביר מה אומר המונח).
** גם לאופציית Auto זו יש 2 תתי אפשרויות שניתן להגדיר תחתיו:
1.1 Auto Non-Silent Mode - במצב שאנו מגדירים Auto על מנת להרים קשרי EtherChannel ניתן להוסיף את
     התוספת Non-Silent מה שאומר לנו שאם לא מגיעות פקטות של PAGP על גבי פורט מסויים
 תרים בכל מקרה את ה- EtherChannel.
1.2 Silent Mode - בהגדרה זו אנו אומרים לא להקמת קשרי איגוד אם לא הגיעו פקטות מסוג PAGP.
2. Desirable- באופציה זו אנו שולחים באופן יזום בקשות אל עבר הצד השני בבקשה להעלות את ה-Port-Channel.
3. No - מה שאומר לנו שהצדדים אינם יקיימו קשרי Etherchannel.

הפרוטוקול השני אשר מאפשר לנו להקים קשרי EtherChannel באופן דינמי הוא:
LACP -Link Aggregation Control Protocol
פרוטוקול זה הוא IEEE 802.3ad זאת אומרת שהוא תקן סטנדרטי וניתן להשתמש בו בכל ציוד ולא בהכרח רק Cisco.
פרוטוקול זה הוא גמיש יותר והוא מאפשר לנו לאגד עד 16 פורטים פיזיים בעוד ש PAGP מאפשר רק 8 פורטים שכולם יכולים להיות פעילים,
נוסף על כך אציין כי לא ניתן להשתמש בכל ה-16 פורטים בו זמנית, 8 יכולים להיות פעילים ו-8 נמצאים במצב של Standby.
פרוטוקול זה גם מכיל בתוכו מספר מצבים להפעלת איחוד הפורטים (דיי דומה ל PAGP) השוני הוא מבחינת טרמינולוגיה והם:
1. Passive - מה שאומר לנו בדומה ל-Auto ב-PAGP אל תקים קשרי EtherChannel אלא אם הצד השני שלח בקשה לכך.
2. Active - בהגדרה זו אנו מגדירים את הפרוטוקול ליזום קשרי EtherChannel.

** על מנת שקשרי האיחוד פורטים יעלה יש אפשרות להגדיר צד אחד למצב של Active וצד שני למצב של Passive ובכך הצד שמוגדר כ-Active יצור את קשרי איחוד הפורטים.
נוסף על כך על אחת כמה וכמה אם 2 הצדדים יוגדרו למצב של Active אזי קשרי האיחוד יעלו ויתבצע קישור.

המצב השלישי עליו אדבר הוא האופציה לא להשתמש בפרוטוקול על מנת להרים קשרי EtherChannel והוא מאוד פשוט:

ON Mode- במצב זה אנו לא משתמשים בפרוטוקול כלשהו ואין לו אופציות אחרות אלא להעלות את קשרי הפורטים (כמובן אם הצד השני מוגדר דומה).

ולפני שנעבור להגדרות (החלק האהוב עליי), לאחר שאיחדנו פורטים יש עוד פרט קטן וחשוב מאוד והוא שיטת ה- Load-Balancing בין הפורטים שאיחדנו.
תחשבו לרגע שכל התעבורה הייתה מגיעה לפורט אחד לא היינו משיגים שום דבר בכך שאיחדנו פורטים, הרי שהמטרה הראשונה שלנו הייתה לאחד פורטים על מנת להרוויח רוחב פס ולכן קיימות מספר שיטות לביצוע Load-Balancing בין הפורטים על מנת לחלק את התעבורה בין הפורטים.

כפי שאנו יודעים מתגים עובדים בשכבה שניה של מודל OSI ולכן רוב האפשרויות שלנו להשתמש ב-Load-Balancing היא באמצעות ה-Source Mac וה-Destenation Mac, אם כי לא כולם יודעים אבל מתג יודע גם "לקלף" את ה-Frame ולבדוק מה יש בתוכו שזה בדרך כלל Packet, מה שמאפשר לנו לבצע את ה-Load Balancing גם עפ"י כתובות IP מקור ויעד שהם נמצאים בשכבה שלישית של מודל ה-OSI.
מתג בודק את ה-PACKET מכל מיני סיבות כגון: QOS, ACL וכו' (על QOS אפרט במאמר אחר.. :) ).
חשוב לציין שיש צורך לבחון את התעבורה באופן אינדיבידואלי בהתאם לרשת ולכן לא אוכל להמליץ על שיטה כזו או אחרת לביצוע LB

נחזור ל-EtherChannel אז אלו השיטות שקיימות לביצוע LB בין הפורטים :

dst-ip Dst IP Addr

dst-mac Dst Mac Addr

src-dst-ip Src XOR Dst IP Addr

src-dst-mac Src XOR Dst Mac Addr

src-ip Src IP Addr

src-mac Src Mac Addr
 
 
ועכשיו נעבור להגדרות...
 
על מנת להתחיל בהגדרות דרושים לנו לפחות 2 פורטים ולכן ניתן להשתמש בפקודת Range על מנת להחיל את ההגדרות בו זמנית על מספר פורטים ( כמובן שניתן להגדיר פורט אחד ולאחר מכן את השני):
 
בפקודה הראשונה אנו נכנס אל הממשקים אותם נרצה לאחד במקרה שלי אלו פורטים GIG0/11-12:
 
2960G(config)#int range gigabitEthernet 0/11 - 12
 
לאחר מכן נקליד את הפקודה הבאה (אני אעתיק את סימן השאלה על מנת שתוכלו לראות אילו אפשרויות קיימות):
שימו לב אילו אפשרויות קיימות תחת הפקודה Channel, האחת היא להגדיר פרוטוקול כפי שהסברתי למעלה והשניה היא להגדיר קבוצה.
במצב זה אדגים את מצב ה-LACP:
 
2960G(config-if-range)#channel-?

channel-group channel-protocol

בפקודה זו אגדיר את הפרוטוקול - LACP :
2960G(config-if-range)#channel-protocol ?
lacp Prepare interface for LACP protocol
pagp Prepare interface for PAgP protocol 


לאחר מכן אגדיר את המצב בו אני מעוניין שקשרי האיחוד יעלו - במקרה זה אציין Active:
שימו לב שאת הפקודה הזו אני מקליד תחת ה-Channel-Group :

2960G(config-if-range)#channel-group 1 mode active


אלו ההגדרות הבסיסיות להקמת קשרי איחוד - חשוב לציין שיש צורך להגדיר את הצד השני באותו אופן.

** לאחר שהגדרתי את הקבוצה ואת הפרוטוקול ניתן לבצע פקודת Show Ip Int Brief ולראות שנוצר לי ממשק נוסף שנקרא Port-Channel 1 והוא נמצא ב-UP הן ב-DATA LINK והן ב-PHYSICAL:

Interface              IP-Address      OK? Method Status                Protocol
Port-channel1          unassigned      YES unset  up                    up     


לאחר מכן על מנת לוודא שקשרי האיחוד בין הפורטים אכן עלו בצורה תקינה ניתן להקליד את פקודת ה-Show הבאה:

2960G#sh etherchannel summary 

וזה הפלט שנקבל - שימו לב למקרא ולאות P ליד הפורטים הפיזיים שאומר שהפורטים נמצאים ב-Port-Channel:

2960G#sh etherchannel summary
Flags: D - down         P - in port-channel
I - stand-alone            s - suspended
H - Hot-standby (LACP only)
R - Layer3 S - Layer2
U - in use f - failed to allocate aggregator
u - unsuitable for bundling
w - waiting to be aggregated
d - default port
Number of channel-groups in use: 1
Number of aggregators: 1
Group Port-channel Protocol Ports

------+-------------+-----------+-----------------------------------------------
1 Po1 (SU) -      Gi0/11(P)     Gi0/12(P)  

 לסיום אראה כיצד מגדירים את ה-LB באיחוד פורטים הפקודה היא :

2960G(config)#port-channel load-balance

** הערה:
עוד חשוב לציין כי כל שינוי שאנו מעוניינים לבצע אם זה להפוך את הפורט ל-Trunk או ל- Access או כל שינוי שהוא ברמת פורט, ניתן לבצעו ברמת ה-Port-Channel וההגדרות יחולו על הפורטים הפיזיים מבלי שנצטרך להכנס לכל ממשק וממשק ולהגדיר.
נוסף על כך אומר כי Port-Channel יכול להתחבר גם בין מתגים שונים וגם בין שרתים (ישנם שרתים שיודעים לבצע פעולת אגרגציה) פעולה זו בשרתים נקראת Teaming/Bonding.
Port-Channel יודע לעבוד בשכבה 2 וגם בשכבה 3 משמע ניתן להגדיר עליו כתובת IP וכל מה שמשתמע מכך.


מקווה שעזרתי,
אם ישנן שאלות אשמח לענות במייל:

ciscobloger@gmail.com




,

26 באפר׳ 2010

Upgrade Cisco AP To LAP


שלום לכולם,
עוד פוסט קצר שמסביר איך לשדרג גרסת IOS ל-Cisco AP או בשמו המוכר יותר Aironet.

עקרונית מי שמכיר את ה-AP של Cisco יודע שהם מגיעים עם גרסת מערכת הפעלה (IOS) אשר ניתן לנהל אותו בצורה רגילה כמו כל IOS או דרך ממשק ה-GUI שלו (ללא Controller).

במידה וקיים בארגון שלכם AP ויש לכם Controller אתם צריכים לשדרג את גרסת ה-IOS שלו מגרסת ה-AP
לגרסת ה-LAP.

איך עושים את זה? שאלה טובה...
כדי לשדרג את הגרסה אנחנו נזדקק למספר דברים והם:

1. כבל קונסול.
2. חובה שה-AP יהיה מחובר לאותו LAN ע"מ להתחבר ל-Controller (החיבור לController מתבצע בצורה אוטומטית
    ע"י Broadcast).
3. כלי העלאה (ניתן להוריד מהאתר של סיסקו או מכאן).
4. יש צורך ב-IOS לשדרוג (קובץ TAR. גם הוא נמצא בלינק מסעיף 3).
5. לאחר שהורדנו את הקבצים הנחוצים, יש למקם את כולם באותה תיקיה.

כעת לשלבים לביצוע,
- ע"מ להתחיל בפעולה דבר ראשון כמו כל מוצר חשמלי, נחבר את ה-AP לחשמל,
  במידה וחיברנו כבל קונסול (סיריאל) נוכל לצפות בתהליך העליה שלו.

שם המשתמש כברירת מחדל הוא Cisco והסיסמה היא Cisco.

- לאחר שה-AP סיים את תהליך העליה אנו ניקח את כתובת ה-IP שהוא קיבל משרת ה-DHCP שלנו בארגון, במידה
  ולא מוגדר כזה אנו נצטרך להגדיר כתובת ידנית ל-AP ,את כתובת ה-IP אנחנו נגדיר כפי שהסברתי בפוסט הקודם.

- לפני שאנחנו מתחילים בתהליך ההעלאה עצמו, יש לוודא שאנחנו יכולים לגשת ל-Controller שלנו ב-Telnet, במידה
  ולא אנחנו נצטרך להגדיר זאת

- לאחר שהגדרנו את כתובת ה-IP אנחנו נפתח את ה-Upload Tool שהורדנו קודם לכן ונמלא את הפרטים הנדרשים:
- IP File - יש לפתוח Notepad ובתוכו יש לרשום בצורה הבאה :
  172.23.2.2Cisco,Cisco,Cisco

* קובץ זה מגדיר לנו את כתובת ה-IP של ה-AP ואת שם המשתמש והסיסמת Telnet וה- Enable על מנת
   שה-Upload Tool יוכל להתחבר ל-AP עם הרשאות מתאימות.

- יש להמשיך למלא את השדות לפי הפרטים שלנו ברשת.

- לסיכום נלחץ על -Start

- בסיום התהליך אנחנו אמורים לקבל הודעה שהתהליך הושלם בהצלחה.

- ה-AP מבצע הפעלה מחדש בצורה אוטומטית ולאחר מכן אנחנו נתחבר ל-Controller ושם נוודא שנוסף לנו עוד AP
  לרשימת ה-AP במסך הראשי של ה-Controller.

הערה:
שימו לב שצעדים אלו מבוצעים בהנחה שיש Controller והוא מוגדר כראוי - שלבים אלו מציינים כיצד לשדרג ולחבר את ה-AP ל-Controller.
- בנוסף נציין עוד 2 דברים:
1. בקונטרולר יש הגבלות לתאימות האקסס פוינט על פי מדינה ולכן חשוב לוודא שהיא אכן קיימת , אחרת גם אחרי שידרוג של הקושחה שלו הוא לא ייעלה עם הקונטרולר.


2. חשוב לציין את הגבלות התאימות של הקושחה של האקסס פוינט לקונטרולר, ז"א קונטרולר עם קושחה מסידרה 4 לא ייקבלו אקסס פוינטים חדשים ה 1140.
לדוגמא ולכן אין טען לשדרג את קושחת האקסס םוינט מאחר והוא לא יתאים לקונטרולר בכל מקרה.

תהנו,
אבי

28 במרץ 2010

NAT



שלום לכולם,
כפי שהבטחתי בפוסטים הקודמים שאני אדבר על NAT, אז הנה מאמר שמסביר את התפיסה של NAT,
מה זה NAT? למה אנחנו צריכים NAT? ומהם הצורות השונות שבהם אנו נשתמש ב NAT?

אז ככה..
מה זה NAT?
בתרגום פשוט - Network Address Translation - תרגום כתובות רשת.
בתחילת דרכו של האינטרנט בוצעה חלוקת כתובות IP ע"י ארגון שנקרא IANA ראשי תיבות (Internet Assigned Numbers Authority), חלוקת הכתובות התבצעה ללא הבחנה ולכל דורש.
לקראת שנות ה-90 עם התפתחות הטכנולוגיה, הבינו בארגון IANA שכתובות ה-IP הולכות ואוזלות וצריך למצוא פתרון אשר יאפשר את המשך השימוש באינטרנט (היום כבר קיים IPv6).

ישבו וחשבו כיצד פותרים את הבעיה המתקרבת והגיעו למסקנה שיש צורך לצמצם את מספר הכתובות הקיימות לכל חברה ולהגדיר כתובת אחת (או Pool) שדרכה יצאו לאינטרנט ובכך יחסכו את הקצאת כתובות ה-IP לכל מחשב\ציוד קצה.
אז מה שהגדירו היה מאוד פשוט - כל חברה\ארגון תקבל כתובת אחת או יותר  ($$$) ובכך תתאפשר היציאה לאינטרנט,

אבל איך עושים את זה?

כפי שציינתי במאמר IP Subnneting בוצע חלוקת ל-Classes אשר הגדירו מהן כתובות פנים ארגוניות (פרטיות) ומהן כתובות חיצוניות (ציבוריות).

תזכורת קצרה לסוגי ה- Classes השונים :

Class A: 0-127.0.0.0

Class B: 128.0.0.0-191.0.0.0

Class C: 192.0.0.0-223.0.0.0

מהן כתובות פרטיות?

10.0.0.0-10.255.255.255

172.16.0.0-172.31.255.255

192.168.0.0-192.168.255.255

אחרי שהבנו את המשמעות של NAT, בואו נבין את הסוגים.
אז ככה...
- הסוג הראשון עליו נדבר הוא Static Nat,
Static Nat משמש למיפוי כתובת חיצונית לכתובת פנימית ולהפך - אם אני רוצה שמחשב מסויים ברשת ייראה לעולם ככתובת ציבורית אזי אני מגדיר למחשב לצאת עם כתובת חיצוניות וזו קבועה ואינה משתנה.

- הסוג השני שבו אנו נשתמש לעתים קרובות יותר הוא נקרא PAT - Port Address Translation
חשוב לציין שאנו משתמשים ב-PAT כאשר אנו מעוניינים להגדיר כתובת IP אשר תמפה שרת אשר מספק שירות מסויים לדוגמא :
שרת דואר, שרת WEB או כל שרת אחר יש צורך במיפוי ה-Port מהכתובת הציבורית אשר העולם פונה אליה אל הכתובת הפנימית אשר עליה ממוקם השירות המבוקש,

לדוגמא:
אם יש לי שרת דואר (Exchange) בארגון ואני מעוניין שתהיה גישה אליו משרתי דואר אחרים אני מבצע את המיפוי הסטטי בצורה הבאה :

212.235.111.15:25-----> 192.168.2.10:25

מה שהגדרתי פה בעצם זה שכל מי שפונה לכתובת IP 212.235.111.15 בפורט 25 בעצם ממופה לכתובת פנים ארגונית שהיא 192.168.2.10 בפורט 25.

במילים אחרות כל ההגדרה שביצעתי כאן נקרא PAT, שזה בתרגום פשוט מיפוי פורטים - Port Address Translation.

נמשיך..

הצורה הבאה שבה ניתן להשתמש ב-Nat היא כאשר יש לנו Pool של כתובות IP אשר רכשנו מבעוד מועד מספקית האינטרנט שלנו,
מה שאחנו יכולים להגדיר הוא בעצם במקום לצאת עם כתובת אחת ולהעמיס עליה - זאת ע"י הוספת מתג ה-Overload לסוף הפקודה, ניתן להגדיר Pool של כתובות אשר יאפשר לנו לבצע זה (כמובן שכאשר אני מדבר על Pool כתובות, אני מתכוון לציבוריות).

ואחרי התאוריה, נעבור לחלק המעניין :) ההגדרות בסיסקו שלנו:

אז איך אנחנו מגדירים NAT:

- תחילה עלינו לזהות את המתאמים, כלומר מי מבצע NAT פנימי ומי מבצע NAT חיצוני.
 את הזיהוי אנו מבצעים כפי שציינתי - תחת המתאם:

יש להכנס אל המתאם הרצוי, לדוגמא את Vlan1 המשמש לפנים הרשת נגדיר בפקודה הבאה:

R1(Config)# int vlan1

R1(Config)# ip nat inside

לאחר מכן נגדיר את המתאם החיצוני, במקרה שלנו חייגן PPPOE:

R1(Config)# int dialer 1

R1(Config)# ip nat outside

בכך הגדרנו אילו מתאמים יבצעו NAT החוצה ואילו מתאמים יבצעו NAT פנימה.

לאחר מכן אנו צריכים להגדיר ACL-Access List (על ACL נרחיב בפוסטים הבאים) תפקידו של ה ACL בדרך כלל הוא לחסום או לאפשר גישה.
במקרה שלנו היום כאשר אנחנו מגדירים NAT אני קובעים בעצם למי אנחנו נבצע NAT ולמי לא.

אז נגדיר ACL בפקודה הבאה :

R1(Config)# Ip access list standard Nat_Addresses

R1(config-ext-nacl)#permit 172.30.30.0 0.0.0.255

R1(config-ext-nacl)#permit 10.10.10.0 0.0.0.255

כעת הגדרנו ACL אשר מאפשר ל-2 רשתות לגשת לאינטרנט ולהיות מתורגמות לכתובות חיצוניות.

מה שנותר לנו זה להגדיר את ההגדרות של ה-NAT עצמו וזאת בצורה הבאה:

R1(config)# ip nat inside source list Nat_Addresses interface Dialer1  overload

ועכשיו בתרגום לעברית , מה אומרת לנו הפקודה משמאל לימין -
ip nat - הגדר NAT
inside - מבפנים החוצה
list - בהתאם ל ACL שהגדרנו מראש שנקרא Nat_Addresses
Dialer1 - דרך החייגן\החיבור לספקית האינטרנט.
overload- תאפשר למספר כתובות לצאת על גבי כתובת אחת.

עכשיו אני אדגים כיצד לבצע NAT כאשר רכשנו מספר כתובות IP חיצוניות (Pool).

תחילה נגדיר את ה-Pool של הכתובות שרכשנו.

R1(config)#ip nat pool Nat_Pool 10.41.10.1 10.41.10.41 netmask 255.255.255.0


כעת נגדיר ACL לכתובות פנימיות שיתורגמו לכתובות שיצרנו בהגדרת ה-NAT למעלה.

R1(config)#access-list 100 permit ip 10.3.2.0 0.0.0.255 any
 
כעת מה שנותר הוא להחיל את ההגדרות בפקודה הבאה:
 
Router(config)#ip nat inside source list 100 pool Nat_Pool interface Dialer1 overload

ולסיכום אני רוצה להדגים פקודות One To One Nat כלומר מיפוי של כתובת Ip חיצונית לפנימית ולהיפך:

R1(config)#ip nat inside source static 10.3.2.11 10.41.10.12

והגדרת PAT שזהו אותו מיפוי רק עם מספר פורט - כפי שציינתי , כאשר יש לנו שרת שנותן שירות מסויים ואנו מעוניינים למפות כתובת לפורט ספציפי.

R1(Config)#ip nat inside source static tcp 212.235.111.15 80 172.16.10.8 80

מה שהגדרתי בפקודה זו בעצם ממפה לנו את פורט 80 מכתובת חיצונית 212.235.111.15 לכתובת פנימית 172.16.10.8 לפורט 80, שזה שרת ה-Web הפנימי.

לסיכום,
כל נושא ה-NAT הוא נושא מאוד פשוט,
צריך רק להבין את התפיסה הכללית של למה אנחנו משתמשים ב-NAT.

כמו בכל פוסט, אם יש לכם שאלות אתם מוזמנים לפנות אליי במייל.

מקווה שהחכמתם.

חג שמח
אבי


14 במרץ 2010

מסמכי CCNP-Route 642-902

שלום לכולם,
לאחרונה כתבתי מספר מסמכים באנגלית שמתאימים לרמת CCNP.
המסמכים מתייחסים לפרוטוקולי ניתוב דינמיים כגון, OSPF,BGP,IS-IS,EIGRP וניתוב מתקדם.
המסמכים מכילים חומרים טכניים בנוגע נושאים שציינתי לעיל, הם ברמה קצת יותר מתקדמת מאשר הפוסטים בעברית ולכן אני מעלה את הקישורים להורדה ומי שמעוניין יוכל להנות מהחומר...
תפיצו לכמה שיותר חברים.. :)


אז ככה...
- הלינק הראשון הוא מסמך המתייחס לכל הפקודות וההגדרות והתפיסה הכללית של פרוטוקול הניתוב הדינמי Ospf.
להודדת המסמך לחץ כאן.

- המסמך השני מתייחס במאמר מפורט על כל ההגדרות והבנת פרוטוקול הניתוב Eigrp.
להורדת המסמך לחץ כאן.

- המסמך השלישי אינו מתייחס לפרוטוקול ניתוב דינמי אלא להגדרות ניתוב באופן כללי, שוב.. ברמת CCNP.
להורדת המסמך לחץ כאן.

- מסמך זה מתייחס לפרוטוקול הניתוב מסוג IS-IS, שהוא פרוטוקול מסוג Link State,
להורדת המסמך לחץ כאן.
- המסמך האחרון שכתבתי בנושא BSCI, שהוא הפרק הראשון בסדרת ה-CCNP מתייחס לפרוטוקול הניתוב האחרון והוא
  כמובן BGP.

להורדת המסמך לחץ כאן.

בכל שאלה שצצה אל תהססו לשלוח אליי מייל לכאן


תהנו :)

8 במרץ 2010

Cisco's World


שלום לכולם,
עוד מאמר בנושא Networking והפעם אני רוצה לדבר על החברה המובילה בעולם בתחום התקשורת
והיא כמובן Cisco.

למה Cisco הפכה להיות שם דבר בעולם התקשורת? מה הופך את Cisco להיות הכי טובה ולשלוט בשוק?
לצורך ההבהרה, אני לא איש מכירות ואני גם לא עובד בסיסקו (למרות שזו אופציה נחמדה :-) )
מטרתו של פוסט זה היא להכיר את התכונות הבסיסיות של ה-IOS (מערכת ההפעלה של סיסקו), פקודות בסיסיות ומצבים בנתב\מתג.
אז נתחיל..
מה הופך את הנתבים של סיסקו לטובים ולמוכרים ביותר?
זאת כמובן ה-IOS, אחת הסיבות העיקריות אשר הביאו את סיסקו להיות מובילה בתחומה היא מערכת ההפעלה שלה.
כל מי שמכיר (CLI - (Coצבע טקסטmmand Line Interface יודע שהאפשרויות לניהול והגמישות בפקודות גדולה יותר מאשר ניהול ממשקים ב-(GUI - (Graphic User Interface
מערכת ההפעלה שלה איפשרה ניהול קל ופשוט ואפשרויות גדולות יותר בביצועים.
מעבר לכך ישנו את הפן החומרתי שגם בו אנחנו צריכים להתחשב, כל רכיב חייב מעבד כדי לבצע את כל החישובים כמובן, זכרון, ולוח – כל אלו יצרו שם לסיסקו שאין שני לו.
קצת על רכיבי החומרה שנמצאים בתוך הנתב:

Rom: רכיב זה מאכסן בתוכו את תוכנת ה-POST Power On Self Test(בדיוק כמו במחשבים).
Ram: זהו זכרון נדיף (נמחק בעת כיבוי הנתב) אשר טוען לתוכו את ה-IOS ואת קובץ הקונפיגורציה, כמו כן הוא מאכסן בתוכו את טבלאות ה-ARP ואת טבלאות הניתוב (על ניתובים נדבר בפוסט הבא) הוא שומר בתוכו את קבצי ה-Running Config.
Nvram: זהו זכרון שאינו נדיף (אינו נמחק בעת כיבוי הנתב) הוא משמר לאחסון קבצי הקונפיגורציה לאחר שמירתם, שומר בתוכו את ה-Startup Config.
Flash: זהו זכרון הבזק אשר מאכסן בתוכו את ה-IOS בצורה מכווצת, בעת עליית הנתב וטעינת התוכן אל תוך ה-RAM הוא מבצע Decompress.
Buses: אלו הם אפיקי העברת המידע בין המעבד אל הרכיבים השונים בלוח כגון Ram, Nvram וכו'...

אני לא יודע למי מכם יצא לפתוח אריזה של סיסקו עם מוצר חדש, נתב\מתג או כל דבר אחר..
מלבד הכיף שבדבר.. עם האריזה מגיעים הרכיבים הבאים:

- כבל קונסול.
- דיסק הוראות \ תוכנה לניהול בממשק גרפי (SDM\(ASDM.
- כבל רשת.

אחרי שפתחנו את האריזה..ונהנינו.. מה עכשיו?
לנתב\מתג קיימים מספר חיבורים אשר באמצעותם ניתן להתחבר ולנהל את המוצר, בהנחה שהמוצר חדש מהאריזה אנחנו נאלץ לבצע שימוש ראשוני רק דרך כבל ה-Console שהוא גם נקרא (Rollover Cable) וזאת מכיוון שלמוצר שלנו אין עדיין כתובת IP ואנחנו לא יכולים לנהל אותו דרך הרשת אז אנחנו משתמשים בכבל קונסול.

קיימים עוד מספר סוגים של כבלים אשר במידת הצורך נבצע בהם שימוש והם:

- כבל רשת רגיל מסוג RJ45 שנקרא גם Straight,משמש לחיבור ציוד קצה כגון מחשבים ומתג.
- כבל רשת מוצלב גם הוא מסוג RJ45 שנקרא גם Crossover לחיבור ציוד מאותו תוצרת, משמע ראוטר לראוטר, מחשב ולמחשב וכו'..
במקרה שלנו ,כפי שציינתי, אין לנו כתובת IP לכן אנו נחבר את הכבל אל הכניסה הכחולה מאחורי הנתב ובקצהו השני לחבר את הכבל לחיבור סיריאלי (Com) למחשב, מכאן נותר לנו לפתוח תוכנה אשר באמצעותה נוכל להתחבר למוצר ולנהל אותו. בתוך ה-Windows קיים כלי מובנה אשר נקרא Hyper Terminal למי שלא מכיר ולא השתמש אף פעם הוא נמצא בתוך:


Start—Programs—accessories—Communications—Hyper Terminal .

על מנת שהחיבור יעבוד בצורה תקינה ב- Hyper Terminal אנו צריכים לוודא שההגדרות עומדות על:

Flow Control 9600,8,No parity ,1 stop, no

קיימות בשוק תוכנות קצת יותר נוחות לעבודה כגון:

Putty
TeraTerm


כעת, מה שנותר לנו זה להדליק את הנתב ולצפות בתהליך העליה שלו, כפי שציינו מוקדם יותר המערכת מבצעת Decompression ל-IOS אשר ממקומם בתוך ה-Flash אל רכיב ה-Ram.
לאחר שמערכת ההפעלה עלתה מופיעה לנו הודעה אשר אומרת אם אנחנו מעוניינים להשתמש ב-Wizard על מנת לבצע הגדרה ראשונית למוצר (נתב\מתג). מנהלי רשתות ואנשי GUI בדרך כל יעדיפו את הדרך הזו, במיוחד על מי שאינו בקיא בנושא ה-CLI בסיסקו כיוון שתהליך זה מלווה אותנו במהלך ההגדרה הראשונית של הממשקים השונים, שם לנתב וסיסמאות.
אני באופן אישי וממליץ לכולכם ללחוץ NO על האשף ולהתקדם ובצע קונפיגורציה ידנית- גם כי זה עוזר ללימוד העצמי וגם כדי לתרגל ולהתרגל לשימוש בפקודות.
אז, לאחר שהנתב\מתג עלה מה שנותר לנו להבין איפה אנחנו נמצאים מבחינת רמות הרשאה וביצוע פעולות.
נתבי (וכשאני אומר נתבי אני מתכוון גם למתגים) מחולקים לכמה רמות של פקודות משמע, לא ניתן לבצע פקודות מסויימות מבלי להיות שם תחת אותו שורת Prompt.
עכשיו אני אסביר.. הרמות מתחלקות לכמה מצבים והם מוצגים לנו במספר סימנים אשר באמצעות ניתן לזהות היכן אנחנו נמצאים, עם הזמן והתרגול אתם תזכרו מה אומר כל סימן ואילו פעולות ניתן לבצע,

בואו נעבור על כמה מהמצבים הבסיסיים, כאשר אנו רואים את הסימנים הבאים:

R1 - מצב זה נקרא User Mode והוא מאפשר לנו ביצוע בדיקות תקשורת בסיסיות כגון: Ping,Traceroute וכו..
על מנת להגיע למצב זה אנחנו לא נדרשים בהקשת סיסמה כיוון שמצב זה מוגבל.







R1#- על מנת להגיע למצב זה אנו צריכים להקיש פקודת Enable או בקיצור En , למצב זה קוראים Exec Mode וכדי להגיע למצב זה אנו נדרשים להקיש סיסמה (אם הגדרנו), מצב זה הוא בעל הרשאות לצפיה בהגדרות הנתב.

#(R1 (config - מצב זה הוא מצב אשר אליו אנחנו נכנסים על-ידי הקשת פקודת Configure Terminal או
בקיצור conf t, מצב זה מאפשר לנו ניהול גלובלי של הנתב, ביצוע פעולות גורפות אשר משפיעות על הנתב כולו.
כלה בהגדרת DHCP, CDP, פרוטוקולי ניתוב סטטיים ודינמיים – בעצם כל ההגדרות החשובות נעשות מהמצב הגלובלי.

קיימים עוד מספר מצבים אשר נעבור עליהם בקצרה:
#(R1(config-line - מצב זה מאפשר לנו להגדיר את ממשק הקונסול וה-VTY.

#(R1(config-if- במצב זה אנחנו נמצאים תחת ממשק מסויים כגון Ethernet .

#(R1(config-subif- במצב זה אנחנו מגדירים תתי ממשקים וירטואלים על ממשק פיזי אחד.

כעת אני רוצה להסביר קצת על נושא ההשלמה האוטומטית של פקודות בממשק הנתב, ראשית נאמר שכל פקודה ניתן להשלים בצורה אוטומטית על-ידי הקשה על מקש TAB לדוגמא:
Conf t

הפקודה המלאה היא Configure Termial - וזאת על מנת להכנס להגדרות גלובליות על הנתב.
עכשיו מדוע אנחנו רושמים Conf t ולא את הפקודה המלאה?
זאת מכיוון שכתבנו מספיק אותיות אשר מייחדות את הפקודה, משמע אין עוד פקודה שמתחילה ב conf,
לאחר מכן שרשמנו את האות t ויכולנו להמשיך מבלי לרשום את המילה Terminal כיוון שאין עוד אופציה שמתחילה באות t.
לכן יכולנו להמשיך מבלי לרשום את הפקודה המלאה,

שימו לב שבמידה ואנחנו מעוניינים לצפות ברשימת הפקודות תחת הפקודה conf (או כל פקודה אחרת) ניתן פשוט לרשום סימן שאלה וכל האופציות יפתחו לנו מתחת אשר קשורות לאות או לפקודה שרשמנו.
בואו נראה דוגמא לביצוע סימן שאלה תחת הפקודה show שנמצאת ב-Privilege Mode כפי שציינו קודם לכן (פקודות show ניתן לבצע רק ממקום זה).



? R1#show
aaa Show AAA values
access-expression List access expression
access-lists List access lists
accounting Accounting data for active sessions
adjacency Adjacent nodes
aliases Display alias commands
alignment Show alignment information
appfw Application Firewall information
archive Archive of the running configuration information
arp ARP table
ase Display ASE specific information
async Information on terminal lines used as router interfaces
auto Show Automation Template
backup Backup status
beep Show BEEP information
bfd BFD protocol info
bridge Bridge Forwarding/Filtering Database [verbose]
buffers Buffer pool statistics
call Show call
caller Display information about dialup connections
cca CCA information
cdapi CDAPI information
--More--

טיפ!

ניתן להוסיף את המילה do לפני כל פקודה אשר אמורה לפעול רק ממצבים שהם לא Exec Mode, מה שאומר לנו בכל מצב אחר אם זה Conf T או תחת הממשקים שונים אזי יש צורך לכתוב את המילה do לפני הפקודה עצמה ודבר זה יאפשר לנו להקליד את הפקודה מכל מיקום.

אז מה אנחנו רואים אחרי שרשמתי את פקודת ? show

אנו רואים את פקודות הצפיה שאנחנו יכולים לבצע על מנת לצפות בהגדרות וכו'..

על מנת לחזור אחורה שלב אחד, לדוגמא אנחנו נמצאים ב- (R1(config ואנחנו מעוניינים לחזור שלב אחד אחורה ל-R1# אנו יכולים לכתוב את הפקודה exit, או לחילופין אנו יכולים ללחוץ Ctrl Z.

עוד על רשימת התגובות מה-IOS של סיסקו, כאשר אנו מקבלים את הפלטים הבאים-מה זה אומר?

- Unrecognized Command-במידה והקלדנו פקודה שאינה קיימת.

- Incomplete Command- במידה והקלדנו פקודה חלקית ולא סיימנו להקליד.

- Invalid Input- פקודה שקיימת בה שגיאת כתיב.

- Ambiguous Command -כאשר אנו מקלידים פקודה ולא הקלדנו מספיק אותיות ויכולות להיות מספר משמעויות.

- כאשר אנחנו רואים את הסימן $ בסוף משפט - אומר שיש המשך למשפט וצריך ללחוץ Ctrl E ע"מ להגיע לסוף המשפט כמו כן ניתן להקליד Ctrl A על-מנת לחזור לתחילת הפקודה.

כעת נעבור עלהגדרות גישה ראשוניות לציוד סיסקו:

כאמור, במידה ורכשנו ציוד חדש הוא אינו מגיע עם כתובת IP מוגדרת או סיסמה כלשהי, לכן אנו נבצע את הפעולות על מנת לאפשר גישה ראשונית לציוד מרחוק ולא באמצעות חיבור הקונסול, איך אנחנו עושים את זה?

תחילה נגדיר את ה-Vlan הראשון שלנו, שהוא בעצם ה-Native Vlan, מה שאומר שכברירת מחדל כל הפורטים מקושרים ל-Vlan הזה ולכן הוא גם יהיה המקור אליו אנו מתחברים בחיבור Telnet/Ssh.


מה זה Vlan אתם שואלים?
אז ככה בקצרה...

Vlan בתרגום הוא Virtual Lan מה שאומר שזו רשת LAN וירטואלית, משמע אנחנו לא משתמשים בממשק פיזי ומקצים לו כתובות IP וכו'.. זהו בעצם ממשק וירטואלי אשר משמש להפרדת רשתות ללא שימוש בממשקים פיזיים כגון: Fast Ethernet, Ethernet,Fiber וכו'..

את ההגדרה עבור ה-Vlan נבצע בצורה הבאה:

1. נכנס לממשק ה-Vlan בפקודה: R1(config)#interface vlan 1

2.לאחר מכן ניגש להגדיר את כתובת ה-IP בה אנו מעוניינים להשתמש בפקודה:

255.255.255.0 R1(config-if)#ip addrees 172.16.2.1

3. בשלב זה נפעיל את הממשק (במידה והוא כבוי) על-ידי פקודת :

R1(config-if)#no shut

שימו לב!
על מנת לבטל פעולה כלשהי בסיסקו אנחנו צריכים להקליד את המילה no לפני הפקודה, הניגוד של הפקודה בעצם מבטל אותה.
אז בדוגמה שהייתה לנו כאן הגדרתי ל-Vlan לעבור ממצב Shutdown למצב No Shutdown - שזה דלוק.


לאחר מכן, נגדיר את ממשקי ה-VTY נבצע בשלבים הבאים:

1. בשלב ראשון נכנס לממשק ה-VTY בצורה הבאה R1(config)#line vty 0 4

2.בשלב שני נגדיר שבכל גישה לממשק ב-VTY נתבקש לבצע לוגין בפקודה הבאה: R1(config)#login
3.בשלב שלישי נגדיר סיסמה על מנת שבכל לוגין נתבקש להגדיר סיסמה בפקודה R1(config)#password 123456

אלו ההגדרות גישה הראשוניות עבור מתג\נתב של סיסקו.
המאמר מכיל תמצית שבתמצית מפקודות ה-IOS של סיסקו, אם יש לכם שאלות נוספות
תמיד ניתן לפנות אליי במייל ואני אשמח לענות.





אבי