Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • OSPF - Thiết lập adjacency giữa các router

    OSPF media type:

    Có 4 loại môi trường truyền dẫn OSPF là môi trường multiaccess, point-to-point, nonbroadcast multiaccess và demand circuit.

    Đặc tính của từng loại như sau:

    Môi trường Multiaccess
    Môi trường multiaccess là môi trường truyền dẫn như ethernet, fast ethernet, gigabit ethernet, FDDI. Trong môi trường mạng broadcast, OSPF sẽ tiến hành bầu chọn DR, BDR để giảm thiểu lưu lượng trên đoạn mạng.

    Môi trường Point-to-Point
    Môi trường point-to-point là môi trường truyền dẫn được đóng gói HDLC/PPP, Frame Relay/ATM point-to-point subinterface. Không có sự bầu chọn DR/BDR trong môi trường này. Các gói tin OSPF được gửi đi ở dạng multicast

    Môi trường Nonbroadcast Multiaccess
    Môi trường NBMA là môi trường truyền dẫn như Frame Relay, X.25, ATM. Có 3 mô hình truyền dẫn trong môi trường NBMA là mô hình broadcast, mô hình point to point và mô hình point to multipoint.

    a. Mô hình broadcast
    Để giả lập môi trường NBMA thành môi trường broadcast cần tiến hành bầu chọn DR và BDR.

    b. Mô hình Point-to-Point
    Trong mô hình này, mỗi PVC phải được định nghĩa là các point-to-point subinterface với các subnet khác nhau

    c. Mô hình Point to Multipoint
    Mô hình này không tiến hành bầu chọn DR/BDR và chỉ yêu cầu 1 mạng con.

    OSPF Demand Circuit
    OSPF gởi các Hello sau 10 giây và refresh các LSA sau 30 phút, chức năng này để duy trì quan hệ láng giềng và chắc chắn rằng cơ sở dữ liệu trạng thái liên kết phù hợp. Tuy nhiên, các lưu lượng này không cần thiết trên các liên kết dạng demand circuit (như ISDN). Dùng OSPF demand circuit, OSPF có thể thiết lập kết nối theo yêu cầu để tạo adjacency và thực hiện đồng bộ cơ sở dữ liệu. OSPF demand circuit sẽ ngăn các gói Hello và chức năng refesh LSA.


    Thiết lập quan hệ giữa các router (Adjacency)

    OSPF thiết lập quan hệ liền kề adjacency giữa các router láng giềng nhằm mục đích trao đổi các thông tin định tuyến. Trong môi trường broadcast, không phải router nào cũng có khả năng thiết lập quan hệ adjacency với tất cả các router khác. Gói tin hello chịu trách nhiệm thiết lập và duy trì mối quan hệ này.

    Đầu tiên router OSPF sẽ gửi gói tin hello đến địa chỉ multicast 224.0.0.5. Gói tin này sẽ định kỳ gửi đến tất cả các interface có hỗ trợ OSPF với khoảng thời gian gửi tuỳ thuộc vào từng loại interface. Trong môi trường broadcast như ethernet hay point-to-point, thời gian này là 10 giây. Trong môi trường non-broadcast như Frame Relay hay ATM, khoảng thời gian này là 30 giây.

    Gói tin hello sẽ định kỳ gửi đi đến tất cả các interface OSPF của router. Khi router phát hiện thấy có router láng giềng nhờ vào gói tin hello nhận được, truyền thông hai chiều sẽ được thiết lập. Trong môi trường broadcast và NBMA, gói tin hello còn được sử dụng để chọn ra các router chỉ định DR/BDR.

    Sau khi thiết lập được truyền thông hai chiều, sẽ thiết lập quan hệ liền kề adjacency, việc ra quyết định thiết lập quan hệ adjacency dựa trên trạng thái của router láng giềng và network type. Nếu network type là broadcast hay non-broadcast, quan hệ adjacency sẽ được thiết lập giữa các router chỉ định DR/BDR. Các trường hợp còn lại, quan hệ adjacency sẽ được thiết lập giữa các router láng giềng.

    Để thiết lập quan hệ adjacency, đầu tiên router sẽ tiến hành đồng bộ hoá cơ sở dữ liệu bằng cách gửi các gói tin DBD mô tả cơ sở dữ liệu cho nhau. Tiến trình này gọi là tiến trình trao đổi cơ sở dữ liệu database exchange process. Khi đó, hai router sẽ thiết lập quan hệ master/slaver. Mỗi gói tin mô tả cơ sở dữ liệu được gửi đi bởi master sẽ chứa số tuần tự đánh dấu gói tin. Slaver sẽ báo nhận gói tin này bằng cách gửi gói tin chứa số tuần tự này để hồi đáp.

    Router sẽ có các trạng thái sau khi thiết lập quan hệ liền kề adjacency: Down State, Attemp State, Init State, 2-way State, Exstart State, Exchange State, Loading State, Full State.

    (...)

    { --- trích CCLabPro Vol.3 Routing ---}

  • #2


    Down State
    Router không nhận được các thông tin về neighbor.

    Attemp State
    Trạng thái này chỉ tồn tại trong mạng NBMA. Ở trạng thái này, router sẽ không nhận được các thông tin từ neighbor nhưng vẫn nỗ lực tạo ra quan hệ với neighbor bằng cách định kỳ gửi các gói tin hello đến neighbor.
    Router R1 gửi gói tin hello thông báo rằng chưa chọn được DR, và không tìm thấy neighbor.

    Init State
    Tiến trình gửi gói tin hello một chiều. R1 gửi gói tin hello, R2 nhận được gói tin này nhưng không biết được tình trạng bản thân (router ID) nên được đặt ở trạng thái một chiều one-way state.
    Code:
    R2#show ip ospf neighbor
    Neighbor ID	Pri	State	Dead Time 	Address	Interface
    1.1.1.1	1	INIT/DROTHER	0:00:39	10.10.3.1	Ethernet0
    2-way State
    Khi thiết lập quan hệ hai chiều, router sẽ được đặt ở trạng thái 2-way state. Khi đó, sẽ bắt đầu tiến trình thiết lập quan hệ liền kề adjacency, các router chỉ định DR/BDR sẽ được chọn.
    Router R2 gửi gói tin hello cho router R1 báo R2 đã nhận gói tin Hello gửi bởi R1, Router ID của R2 cao hơn nên sẽ được chọn làm router DR.
    Code:
    R2#show ip ospf neighbor
    Neighbor ID	Pri	State	Deadtime 	Address	Interface
    1.1.1.1	1	2WAY/DROTHER	0:00:36	10.10.3.1	Ethernet0
    Exstart State
    Trạng thái này là sự bắt đầu tiến trình đồng bộ hoá cơ sở dữ liệu. Master và slave được chọn trong trạng thái này. R1 gửi gói tin DBD đầu tiên, R2 cũng gửi gói tin DBD đầu tiên. Router R2 được chọn làm master vì có router ID cao hơn.
    Code:
    R2#show ip ospf neighbor
    Neighbor ID	Pri	State	Dead Time 	Address	Interface
    1.1.1.1	1	EXSTART/BDR	0:00:32	10.10.3.1	Ethernet0
    		(R1 là router backup DR)
    Exchange State
    Ở trạng thái này, router mô tả trạng thái cơ sở dữ liệu link-state thông qua gói tin DBD. Mỗi gói tin DBD được đánh số tuần tự để phân biệt. Tại mỗi thời điểm chỉ cho phép gửi đi một gói tin DBD. Gói tin Request cũng được gửi đi để yêu cầu cập nhật các gói tin LSA.
    Code:
    R2#show ip ospf neighbor
    Neighbor ID	Pri	State	Dead Time 	Address	Interface
    1.1.1.1	1	EXCHANGE/DR	0:00:30	10.10.3.1	Ethernet0
    Loading State
    Ở trạng thái này, gói tin LS Request được gửi đi để yêu cầu trạng thái mới nhất của LSA. Router R1 gửi gói tin LS Request để nhận được trạng thái mới nhất của LSA.
    Code:
    R2#show ip ospf neighbor
    Neighbor ID	Pri	State		Dead Time 	Address	Interface
    1.1.1.1	1	LOADING/DR	0:00:28	10.10.3.1	Ethernet0
    Full State
    Sau khi nhận được gói tin LS Update, cơ sở dữ liệu của hai router đã đồng bộ hoá và router sẽ chuyển sang trạng thái Full.
    Code:
    R2#show ip ospf neighbor
    Neighbor ID	Pri	State		Dead Time 	Address	Interface
    1.1.1.1	1	FULL/BDR	0:00:26	10.10.3.1	Ethernet0
    (...)

    Comment


    • #3
      Sau đây là một bài lab cấu hình OSPF đơn giản minh họa.



      RouterA và RouterB sẽ chạy OSPF để quảng cáo thông tin định tuyến.
      Kích hoạt OSPF : Muốn kích hoạt OSPF trên một router thực hiện hai bước. Trước hết cần xác định một tiến trình OSPF bằng lệnh router ospf process-id và sau đó giao tiếp được khai báo trong tiến trình này. Lưu ý rằng giá trị process-id chỉ có giá trị local. Hai router chạy OSPF có thể dùng những giá trị process-id khác nhau. Một router có thể chạy nhiều OSPF process khác nhau. Ví dụ lệnh sau sẽ kích hoạt OSPF process 64, kích hoạt OSPF trên tất cả các interface, đồng thời gán các interface này vào area 0.
      router ospf 64
      network 0.0.0.0 255.255.255.255 area 0

      Cấu hình

      Router A
      Code:
      !
      hostname RouterA
      !
      interface loopback 0 
      ip address 10.1.1.1 255.255.255.0 
      
      interface loopback 1
      ip address 11.1.1.1 255.255.255.0 
      !
      interface serial 0
        ip address 192.1.1.1 255.255.255.0 
        no fair-queue
      !
      router ospf 64  <-- kích hoạt tiến trình ospf 64 trên router
                          Dùng widcard mask có thể xác định nhiều interface bằng 
                              |      một câu lệnh
       network 192.1.1.1 0.0.0.0 area 0 <-- xác định interface chạy OSPF và vùng chứa interface.
       network 10.1.1.1 0.0.0.0 area 0
      !
      no ip classless
      !
      !
      line con 0
      line aux 0
      line vty 0 4
          login
      !
      end
      !
      Router B
      Code:
      hostname RouterB
      !
      interface loopback 0 
      ip address 152.1.1.1 255.255.255.0 
      
      interface loopback 1
      ip address 153.1.1.1 255.255.255.0 
      !
      interface serial 0
        ip address 192.1.1.2 255.255.255.0 
        no fair-queue
       clockrate 64000
      !
      router ospf 65 <-- kích hoạt tiến trình ospf 65 trên router
       network 0.0.0.0 255.255.255.255 area 0 <-- chỉ định ospf chạy trên tất cả các interface và gán chúng vào area 0 
      !
      no ip classless
      !
      !
      line con 0
      line aux 0
      line vty 0 4
          login
      !
      end
      Kiểm tra

      Dùng lệnh show ip route trên router A. Lưu ý các host – specific route sẽ xuất hiện (152.1.1.1, 153.1.1.1 )
      Code:
      RouterA#sh ip route
      ...
      Gateway of last resort is not set
      
           153.1.0.0/32 is subnetted, 1 subnets
      O       153.1.1.1 [110/65] via 192.1.1.2, 00:01:36, Serial0
           152.1.0.0/32 is subnetted, 1 subnets
      O       152.1.1.1 [110/65] via 192.1.1.2, 00:01:36, Serial0
           10.0.0.0/24 is subnetted, 1 subnets
      C       10.1.1.0 is directly connected, Loopback0
           11.0.0.0/24 is subnetted, 1 subnets
      C       11.1.1.0 is directly connected, Loopback1
      C    192.1.1.0/24 is directly connected, Serial0
      Dùng lệnh show ip route trên RouterB. Lưu ý các host – specific route sẽ xuất hiện (10.1.1.1)
      Code:
      RouterB#sh ip route
      ...
      Gateway of last resort is not set
      
           10.0.0.0/32 is subnetted, 1 subnets
      O       10.1.1.1 [110/65] via 192.1.1.2, 00:01:36, Serial0
           153.1.0.0/32 is subnetted, 1 subnets
      C       153.1.1.1 is directly connected, Loopback1
           152.1.0.0/32 is subnetted, 1 subnets
      C       152.1.1.1 is directly connected, Loopback0
      C       192.1.1.0/24 is directly connected, Serial0
      Lưu ý, những con số xuất hiện sau mỗi địa chỉ đích [110/65] là AD (administrative distance) và routing metric. AD được dùng để so sánh các route học được từ những giao thức khác nhau. Chẳng hạn nếu router học được route 10.1.1.10 từ OSPF và RIP, nó sẽ ưu tiên route học từ OSPF do có AD nhỏ hơn. Routing metric trong OSPF là cost, được tính bằng hàm tỉ lệ nghịch với băng thông của kết nối. Router dùng metric để so sánh các route học từ cùng một giao thức. Ví dụ nếu route 10.1.1.0 học từ hai router chạy OSPF nó sẽ ưu tiên route nào có metric nhỏ hơn.
      Từ router A dùng lệnh show ip ospf interface để xem các interface chạy OSPF. Ở đây interface s0 và loopback được cấu hình OSPF và được đặt trong area 0. Lệnh này cũng cho xem network type, timer intervals và adjacent neighbors.
      Code:
      RouterA#sh ip ospf interface 
      Ethernet0 is administratively down, line protocol is down 
         OSPF not enabled on this interface
       Loopback0 is up, line protocol is up 
        Internet Address 10.1.1.1/24, Area 0 
        Process ID 64, Router ID 11.1.1.1, Network Type LOOPBACK, Cost: 1
        Loopback interface is treated as a stub Host
       Loopback1 is up, line protocol is up 
         OSPF not enabled on this interface
       Serial0 is up, line protocol is up 
        Internet Address 192.1.1.1/24, Area 0 
        Process ID 64, Router ID 11.1.1.1, Network Type POINT_TO_POINT, Cost: 64
        Transmit Delay is 1 sec, State POINT_TO_POINT,
        Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
          Hello due in 00:00:07
        Neighbor Count is 1, Adjacent neighbor count is 1 
          Adjacent with neighbor 153.1.1.1
        Suppress hello for 0 neighbor(s)
      Serial1 is administratively down, line protocol is down 
         OSPF not enabled on this interface
      Từ router B, dùng lệnh show ip ospf neighbor để xem trạng thái của các neighbor. Lưu ý các dòng neighbor id và state. Ở đây neighbor id là 11.1.1.1 là địa chỉ ip của interface loopback. Địa chỉ ip của interface loopback luôn được dùng làm router ID. Nếu không có interface loopback thì địa chỉ IP lớn nhất trên router được chọn làm router ID.
      Code:
      RouterB#sh ip ospf neighbor 
      
      Neighbor ID     Pri   State           Dead Time   Address         Interface
      11.1.1.1          1   FULL/  -        00:00:33    192.1.1.1       Serial0
      Trạng thái của router là Full nghĩa là cả hai router đã đồng bộ về database. Full là trạng thái cuối cùng của hai router.

      { --- Trích Lab 4-1 Basic OSPF - CCLabPro Vol.3 Routing --- }

      Comment


      • #4
        Xin cho hỏi là để xem quá trình thiết lập adjacency và quá trình bầu chọn DR/BDR giữa các router OSPF thì có tất cả các lệnh nào?

        Cám ơn !
        We get here to share knowledge !!!

        \" Người không sương khói mà sương khói
        Qua lại mơ hồ dáng dấp nhau \"
        +-----------------------------------------------+
        “Xương lành, sẹo liền
        Đau thương rồi sẽ qua
        Vinh quang là mãi mãi”
        +------------------------------------------------+

        Comment


        • #5
          hajime

          Về quá trình bầu chọn, dùng lệnh

          #debug ip ospf adjacency

          Cám ơn
          Đặng Quang Minh, CCIEx2#11897 (Enterprise Infrastructure, Wireless), DEVNET, CCSI#31417

          Email : dangquangminh@vnpro.org
          https://www.facebook.com/groups/vietprofessional/

          Comment


          • #6
            Cám ơn anh Minh,
            Lệnh này thì em biết rồi. Ngoài lệnh này ra và debug events thì có lệnh nào khác để xem quá trình bầu chọn DR/BDR nữa không ?

            Em xin cám ơn !
            We get here to share knowledge !!!

            \" Người không sương khói mà sương khói
            Qua lại mơ hồ dáng dấp nhau \"
            +-----------------------------------------------+
            “Xương lành, sẹo liền
            Đau thương rồi sẽ qua
            Vinh quang là mãi mãi”
            +------------------------------------------------+

            Comment


            • #7
              Nghe tin R3 đã là một CCIE, xin chúc mừng!

              tuanevnit xin hỏi trafic của OSPF và các Routing Protocol khác trong mạng WAN chiếm băng thông có nhiều không? đòi hỏi RAM, CPU của Router như thế nào? mình thử trên Router 2501 thì bị treo.
              Mai Anh Tuấn:)

              Comment


              • #8
                tuanevnit

                OSPF không đòi hỏi nhiều RAM/CPU của hệ thống. Govap thường làm lab OSPF trên Cisco 2500 với cấu hình 8M Flash/8MB RAM và chạy tốt. BGP là một trường hợp khác. Các router 2500 với cấu hình trên không thể chạy BGP.

                Comment


                • #9
                  Lab của anh là Boson hay Router thiệt?
                  IPSEC

                  Comment

                  Working...