Wednesday, May 16, 2012

OSPF Desginated and Backup Designated Router

1.OSPF broadcast network

Trong môi trường mạng OSPF Broadcast có một vài vấn đề nảy sinh như sau:
  •     -Hello được gửi ra để tìm kiếm neighbor
  •     -Một router sẽ phải thiết lập neighbor với tất cả các router còn lại
  •     -Số lượng adjacencies tăng tỉ lệ thuận với số lượng routers hiện có
  •     -Số lượng gói tin LSAs được gửi ra cũng tăng lên nhanh chóng so với số lượng router hiện có


Tất cả các điều trên đều dẫn đến hiện tượng router bị quá tải, băng thông mạng bị chiếm dụng rất nhiều. 




Để khắc phục tình trạng trên, một giải pháp đưa ra đó là bầu chọn một router làm đại diện cho OSPF network để nói chuyện với các routers trong mạng. Router này được gọi là Designated Router.

2.Designated Router and Backup Designated Router


DR là router được lựa chọn làm đại diện cho mạng. ROuter này có nhiệm vụ chính là duy trì thông tin của hệ thống mạng để các routers khác truy xuất. DR có hai chức năng chính:
  •     -Thiết lập neighbor với toàn bộ các routers trong mạng
  •     -Là một router đại diện để gửi các thông báo cho mạng

DR có nhiệm vụ đó là thu thập và gửi đi các thông tin (LSAs) trong hệ thống mạng.

BDR là một router có tính dự phòng cho DR, khi DR không hoạt động được nữa thì BDR sẽ chiếm quyến và trở thành DR.
  •     -BDR cũng giống như DR, tiến hành thiết lập neighbor với tất cả các router khác
  •     -BDR không gửi và cũng ko nhận thông tin (LSAs) trong hệ thống mạng
BDR có một bộ đếm thời gian khi theo dõi DR để biết chắc rằng DR vẫn đang hoạt động tốt. Nếu hết khoảng thời gian này mà DR không trả lời lại cho BDR thì BDR sẽ coi DR đó đã chết và tiến hành chiếm quyền trở thành DR của hệ thống.

Sau khi đã bầu chọn DR, BDR thì tất cả các routers trong hệ thống sẽ thiết lập neighbor với 2 router này. 


DR sử dụng bản tin LSA type 2 - network LSA để quảng bá về hệ thống mạng lên địa chỉ multicast 224.0.0.5. Các routers khác sẽ gửi thông tin lên 224.0.0.6 để truyền tải trực tiếp với DR.





Một lưu ý đó là chỉ có một DR trên một segment mạng.

3.Election of DR/BDR

-Khi một router khởi động một tiến trình OSPF, nó sẽ lắng nghe các Hellos từ các routers khác. Nếu hết dead interval mà không nhận được Hello nào, nó sẽ tự nâng mình lên là DR.

-Nếu các Hellos được nhận trước khi hết dead interval, router nào có OSPF priority cao hơn sẽ làm DR. Tương tự với việc bầu chọn BDR. Nếu 1 router có priority bằng 0 sẽ loại khỏi quá trình bầu chọn DR.

-Nếu 2 routers có priority bằng nhau, router nào có Router ID lớn hơn sẽ bầu làm DR. Tương tự với BDR





Một khi DR đã được lựa chọn, quá trình bầu chọn sẽ không thể thực hiện lại cho đến khi DR hoặc BDR down. Điều đó có nghĩa là, nếu như có một router với priority cao hơn được boot lên thì vẫn sẽ không xảy ra việc chiếm quyền DR. Khi DR down, BDR sẽ tự động được đưa lên làm DR, sau đó thì quá trình bầu chọn BDR mới sẽ diễn ra.

Mặc định, với thiết bị của CIsco thì giá trị priority là 1. Giá tri này có thể thay đổi trên interface tham gia vào OSPF.

Wednesday, May 9, 2012

OSPF States

Các OSPF routers phải trải qua các tình trạng khác nhau để có được một trạng thái ổn định với đầy đủ thông tin về hệ thống mạng hiện tại. Với từng trạng thái sẽ sử dụng một trong các packets đã được giới thiệu. Có thể chia ra 3 bước chính:
  •     -TÌm kiếm Neighbor
  •     -Đồng bộ DB
  •     -Tính toán route
1.Tìm kiếm Neighbor

ROuter sẽ trải qua 3 trạng thái: Down, init, two-way
    -Down: đây là tình trạng ban đầu của router, ko có bất cứ một Hello packets nào được nhận. Khi chức năng OSPF được enable, router sẽ bắt đầu gửi Hello packets và chuyển sang trạng tháng Init.
    -Init: Các gói tin Hello bắt đầu được gửi/nhận trên các interfaces được enabled. Lúc này nếu 2 routers nhận được Hello của nhau và các fields khớp nhau, chúng sẽ chuyển sang trạng thái two-way.
    -Two-way: đây là trạng thái sau khi 2 routers đã thiết lập neighbor với nhau.




2.Đồng bộ Database

Router sẽ trải qua các trạng thái: ExStart, Exchange, Loading

    -ExStart: 2 routers sẽ bắt đầu đám phán xem bên nào sẽ là bên bắt đầu trao đổi bằng cách sử dụng gói tin Hello. Router nào có Router ID lớn hơn sẽ bắt đầu phiên trao đổi.
    -Exchange: bắt đầu trao đổi LSDB với nhau bằng DBD packets. Cả 2 bên sẽ gửi cho nhau một thông tin ngắn gọn mô tả về DB hiện tại. Sau khi đã nhận được DBD, 2 bên sẽ phải gửi lại cho nhau các gói LSAck để xác nhận.
    -Loading: sau khi đã nhận DBD, nếu cần thêm thông tin gì, router sẽ gửi cho phía bên kia các gói tin LSR để hỏi về thông tin đó. Bên được yêu cầu sẽ gửi lại thông tin cho bên yêu cầu bằng gói tin LSU. Kết thúc bằng việc gửi LSAck.


3.Tính toán route

Sau khi đã trải qua các trạng thái trên và có được thông tin đầy đủ về hệ thống mạng hiện tại, router sẽ sử dụng thuật toán SPF để tính toán lại các routes để cập nhật vào routing table thông chính xác nhất hiện tại.



Một khi các neighbors đã được thiết lập, gói tin Hello sẽ được gửi ra định kỳ 10s một lần để giữ kết nối giữa các neighbors. Sau khi DB được đồng bộ, các LSUs sẽ chỉ được gửi đến neighbors khi:
    -Có một thay đổi xảy ra, chỉ gửi Incremental update
    -Mỗi 30 phút sẽ gửi một lần (đây cũng là thời gian sống của LSA)

Cách thức cập nhật thông tin mới:


Monday, May 7, 2012

OSPF Packets

OSPF sử dụng các packets để thiết lập và duy trì các thông tin định tuyến giữa các router với nhau. Bảo đảm thông tin định tuyến luôn chính xác.

OSPF sử dụng 5 kiểu packets để vận chuyển thông tin:
  •     -Hello: tìm kiếm các láng giềng. Đồng thời cũng là gói tin để cho biết router vẫn còn hoạt động (keepalive)
  •     -Link State Request (LSR): gói tin yêu cầu Link state update - LSU
  •     -Database Description (DBD): chứa các thông tin tổng hợp về LSDB, bao gồm các Router ID (RID) và các sequence numbers
  •     -LInk State Update (LSU): chứa một hoặc nhiều các LSAs
  •     -Link State Acknowledgement (LSAck): xác nhận lại tất cả các OSPF packets ngoại trừ Hellos.

1.Hello Packets

Các gói tin Hello được sử dụng nhằm các mục đích như:
  •     -TÌm kiếm các OSPF router kết nối trực tiếp với nó.
  •     -Thiết lập và duy trì trạng thái neighbor với những connected neighbors đó
  •     -Quảng bá các thông số để 2 routers sử dụng trong quá trình đàm phán để trở thành neighbors
  •     -Sử dụng trong việc lựa chọn Designated Router - DR và Backup DR trong môi trường multi-access
   
Trong gói tin Hello chứa một vài fields quan trọng. Các fields này phải khớp nhau giữa các neighbors để thiết lập mối quan hệ:
  •     -Hello interval 
  •     -Dead interval 
  •     -Network type
  •     -Area id
  •     -Authentication password (if required)
  •     -Stub area flag (if required)
OSPF router nói chuyện với nhau bằng địa chỉ multicast 224.0.0.5. Các router sẽ lắng nghe trên địa chỉ này để nhận thông tin từ routers khác. Mặc định thì các Hello packets sẽ được gửi đến địa chỉ này sau mỗi 10s (đối với mạng multiaccess, point-to-point) và sau 30s với môi trường NBMA như Frame Relay

Giá trị Dead interval được tính theo giây. Đây là khoảng thời gian mà router sẽ chờ để nhận một gói Hello trước khi khai báo neighbor đó ở trạng thái down. Nếu hết dead interval trước khi các routers nhận một Hello packet, OSPF sẽ gỡ bỏ neighbor đó khỏi LSDB. Ngay sau đó sẽ flood thông tin về neighbor đang ở trạng thái down ra tất cả các OSPF interfaces.















Mặc định, Cisco sử dụng giá trị dead interval gấp 4 lần giá trị Hello interval.

2.OSPF DBD Packet

DBD packets chứa một danh sách các lsdb của router phía gửi. lsdb này được sử dụng để so sánh với lsdb cục bộ. LSDB phải được đồng nhất trên tất cả các link-state routers bên trong một area để xây dựng một SPF tree chính xác.





3.OSPF LSR Packet

LSR packet được router nhận sử dụng để yêu cầu thêm thông tin. THông tin này là các thông tin mới so với thông tin hiện tại mà router có. Có thể yêu cầu bất cứ entry nào trong DBD




4.OSPF LSU Packet

Link-state Update packets được sử dụng cho việc cập nhật thông tin định tuyến của OSPF. Các gói tin này sẽ trả lời lại các LSRs, đồng thời cũng đem theo các thông tin mới. LSUs chứa các LSAs





5.OSPF LSAck Packet

Khi nhận được 1 LSU, router gửi lại cho router bên kia một LSAck để confirm.






Tuesday, May 1, 2012

OSPF Router types

OSPF Router types

Cách mà các OSPF routers trao đổi thông tin được dựa trên:
  •     -Vai trò của router
  •     -Kiểu LSAs mà router có thể forward
  •     -Kiểu area mà router nằm trong đó

Các OSPF routers có thể đóng vai trò là:
  •     -Internal router
  •     -Backbone router
  •     -Area Border Router - ABR
  •     -Autonomous System Boundary Router - ASBR

Một lưu ý đó là một router có thể đóng nhiều vai trò khác nhau cùng một lúc

1.Internal router

Router này là một router nằm hẳn bên trong một Area. Tất cả các interfaces của nó đều nằm trong một area và ko hề tham gia vào một area nào khác. Các Internal routers thì có đặc điểm chung đó là: cùng chạy một LSDB đồng nhất, LSDB này chứa thông tin về area của chúng
   
2.Backbone router

Trong một OSPF AS phải có 1 Backbone area và tất cả các area phải được kết nối tới một backbone area (area 0). Area 0 còn được đánh ID là Area 0.0.0.0

Một backbone router tức là router đó có tham gia vào backbone area.

3.Area Border Router - ABR

Đây là các routers tham gia vào nhiều hơn 1 area. Mục đích chính của các ABR đó là:
  •     -Liên kết các area với nhau
  •     -Duy trì các LSDB riêng lẻ cho từng area
  •     -ROuting các traffic đến và đi khỏi các areas
  •     -Summarize thông tin về mỗi area kết nối đến nó, đẩy các thông tin qua area 0 đến các areas khác
  •     -Một area có thể có nhiều hơn 1 ABR

Một lưu ý đó là: ABR không thể gửi Link State Update - LSU của nó đến các areas khác cho đến khi area bên trong đó được hội tụ

4.Autonomous System Boundary Router - ASBR

Đây là các routers có ít nhất một interfaces kết nối đến một AS khác hoặc một mạng chạy một giao thức ko phải là OSPF. Các routers này phải hỗ trợ việc redistributing các routes từ mạng này sang mạng khác.

Thông thường, nên đặt các ASBR tham gia vào backbone area