Menu

11/26/18

Routing

Static vs. Dynamic Routing -

There are two basic methods of building a routing table:

  • Static Routing
  • Dynamic Routing

A static routing table is created, maintained, and updated by a network
administrator, manually. A static route to every network must be configured
on every router for full connectivity. This provides a granular level of
control over routing, but quickly becomes impractical on large networks.
Routers will not share static routes with each other, thus reducing
CPU/RAM overhead and saving bandwidth. However, static routing is not
fault-tolerant, as any change to the routing infrastructure (such as a link
going down, or a new network added) requires manual intervention. Routers
operating in a purely static environment cannot seamlessly choose a better
route if a link becomes unavailable.

Static routes have an Administrative Distance (AD) of 1, and thus are always
preferred over dynamic routes, unless the default AD is changed. A static
route with an adjusted AD is called a floating static route, and is covered in
greater detail in another guide.

A dynamic routing table is created, maintained, and updated by a routing
protocol running on the router. Examples of routing protocols include RIP
(Routing Information Protocol), EIGRP (Enhanced Interior Gateway
Routing Protocol), and OSPF (Open Shortest Path First). Specific dynamic
routing protocols are covered in great detail in other guides.
Routers do share dynamic routing information with each other, which
increases CPU, RAM, and bandwidth usage. However, routing protocols are
capable of dynamically choosing a different (or better) path when there is a
change to the routing infrastructure.

Do not confuse routing protocols with routed protocols:
• A routed protocol is a Layer 3 protocol that applies logical
addresses to devices and routes data between networks (such as IP)
• A routing protocol dynamically builds the network, topology, and
next hop information in routing tables (such as RIP, EIGRP, etc.)

The following briefly outlines the advantages and disadvantages of static
routing:

Advantages of Static Routing

  • Minimal CPU/Memory overhead
  • No bandwidth overhead (updates are not shared
  • between routers)
  • Granular control on how traffic is routed
  • Infrastructure changes must be manually adjusted
  • No “dynamic” fault tolerance if a link goes down
  • Impractical on large network
Advantages of Dynamic Routing
  • Simpler to configure on larger networks
  • Will dynamically choose a different (or better) route if a link goes down
  • Ability to load balance between multiple links
  • Updates are shared between routers, thus consuming bandwidth
  • Routing protocols put additional load on router CPU/RAM
  • The choice of the “best route” is in the hands of the routing protocol, and not the network administrator
Distance-vector Routing Protocols

All distance-vector routing protocols share several key characteristics:

• Periodic updates of the full routing table are sent to routing
neighbors.
• Distance-vector protocols suffer from slow convergence, and are
highly susceptible to loops.
• Some form of distance is used to calculate a route’s metric.
• The Bellman-Ford algorithm is used to determine the shortest path.

A distance-vector routing protocol begins by advertising directly-connected
networks to its neighbors. These updates are sent regularly (RIP – every 30
seconds; IGRP – every 90 seconds).

Neighbors will add the routes from these updates to their own routing tables.
Each neighbor trusts this information completely, and will forward their full
routing table (connected and learned routes) to every other neighbor. Thus,
routers fully (and blindly) rely on neighbors for route information, a concept
known as routing by rumor.

There are several disadvantages to this behavior. Because routing
information is propagated from neighbor to neighbor via periodic updates,
distance-vector protocols suffer from slow convergence. This, in addition to
blind faith of neighbor updates, results in distance-vector protocols being
highly susceptible to routing loops.

Distance-vector protocols utilize some form of distance to calculate a
route’s metric. RIP uses hopcount as its distance metric, and IGRP uses a
composite of bandwidth and delay.

Dynamic Routing Categories

Link-state routing protocols were developed to alleviate the convergence
and loop issues of distance-vector protocols. Link-state protocols maintain
three separate tables:

Neighbor table – contains a list of all neighbors, and the interface
each neighbor is connected off of. Neighbors are formed by sending
Hello packets.
Topology table – otherwise known as the “link-state” table, contains
a map of all links within an area, including each link’s status.
Shortest-Path table – contains the best routes to each particular
destination (otherwise known as the “routing” table”)

Link-state protocols do not “route by rumor.” Instead, routers send updates
advertising the state of their links (a link is a directly-connected network).
All routers know the state of all existing links within their area, and store
this information in a topology table. All routers within an area have identical
topology tables.

The best route to each link (network) is stored in the routing (or shortestpath)
table. If the state of a link changes, such as a router interface failing,
an advertisement containing only this link-state change will be sent to all
routers within that area. Each router will adjust its topology table
accordingly, and will calculate a new best route if required.

By maintaining a consistent topology table among all routers within an area,
link-state protocols can converge very quickly and are immune to routing
loops.

Additionally, because updates are sent only during a link-state change, and
contain only the change (and not the full table), link-state protocols are less
bandwidth intensive than distance-vector protocols. However, the three
link-state tables utilize more RAM and CPU on the router itself.

Link-state protocols utilize some form of cost, usually based on bandwidth,
to calculate a route’s metric. The Dijkstra formula is used to determine the
shortest path.

OSPF

Routing OSPF

Open Shortest Path First (OSPF) được phát triển bởi Internet Engineering Task Force (IETF) như một sự thay thế những hạn chế cũng như nhược điểm của RIP.

OSPF là một link state protocol, như tên gọi của mình nó sử dụng thuật toán Dijkstra'’ Shortest Path First (SPF) để xây dựng routing table và open nói nên tính phổ biến của nó. OSPF đã được John Moy đưa ra thông qua một số RFC, gần đây nhất là RFC 2328.

Giống như các link state protocol, OSPF có ưu điểm là hội tụ nhanh, hỗ trợ được mạng có kích thước lớn và không xảy ra routing loop. Bên cạnh đó OSPF còn có những đặc trưng sau:

Sử dụng area để giảm yêu cầu về CPU, memory của OSPF router cũng như lưu lượng định tuyến và có thể xây dựng hierarchical internetwork topologies.

Là giao thức định tuyến dạng clasless nên hỗ trợ được VLSM và discontigous network.

OSPF sử dụng địa chỉ multicast 224.0.0.5 (all SPF router) 224.0.0.6 (DR và BDR router) để gửi các thông điệp Hello và Update.
OSPF còn có khả năng hỗ trợ chứng thực dạng plain text và dạng MD5.
Sử dụng route tagging để theo dõi các external route.
OSPF còn có khả năng hỗ trợ Type of Service.

1. Thuật ngữ

Router ID:

Chính là địa chỉ IP cập nhật của loopback interface.

Nếu không có loopback interface được cấu hình thì Router ID sẽ là địa chỉ cập nhật của physical interface.

Người ta sử dụng địa chỉ loopback vì 2 nguyên nhân sau:

Loopback interface ổn định hơn bất kỳ physical interface nào. Và nó luôn luôn active khi router hoạt động, chỉ fail khi toàn bộ router fail.

Người quản trị mạng điều khiển hoạt động của OSPF trong quá trình bình bầu DR và BDR.

Designated Router (DR): Để ngăn chặn tình trạng storm LSA trong multi-access network một DR được bầu ra trong multi-access network. DR có những nhiêm vụ sau:

Đại diện cho multi-access network và gắn bó với phần còn lại internetwork.

Để quản lý quá trình flood xử lý trên multi-access network.

Backup Designated Router (BDR): một vấn đề quan trọng với sự xắp xếp DR là khi DR bị fail, một new DR phải được xác định. Adjacency mới phải được thiết lập lại và tất cả Router trên mạng phải đồng bộ lại database của chúng với new DR. Trong suốt quá trình này thì mạng không gửi dữ liệu được.

Để ngăn chặn điều này người ta đưa ra khái niệm BDR. Tất cả các router không chỉ thiết lập adjacency với DR mà còn với BDR. Nếu DR bị fail thì BDR sẽ trở thành DR mới mà không ph3ai đồng bộ lại database của chúng.

2. Operation of OSPF

Hoạt động của OSPF có thể tóm tắt trong 7 bước sau:

Các OSPF-speaking router gửi các Hello packet ra tất cả các OSPF-enable interface. Nếu 2 router sau khi trao đổi Hello packet và thoả thuận một số thông số chúng sẽ trở thành neighbor.

Adjacency có thể được tạo qua virtual point-to-point link hay được tạo qua một vài neighbor. OSPF định nghĩa ra một số loại network và một số loại router. Sự thiết lập một adjacency được xác định bởi loại router trao đổi Hello và loại network mà Hello trao đổi qua.

Mỗi router gửi các link state advertisement (LSA) qua tất c adjacency. LSA mô tả tất cả các interface của router (link) và trạng thái của link. Các link này có thể là stub network, tới OSPF router khác, tới network trong cùng một area, tới external network. Do có rất nhiều loại link state information cho nên OSPF định nghĩa ra đến 11 loại LSA.

Mỗi router nhận một LSA từ neighbor với link state database của neighbor đó và gửi một copy của LSA tới tất cả neighbor khác của nó.

Bằng cách flooding các LSA toàn bộ một area, tất cả router sẽ xây dựng chính xác link state database.

Khi database được hoàn tất, mỗi router sử dụng thuật toán SPF để xây dựng nên SPF tree.

Mỗi router sẽ xây dựng nên routing table từ SPF tree.

2.1. Neighbor và Adjacency

Trước khi bất kỳ LSA nào được gửi, OSPF router phải khám khám phá neighbor của chúng và thiết lập adjacency. Các neighbor sẽ được ghi lại vào trong neighbor table, cùng với link (interface) mà trên đó neighbor được định vị và thông tin cần thiết để duy trì neighbor.

a/ Hello protocol

Hello protocol có đặc trưng sau:

Nó là cách thức mà neighbor được khám phá.
Nó quảng bá một vài thông số mà qua đó 2 router phải đồng ý trước khi chúng trở thành neighbor.

Hello packet hoạt động giông như keepalive giữa các neighbor.
Đảm bảo thông tin 2 chiều giữa các neighbor.
Bình bầu DR và DBR đối với môi trường multiaccess.

OSPF-speaking router đều đặn gửi Hello packet ra tất cả OSPF-enable interface. Khoảng thời gian này gọi là HelloInterval, mặc định khoảng thời gian này là 10 giây và ta có thể thay đổi nó. Nếu router không nhận được Hello từ neighbor sau khi hết thời gian RouterDeadInterval (gấp 4 lần HellInterval) nó sẽ công bố neighbor bị down.

b/ Network types

OSPF định nghĩa 5 loại network:

Point-to-point network: như là T1 hay subrate link kết nối một cặp router. Valid neighbor trên point-to-point network luôn luôn trở thành adjacency. The destination address của OSPF packet luôn luôn là địa chỉ 224.0.0.5.

Broadcast network: như là Ethernet, Token Ring và FDDI. Broadcast network là multi-access trong đó có khả năng kết nối nhiều hơn 2 thiết bị và chúng là broadcast có nghĩa là tất cả các thiết bị có thể nhận được gói tin khi chỉ có một gói được truyền một lần. OSPF router trên broadcast network sẽ bình bầu DR và BDR sẽ được đề cập trong phần sau.

NBMA network: như là X.25, Frame Relay và ATM. Chúng có khả năng kết nối nhiều hơn 2 router nhưng không có khả năng broadcast. Có nghĩa là một packet được gửi bởi một router sẽ không thể được nhận bởi tất cả các router khác. Các OSPF router trên mạng NBMA có bình bầu DR và BDR nhưng tất cả OSPF packet đều là unicast.

Point-to-multipoint network: nó là một trường hợp đặc biệt trong cấu hình của NBMA network. Router trên các mạng này không có quá trình bình bầu DR và BDR và các OSPF packet được gửi dưới dạng multicast.

Virtual link: là trường hợp đặc biệt trong cấu hình. OSPF packet được gửi dưới dạng unicast qua virtual link.

c/ Bình bầu DR và BDR

Quá trình bình bầu DR và BDR được kích hoạt bởi interface state machine, để quá trình bình bầu được thực hiện thì một số điều kiện sau phải tồn tại:

Mỗi interface của router mà nối vào multi-access network có một Router priority, là một số nguyên từ 0 đến 255. Đối với các Cisco router thông số này có giá trị mặc định là 1. Router với priority là 0 sẽ bị loại khỏi quá trình bình bầu DR và BDR.

Hello packet phải có trường để cho router gửi xác định Router priority và IP address của interface của router để bình bầu DR và BDR.

Khi một interface lần đầu trở thành active trên multi-access network, nó thiết lập trường DR và BDR có giá trị là 0.0.0.0. Và nó cũng thiết lập wait timer cùng với giá trị Router DeadInterval.

Tồn tại interface trên multi-access network ghi lại address của DR và BDR trong interface data structure.

Quá trình bình đầu DR và BDR diễn ra theo các trình tự sau:

Sau khi 2-Way state được thiết lập với một hay nhiều neighbor, trường Priority, DR và BDR sẽ được xem xét trong Hello của neighbor. Danh sách tất cả router đủ tư cách tham gia bình bầu được thiết lập .(router có priority lớn hơn 0 và neighbor của nó ở trạng thái 2-Way state); tất cả router công bố chúng là DR (interface addresss của chúng được lưu trong trường DR của Hello packet); và tất cả các router công bố chúng là BDR (interface address của chúng được lưu trong trường BDR của Hello packet).

Từ danh sách những router đủ tư cách, nó sẽ tạo một subset những router không đòi hỏi là DR.

Nếu một hoặc nhiều hơn neighbor trong subset này chứa interface address của nó trong trường BDR, neighbor với highest priority sẽ công bố là BDR. Nếu priority bằng nhau thì neighbor với highest router ID sẽ được chọn.

Nếu có một hoặc nhiều hơn eligible router có interface address của nó trong trường DR thì neighbor với highest priority sẽ công bố là DR. Nếu priority bằng nhau thì neighbor với highest Router ID sẽ được chọn là DR.

Nếu không có router công bố là DR thì BDR sẽ trở thành DR.

Nếu router thực hiện hiện tính toán là DR hay BDR mới được bầu chọn hay chưa bình bầu được DR, BDR thì thực hiện repeat từ bước 2 đến bước 6.

Chú ý: khi một OSPF router trở thành active và khám phá neighbor của nó, nó sẽ kiểm tra hiệu lực của DR và BDR.

Nếu DR và BDR tồn tại thì router sẽ chấp nhận nó.

Nếu BDR không tồn tại, quá trình bình bầu BDR sẽ diễn ra và router với highest priority sẽ trở thành BDR. Nếu priority bằng nhau thì router có highest router ID sẽ trở thành BDR.

Nếu không có active DR thì BDR tăng cấp làm DR và quá trình bình bầu BDR mới bắt đầu.

d/ Neighbor States

Down: Không có Hello packet được nhận từ neighbor.
Attempt: Neighbor phải cấu hình bằng tay cho trạng thái này. Nó chỉ áp dụng chỉ cho NBMA network connection và cho biết rằng không có thông gần đây được nhận từ neighbor.

Init: Một Hello packet được nhận từ neighbor nhưng local router không nhìn thấy nó trong Hello packet. Bi-directional communication chưa được thiết lập.

2-Way: Hello packet được nhận từ neighbor và chứa đựng Router ID trong trường Neighbor. Bi-directional communication được thiết lập.

ExStart: Quan hệ Masterr/Slave được thiết lập bằng cách trao đổi Database Description (DD) packet. Router với highest Router ID sẽ trở thành Master.

Exchange: thông tin định tuyến được trao đổi thông qua DD và LSR packet.

Loading: Link-State Request packet được gửi tới neighbor để yêu cầu cho bất kỳ LSA mới được tìm thấy trong state Exchange.

Full: tất cả LSA được đồng bộ giữa các adjacency.



e/Xây dựng một Adjacency

Neighbor trên point-to-point, point-to-multipoint, và virtual link network luôn luôn trở thành adjacency trừ phải những thông số trong Hello packet không sao khớp. Trên Broadcast và NBMA network, thì DR và BDR sẽ trở thành adjacency với tất cả neighbor nhưng không có adjacency giữa cac Drother.

Quá trình xây dựng Adjacency sử dụng 3 loại OSPF packet:

Database Description packet (type 2)
Link State Request packet (type 3)
Link State Update packet (type 4)

Database Description packet có vai trò đặc biệt quan trọng trong quá trình xây dựng adjacency. Như tên gọi của mình, nó mang thông tin mô tả tóm tắt của mỗi LSA trong Link state database của router gửi. Những thông tin mô tả này không phải là các LSA trọn vẹn mà chỉ đơn thuần là header của chúng-trong DD packet có 3 flag để điều khiển quá trình xây dựng adjacency.

Bit I (Initial), nó được thiết lập để cho biết DD packet đầu tiên được gửi.
Bit M (More), nó được thiết lập để cho biết rằng đó không phi là DD packet cuối cùng được gửi.

Bit MS (Master/Slave), nó được thiết lập để cho biết DD packet được gửi bởi Master router.

Hình sau: sẽ mô tả tiến trình xây dựng một adjacency.



Bước 1: RT1 trở thành active trên multi-access network và gửi Hello packet. Do chưa nhận được bất kỳ Hello nào từ neighbor cho nên trong Hello packet trường Neighbor là empty và trường DR và BDR được thiết lập với giá trị là 0.0.0.0.

Bước 2: Sau khi nhận được Hello packet từ RT1, RT2 tạo một neighbor data structure cho RT1 và thiết lập trạng thái của RT1 là Init. RT2 gửi một Hello packet với router ID của RT1 trong trường Neighbor. Như DR, thông tin interface address của RT2 có trong trường DR của Hello packet.

Bước 3: Sau khi RT1 nhận được Hello packet từ RT2 và kiểm tra thấy Router ID của mình có trong đó, RT1 tạo một neighbor data structure cho RT2 và thiết lập trạng thái của RT2 là ExStart cho sự tho thuận master/slave. Sau đó RT1 gửi một empty DD packet (no LSA summary), trong đó DD sequence number được gán là x, bit I = 1 cho biết đây là DD packet đầu tiên được trao đổi, bit M = 1 cho biết đây không phi là DD packet cuối cùng, bit MS = 1 cho biết RT1 xác nhận là master.

Bước 4: RT2 chuyển trạng thái của RT1 sang trạng thái Exstart dựa trên DD packet mà nó nhận được từ RT1. Sau đó nó cũng trả lời RT1 bằng một DD packet với DD sequence number là y; RT2 có higher router ID hơn RT1 cho nên nó thiết lập bit MS = 1.Giống DD packet đầu tiên, nó chỉ sử dụng để thoả thuận ra master/slave do đó nó là một empty DD packet.

Bước 5: RT1 đồng ý là RT2 là master và chuyển trạng thái của RT2 sang Exchange. RT1 gửi một DD packet với DD sequence number là y, MS = 0 cho biết nó là slave. Đây là một packet có chứa LSA header từ Link State Summary list của RT1.

Bước 6: RT2 chuyển trạng thái của neighbor của nó sang Exchange dựa trên DD packet mà nó nhận được từ RT1. Nó sẽ gửi một DD packet bao gồm LSA header từ Link State Summary list và tăng giá trị DD sequênc number lên là y +1.

Bước 7: RT1 gửi một ACK packet bao gồm giá trị DD sequence number giống DD sequence number của DD packet gửi từ RT2. Quá trình tiếp tục, RT2 gửi một DD packet và đợi cho một ACK packet từ RT1 trước khi gửi một một DD packet kế tiếp. Khi RT2 gửi DD packet với LSA summary cuối cùng thì nó thiết lập bit M = 0.

Bước 8: Sau khi nhận các DD packet và ACK packet sẽ gửi chứa đựng LSA summary cuối cùng của nó cho neighbor từ Link State Summary list, RT1 biết rằng quá trình Exchange đã xong. Tuy nhiên nó có mục nhập trong Link State Request list của nó, do đó nó chuyển sang trạng thái Loading.

Bước 9: Khi RT2 nhận DD packet cuối cùng của RT1, RT2 chuyển trạng thái của RT1 sang full bởi vì RT1 không có mục nhập trong Link State Request list của nó.

Bước 10: RT1 gửi các Link State Request packet và RT2 gửi trả lời bằng các LSA trong các Link State Update packet. Đến khi Link State Request list của RT1 là empty thì RT1 sẽ chuyển trạng thái của RT2 sang full.

2.2 LSA Flooding

Để mỗi node đưa các route một cách thích hợp chính xác qua mang, liên mạng thì mỗi node phải có một topology database của toàn mạng.

Database này bao gồm tất cả các LSA mà router nhận được. Bất cứ một sự thay đổi mạng nào đều được thể hiện trong các LSA. Flooding là quá trình khi một sự thay đổi suy ra thì các LSA mới được gửi qua mạng để đảm bào rằng database của mỗi node được update và giống y hệt các database của node còn lại khác.

Quá trình flooding được tạo bởi 2 loại gói sau:

Link State Update packets (type 4)

Link State Acknowledgment packets (type 5)

Trên point-to-point network, Link State Update packet được gửi bằng địa chỉ multicast là 224.0.0.5.

Trên point-to-multipoint network và virtual link network, Link State Update packet được gửi dưới dạng unicast tới interface address của adjiaceny của nó.

Trên broadcast network, Drother chỉ là adjacency với DR và BDR. Do đó update packet được tới DR và BDR với địa chỉ là 224.0.0.6. Sau đó chỉ có DR router gửi update dưới dạng multicast với địa chỉ 224.0.0.5 tới tất cả các DRother router. Tiếp đó các DR, BDR router, DRother router flood LSA ra tất cả các interface còn lại.

Trên mạng NBMA network (full), quá trình trên cũng tương tự như vậy trừ điểm sau là các LSA được gửi dưới dạng unicast.

Mỗi một LSA riêng lẻ được truyền đều phải được báo nhận. Điều này được thực hiện bằng một trong các cách sau:

Implicit acknowledgment: neighbor thực hiện báo nhận cho một LSA bằng cách gửi lại một Link State Acknowledgement về nơi gửi.

Implicit acknowledgement: neighbor thực hiện báo nhận cho một lSA bằng cách gửi một copy của LSA về cho nơi gửi.

2.3. Tính toán SPF tree

Shortest Path First (SPF) là những tuyến đường qua mạng tới bất kỳ destination nào. Có 2 loại destination được thừa nhận trong OSPF:

Network
Router: là các area border router (ABR) và autonomous system boundary router (ASBR).

Chỉ một lần sau khi tất cả các OSPF router đồng bộ được link state database, mỗi router sẽ tính toán SPF tree cho mỗi destination mà nó biết. Sự tính toán này được thực hiện bởi thuật toán Dijkstra.



Metric của OSPF

OSPF đề cập đến metric là cost. Cost của toàn tuyến là tổng của cost của các outgoing interface dọc theo tuyến đường đó. Cách tính cost được IETF đưa ra trong RFC 2328. Cisco đã thực thi cách tính cost của riêng mình như sau: 108/bandwidth với giá trị bandwidth được cấu hình cho mỗi interface.

3. OSPF với Multi-Area

Như ta đã biết khi kích thước mạng càng lớn thì số lượng các LSA càng lớn, kich thước database sẽ rất lớn…Chính những điều đó sẽ làm tăng yêu cầu về CPU cũng như memory của OSPF router. Để giải quyết vấn đề trên OSPF đã đưa ra kỹ thuật Multi-Area.

3.1. Ưu điểm của Multi-Area

Mỗi router phải chia sẻ một link state database giống hệt nhau chỉ với router trong cùng area với chính nó chứ không phải là toàn mạng. Do đó giảm được kích thước của database dẫn tới giảm yêu cầu tới phần cứng của router như: memory.

Giảm kích thước link state database có nghĩa là giảm số lượng LSA phải xử và do đó giảm tác động trên CPU.

Bởi vì link state database chỉ phải duy trì database trong một area cho nên hầu hết flooding chỉ giới hạn trong một area.

3.2. Mộ số khái niệm

Intra-area traffic: bao gồm những packet mà trao đổi giữa các router trong cùng một area.

Inter-area traffic: bao gồm những packet mà trao đổi giữa các router thuộc các area khác nhau.

External traffic: bao gồm những packet mà trao đổi giữa một router trong một OSPF domain và một router thuộc một Autonomous system khác.

Internal Router: là những router mà tất cả các interface của nó đều thuộc cùng một area. Những router này chỉ có một link state database.

Area Border Routers (ABR): kết nối một hay nhiều area với backbone và đóng vai trò như là một gateway cho Intra-area traffic. Một ABR luôn luôn có ít nhất một interface thuộc vào backbone và phải duy trì nhiều link state database tách biệt, mỗi database cho một area. Do đó ABR thường có memory và processor cao hơn internal router. Một ABR sẽ summarize topology information của area không phải là area 0 mà nó kết nối vào backbone, backbone sẽ nhân bản summary information tới area khác.

Backbone Router: là những router mà ít nhất nó gắn với backbone. Do đó ABR cũng là Backbone Router. Và một Internal Router mà interface thuộc vào area 0 cũng là Backbone Router.

Autonomous System Boundary Routers (ASBR): là gateway cho external traffic đưa những route vào OSPF domain mà đã được học từ một số protocol khác như là: BGP và IEGRP. Một ASBR có thể được xác định ở bất cứ vị trí nào trong OSPF antonomous system; Nó có thể là Internal, Backbone hay ABR.

Virtual Link: là một link tới backbone xuyên qua một non-backbone area.

Link State Dabase: tất cả valid LSA mà rouer nhận được được lưu trong link state database của nó. Tuyển tập các LSA sẽ tạo ra topology của area.

3. 4. Các loại LSA.

Do có nhiều loại router được định bởi OSPF do đó cũng cần thiết phải định nghĩa ra các loại LSA. Cụ thể như sau:



3.5. Một số loại Area trong OSPF (OSPF Area Types)

a/ Stub Area

Một stub area là một area mà các External LSA không được flood vào trong area đó. Trong stub area sẽ không có LSA loại 4 và 5 hay những LSA đó bị block. ABR tại cạnh của stub area sẽ sử dụng Network Summary để quảng bá một default route (destination là 0.0.0.0) vào trong area. Bất cứ destination của Internal Router không thể match tới một intra hay inter area, route đó sẽ được match với default route. Bởi vì default route được mang bởi LSA loại 3, nó sẽ không được quảng bá ra ngoài area.
Sự thực thi của router trong stub area được cải thiện, memory được bảo tồn và giảm kích thước database của chúng. Tất nhiên sự cải thiện này càng rõ ràng trong internetwork với rất nhiều LSA loại 5.

Bên cạnh đó nó vẫn mang những nhược điểm của mình:

Như bất kỳ area nào, tất cả router trong stub area phải có một link state database giống hệt nhau. Để đảm bảo điều kiện này, tất cả các stub router sẽ thiết lập một flag (bit_E) trong Hello packet là 0. Chúng sẽ không chấp nhận bất cứ Hello packet nào có bit_E là 1, kết quả là adjacency không được thiết lập với bất cứ router nào không được cấu hình là stub router.

Virtual link không được cấu hình trong stub area.

Không có router nào trong stub area có thể là ASBR. Vì trong stub area không có LSA loại 5.

Một stub area có thể có hơn một ABR nhưng bởi vì sử dụng defaul route, Internal router không thể xác định được router nào sẽ là gateway tối ưu tới ASBR.

b/ Totally Stubby Areas

Totally stubby area: sử dụng default không chỉ cho destination external tới autonomous system mà còn cho destination external tới area. ABR của totally stubby area sẽ không chỉ block AS External LSA mà còn block tất c Summary LSA trừ LSA loại 3 nào để quảng bá default route.

c/ Not-So-Stubby Area

Not-so-stubby areas(NSSA): cho phép external route được quảng bá vào trong OSPF autonomous system trong khi dữ lại những đặc tính còn lại của stub area. Cụ thể là ASBR trong một NSSA sẽ sinh ra LSA loại 7 để quảng bá external destination. Những External LSA được flood khắp NSSA area nhưng chúng sẽ bị block tại ABR.



Tóm lại ta có bảng tổng kết sau:



4. Định dạng gói tin OSPF
OSPF packet được đóng gói trong IP packet tương ứng với trường Protocol number là 89, do vậy maximum của OSPF packet là 1500 octet. OSPF packet header là giống đối với các loại OSPF packet khác nhau nhưng OSPF packet data thì biến đổi tuỳ theo loại OSPF packet.



Chú ý: IP packet với protocol number = 89 thì trường TTL luôn luôn bằng 1 để đảm bảo rằng packet không bao giờ đi quá một hop.

4.1. The Packet Header

Tất cả các OSPF packet đều có chung một dạng như sau:


Trong đó:
Version: là phiên bản OSPF, phiên bản gần đây nhất là 2.
Type: xác định ra loại OSPF packet. Có 5 loại OSPF packet như sau:



Packet length: là độ dài của OSPF packet gồm cả header (đơn vị là octet).
Router ID: là ID của router gửi.
Area ID: là area mà từ đó packet được gửi. Nếu packet được gửi qua virtual link, Area ID sẽ là 0.0.0.0 (backbone Area ID) bởi vì virtual link luôn được gắn với backbone.
Checksum: kiểm tra toàn bộ packet kể của header.
AuType: xác định loại nhận thực được sử dụng. Bảng sau là cấc loại nhận thực có thể:



a/ The Hello Packet
Hello packet được dùng để thiết lập và duy trì adjiacecy. Hello packet mang những thông số mà neighbor phải đồng ý để trở thành adjacency.



Network Mask: là address mask của interface mà packet được gửi từ đó. Nếu mask này không match với interface mà packet được nhận thì packet sẽ bị drop.

Hello Interval: là chu kỳ gửi bản tin Hello, được tính bằng giây. Nếu router gửi và nhận không có cùng thông số này nó sẽ không thiết lập quan hệ neighbor.

Options: trường này trong Hello packet đảm bảo ràng neighbor có khả năng tương thích. Router có thể từ chối một neighbor nếu khả năng này là không tương thích.

Router Priority: được sử dụng để bình bầu DR và BDR. Nếu nó được thiết lập giá trị là 0 thì sẽ loại khỏi quá trình bình bầu DR và BDR.

Router Dead Interval: là số giây mà router gửi đợi một Hello packet từ neighbor trước khi công bố neighbor dead. Nếu thông số này trong Hello đến không giống với thông số của nó thì packet sẽ bị drop.

Designated Route: là IP address của interface của DR trên mạng (không phải là Router ID của nó).

Backup DR: là IP address của interface của BDR trên mạng.

Neighbor: chứa danh sách tất cả neighbor trên mạng mà router gửi nhận từ các Hello hợp lệ.

b/ The Database Description Packet

Database Description packet: nó được sử dụng khi một adjacency được thiết lập. Mục đích chính của DD packet là mô tả một vài hay tất cả LSA trong database cho đến khi nào có thẻ xác định là match LSA trong database của nó.



Interface MTU: là kích thước lớn nhất của IP packet (đơn vị là octet) mà packet có thể được gửi đi mà không bị phân mảnh. Trường này được thiết lập là 0x0000 khi packet được gửi qua virtual link.

Option: là trường tuỳ chọn, router sẽ không chuyển tiếp LSA nếu không thoả mãn điều kiện trong trường Option.

Có 5 bit không sử dụng và có giá trị là: 00000b.

Ba bit I, M và MS đã giới thiệu trong phần building adjacency.

DD Sequence Number: trường này để đảm bảo rằng DD packet được nhận đúng thứ tự trong quá trình đồng bộ database. Thông số này luôn luôn được thiết lập bởi master cho DD packet đầu tiên và tăng dần lên trong các DD packet gửi sau.

LSA Header: danh sách của một vài hay tất cả LSA header trong link state database của router gửi.

c/ The Link State Request Packet

Trong quá trình đồng bộ database khi router nhận các DD packet, router sẽ kiểm tra xem LSA header trong DD packet nếu không có trong database của nó thì những LSA này ghi lại vào Link State Request list. Router sẽ gửi một hay một vài Link State Request packet hỏi neighbor về LSA đó.

Định dạng của Link State Request packet như sau:



Link State Type: xác định loại LSA (router LSA, network LSA...).
Link State ID: xác định ra LSA header.\
Advertising Router: là router ID của router mà gửi LSA.

d/ The Link State Update Packet

Nó được sử dụng khi flood LSA và gửi LSA trả lời cho Link State Request packet.

Number of LSAs: xác định số LSA trong packet này.
LSAs: là full LSA (header + data). Mỗi update có thể mang nhiều LSA tới maximum kích thước của packet cho phép trên link.

f/ The Link State Acknowledgment Packet

Được sử dụng để tạo quá trình flood các LSA môt cách tin cậy (reliable).
Định dạng như sau:


(nguồn chuyenviet.com)

11/23/18

Thông tin phần cứng và OS





And this is the process we can see on our screen when the router is turned on:


Note: The “show version” command also gives us this information.








All the above information is straight-forwarding except the information of RAM. In some series of routers, the RAM information is displayed by 2 parameters (in this case 60416K/5120K). The first parameter indicates how much RAM is in the router while the second parameter (5120K) indicates how much DRAM is being used for Packet memory. Packet memory is used for buffering packets.

So, from the output above we can learn:

Amount of RAM: 60416 + 5120 = 65536KB / 1024 = 64MB
Amount of NVRAM: 239KB
Amount of Flash: 62720KB

11/19/18

Các thuật ngữ


Thông tin liên lạc trong mạng được thực hiện theo 3 cách sau:

• Unicast: gửi trực tiếp từ một máy phát tới một máy thu. Đây là hình thức truyền chủ yếu trong mạng LAN và Internet.
• Multicast: là cách truyền tin được gửi từ một máy đến một mạng con hay một nhóm nằm trong segment.

• Broadcast: là cách truyền tin được gửi từ một máy đến tất cả các máy khác trong mạng.






Broadcast domain

Khi một thiết bị gửi, một gói tin quảng bá đến lớp 2 thì địa chỉ MAC đích của frame đó sẽ là FF:FF:FF:FF:FF:FF . Với địa chỉ đích như vậy mọi thiết bị đều phải nhận và xử lý gói quảng bá. 
==> Việc kết nối nhiều switch sẽ tăng kích thước miền quảng bá. 


Collision domain

Là các segment mạng vật lý được kết nối ở đó có các đụng độ có thể xảy ra.

Mỗi khi một đụng độ xảy ra trên mạng, tất cả các hoạt động truyền dừng lại trong một khoảng thời gian.
Thiết bị thuộc lớp 1 không chia tách miền đụng độ mà chỉ mở rộng miền đụng độ.

Thiết bị thuộc lớp 2 và 3 chia tách miền đụng độ thành các miền đụng độ nhỏ hơn (sự phân đoạn mạng – segmentation).




\











x










11/15/18

Backup and Restore os-config

 Backup và restore trên các thiết bị cisco vô cùng đơn giản, nhưng rất cần thiết trong hệ thống mạng.

Chuẩn bị:


Lên trang chủ tftpd32.jounin.net để tải phần mềm tftp, tùy theo phiên bản hệ điều hành đang dùng là x86 hay x64.



 

Giao diện phần mềm sau khi đã cài đặt xong.


 Đồ hình lab backup startup-config

Router(config)#: copy startup-config tftp: //copy file config từ Nvram sang tftp

adress or name of remote host : 10.10.0.2 // địa chỉ ip của server tftp (máy tình)

destination file name: r3725-config //tên file cấu hình xuất ra.




Kiểm tra sự tồn tại của file xuất ra.


Khôi phục cấu hình startup-config

-Các lệnh thi hành:
 
Router# copy tftp: startup-config //khoi phuc file cau hinh tu tftp sang nvram




Lab2: Backup và khôi phục image cho os cisco


Tạo đồ hình như bên dưới:



Backup OS-image

Thực thi lệnh copy






Kiểm tra sự tồn tại của OS-image trong TFTP_SERVER





Khôi phục OS-image

Xem thông tin file Image trong bộ nhớ flash.



Tiến hành xóa image OS trong flash




Xem lại flash, ta thấy không còn file image nào!!!





Gõ lệnh reload lại router thì đã vào rommon. Trong chế độ rommon ta gõ "?" để xem tóm tắt các lệnh được hỗ trợ.



  
Tiếp tục gõ tftpdnld để xem các thông số yêu cầu khi chép file image từ TFTP sang Flash memory.



Đây là các thông số cần:

IP_ADDRESS: địa chỉ ip của router
IP_SUBNET_MASK: subnet mask của ip router.
DEFAULT_GATEWAY: trỏ về địa chỉ IP của TFTP_SERVER.
TFTP_SERVER: ip của TFTP server.
TFTP_FILE: file image từ TFTP cần chép sang Flash.

Tại chế độ rommon ta thi hành các lệnh sau:





chọn "Y" sau đó tiến trình flash thành công ta reset lại 1 lần.




Router tiến hành boot lại, kết thúc bài lab.




11/11/18

Tiến trình khởi động router


In this article we will learn about the main components of a Cisco router and how the boot process takes place.
Types of memory
Generally Cisco routers (and switches) contain four types of memory:
Read-Only Memory (ROM): ROM stores the router’s bootstrap startup program, operating system software, and power-on diagnostic test programs (POST).
Flash Memory: Generally referred to simply as “flash”, the IOS images are held here. Flash is erasable and reprogrammable ROM. Flash memory content is retained by the router on reload.
Random-Access Memory (RAM): Stores operational information such as routing tables and the running configuration file. RAM contents are lost when the router is powered down or reloaded.
Non-volatile RAM (NVRAM): NVRAM holds the router’s startup configuration file. NVRAM contents are not lost when the router is powered down or reloaded.

Some comparisons to help you remember easier:
+ RAM is a volatile memory so contents are lost on reload, where NVRAM and Flash contents are not.
+ NVRAM holds the startup configuration file, where RAM holds the running configuration file.
+ ROM contains a bootstrap program called ROM Monitor (or ROMmon). When a router is powered on, the bootstrap runs a hardware diagnostic called POST (Power-On Self Test).
Router boot process
The following details the router boot process:
1. The router is powered on.
2. The router first runs Power-On Self Test (POST)
3. The bootstrap checks the Configuration Register value to specify where to load the IOS. By default (the default value of Configuration Register is 2102, in hexadecimal), the router first looks for “boot system” commands in startup-config file. If it finds these commands, it will run boot system commands in order they appear in startup-config to locate the IOS. If not, the IOS image is loaded from Flash . If the IOS is not found in Flash, the bootstrap can try to load the IOS from TFTP server or from ROM (mini-IOS).
4. After the IOS is found, it is loaded into RAM.
5. The IOS attempts to load the configuration file (startup-config) from NVRAM to RAM. If the startup-config is not found in NVRAM, the IOS attempts to load a configuration file from TFTP. If no TFTP server responds, the router enters Setup Mode (Initial Configuration Mode).


 -----------------------------------------------------------------------------------------------------------------------
Khi một router Cisco được bật lên, router sẽ trải qua một tiến trình khởi động gồm các bước sau:
Bước 1 – P.O.S.T (Power On Self Test): Tại bước đầu tiên này, khi mới được bật lên, router chạy một chương trình kiểm tra phần cứng (Hardware Diagnostic) kiểm tra tình trạng của mọi module phần cứng. Khi mọi module đều qua được kiểm tra này, router tiến hành chuyển qua bước thứ 2.
Bước 2 – Load chương trình Bootstraps từ bộ nhớ ROM vào RAM: Chương trình này chịu trách nhiệm tìm kiếm và load IOS dể vận hành router.
Bước 3 – Load IOS:
Chương trình bootstraps sẽ thực hiện load IOS cho Router theo trình tự sau:
  • Đầu tiên, tìm kiếm trên Flash, nếu trên Flash tồn tại IOS, giải nén và load IOS đầu tiên trong bộ nhớ Flash và RAM để vận hành router.
  • Nếu không có IOS nào tồn tại trong bộ nhớ Flash, thực hiện tìm kiếm trên các TFTP server.
  • Nếu sau các bước trên, vẫn chưa tìm được IOS, load hệ điều hành phụ trong bộ nhớ ROM để chạy, đưa router vào module ROMMON.
Bước 4 – Load file cấu hình:
Tùy thuộc vào giá trị của bit thứ 6 của thanh ghi cấu hình mà router sẽ thực hiện các phương thức load cấu hình khác nhau:
  • Nếu bít 6=0 (ví dụ: 0x2102): load file startup-config trong NVRAM vào RAM thành running-config để chạy.
  • Nếu bít 6=1 (ví dụ: 0x2142): bỏ qua file startup-config trong NVRAM, load vào một cấu hình trắng.

11/9/18

recovery passwords


Khôi phục password switch.

Trình tự:
1. Interrupt the normal boot process using one of the methods previously described. (Mode button)
2. Manually initialize the flash file system. (flash_init)
3. Hide the startup configuration file to prevent the IOS from loading it.( rename flash:config.text flash:config.text.old)
4. Boot the switch manually and wait for the IOS to finish loading in RAM.
5. Unhide the startup configuration file. (

rename flash:config.text.old flash:config.text) 
6. Manually load the startup configuration file from NVRAM to RAM.(copy flash:config.text system:running-config)
7. Reset the password.
8. Save the running configuration over the startup configuration (wr).
9. Revert the boot process to its default options.
10. Reboot the switch(reload).



- File cấu hình của switch được lưu trong bộ nhớ flash. Có tên là config.text. Dễ dàng kiểm tra bằng câu lệnh sau:

- Switch#: dir flash hoặc sh flash.



Ta muốn khôi phục mật khẩu thì phải thao tác với file này,

đầu tiên,




Nhấn giữ nút Mode trên switch, rồi bật nguồn lại, khi màn hình hiện thông báo:

flash_init
load_helper
boot

Boot process terminated.
switch:

ta nhập vào 

switch:flash_init -để tiến hành cấu hình bộ nhớ flash.

switch:rename flash:config.text flash:config.text.old -đổi tên file .text thành .old (vô hiệu hóa)

Sau đó boot vào switch bằng câu lệnh sau:

switch:boot

Lúc này, switch sẽ không đọc file cấu hình được lưu trong bộ nhớ flash.
Sau đó chúng ta chuyển tên file config.text.old trong flash thành config.text bằng cách :

switch#rename flash:config.text.old flash:config.text

- Rồi copy file config vào RAM bằng câu lệnh sau :

switch#copy flash:config.text system:running-config

tiến hành gở bỏ tất cả các loại password

switch#conf t
 

switch#(config)#no enable password 
switch#(config)#no enable secret

Sau khi hoàn tất, save cấu hình nhanh bằng lệnh sau, và tiến hành reload lại:

switch#: wr (= copy run start)

switch#:reload

Khôi phuc password router. 
Khi vừa bật nguồn, Router sẽ kiểm tra phần cứng, sau khi phần cứng đã được kiểm tra hoàn tất, hệ điều hành sẽ được nạp từ Flash, tiếp đó Router sẽ nạp cấu hình trong NVRAM bao gồm tất cả những nội dung đã cấu hình trước cho Router. Vì vậy để Router không kiểm tra mật khẩu khi đăng nhập,  phải ngăn không cho Router nạp dữ liệu từ NVRAM, bằng cách thay đổi thanh ghi từ 0x2102 sang thanh ghi 0x2142.

Tắt nguồn khởi đông lại, khi router đang reload, ấn Ctrl Break khi router đang xả nén HĐH ra RAM.
(chuẩn bị đọc file cấu hình từ nvram).





Rồi ta tiến hành thay đổi giá trị thanh ghi bằng lệnh sau, rồi tiến hành reset lại.




Khi router khởi động lại, mình vào chế độ priviledge
Router> en
Router# copy startup-config running-config //lấy lại cấu hình cũ

Rồi ta tiến hành xóa hoặc thay đổi pass, sau đó trả về giá trị thanh ghi mặc định cho router.
Router(config)#config-register 0x2102

Kết thúc bài lab.