Tổng quan về OSPF


OSPF – Open Shortest Path First, là một giao thức định tuyến link – state điển hình. Đây là một giao thức được sử dụng rộng rãi trong các mạng doanh nghiệp có kích thước lớn.
Một số đặc điểm chính của giao thức OSPF:
1. OSPF là một giao thức link – state điển hình. Mỗi router khi chạy giao thức sẽ gửi các trạng thái đường link của nó cho tất cả các router trong vùng (area). Sau một thời gian trao đổi, các router sẽ đồng nhất được bảng cơ sở dữ liệu trạng thái đường link (Link State Database – LSDB) với nhau, mỗi router đều có được “bản đồ mạng” của cả vùng. Từ đó mỗi router sẽ chạy giải thuật Dijkstra tính toán ra một cây đường đi ngắn nhất (Shortest Path Tree) và dựa vào cây này để xây dựng nên bảng định tuyến.
2. OSPF có AD = 110.
3. Metric của OSPF còn gọi là cost, được tính theo bandwidth trên cổng chạy OSPF.
4. OSPF chạy trực tiếp trên nền IP, có protocol id là 89.
5. OSPF là một giao thức chuẩn quốc tế, được định nghĩa trong RFC – 2328.
Ta cùng review hoạt động của OSPF thông qua các bước hoạt động như sau:
1. Bầu chọn Router – id.
2. Thiết lập quan hệ láng giềng (neighbor).
3. Trao đổi LSDB.
4. Tính toán xây dựng bảng định tuyế

BGP Route Reflectors


Một giải pháp cho sự bùng nổ của số lượng các liên kết IBGP trong một AS là Route Reflectors (RR).

BGP sẽ không quảng bá một tuyến đường được học từ một IBGP cho một IBGP khác. Với RR chúng ta có thể cho phép một bộ định tuyến ánh xạ (reflect) IBGP được học cho một IBGP khác. Điều này sẽ giảm số lượng các liên kết IBGP trong một AS.
Trong những trường hợp bình thường, một mạng lưới IBGP full mesh nên được duy trì giữa RTA, RTB và RTC trong AS100. Bằng cách sử dụng các khái niệm đường phản xạ RR, RTC có thể được bầu làm một RR và có peer IBGP  ngang hàng với  RTA và RTB. Peer giữa RTA và RTB là không cần thiết vì RTC s  phản xạ đường cho các bản cập nhật đến từ RTA và RTB.

neighbor routereflectorclient

Các router với các lệnh trên sẽ là RR và hàng xóm sẽ là clients của RR đó. Trong ví dụ này, RTC sẽ được cấu hình neighbor routereflectorclient trỏ tới IP của RTA và RTB. Sự kết hợp của RR và client của nó được gọi là cluster. RTA, RTB và RTC trên sẽ tạo thành một cluster với một RR duy nhất trong AS100.
Các peer IBGP khác ca RR mà không phi là clients được gọi là nonclients.
Trong một AS có thể có nhiều hơn một route reflector; một RR sẽ đối xử với các RR khác như một IBGP khác. Các RR có thể cùng thuộc cluster (client group) hoặc cluster khác. Trong một cấu hình đơn giản, AS có thể được chia thành nhiều cluster, mỗi RR sẽ được cấu hình với RR khác như một nonclient peers trong mô hình fully meshed. Clients không peer với IBGP bên ngoài cluster của chúng.

Xét sơ đồ trên: RTA, RTB và RTC tạo thành một cluster duy nhất với RTC là RR. Theo RTC, RTA và RTB là clients và các router khác là nonclient. Hãy nhớ rằng clients  của một RR được tạo bằng cách sử dụng lệnh neighbor routereflectorclient. Cũng như vậy, RTD là RR cho clients RTE và RTF; RTG là một RR trong một nhóm thứ ba. Lưu ý rằng RTD, RTC và RTG là fully meshed nhưng các router trong một cluster thì không. Khi một tuyến đường nhận được một RR, nó sẽ làm như sau:

  1. Tuyến đường từ một nonclient peer: Ánh xạ tới tất cả clients trong cluster.
  2. Tuyến đường từ một client peer: Ánh xạ tới tất cả nonclient peers và client peers.
  3. Tuyến đường từ một EBGP peer: Gửi cập nhất đến tất cả client và nonclient peers.

Sau đây là cấu hình BGP của các router RTC, RTD và RTB:
RTC#
router bgp 100
neighbor 2.2.2.2 remoteas 100
neighbor 2.2.2.2 routereflectorclient
neighbor 1.1.1.1 remoteas 100
neighbor 1.1.1.1 routereflectorclient
neighbor 7.7.7.7 remoteas 100
neighbor 4.4.4.4 remoteas 100
neighbor 8.8.8.8 remoteas 200

RTB#
router bgp 100
neighbor 3.3.3.3 remoteas 100
neighbor 12.12.12.12 remoteas 300

RTD#
router bgp 100
neighbor 6.6.6.6 remoteas 100
neighbor 6.6.6.6 routereflectorclient
neighbor 5.5.5.5 remoteas 100
neighbor 5.5.5.5 routereflectorclient
neighbor 7.7.7.7 remoteas 100
neighbor 3.3.3.3 remoteas 100

Khi IBGP được học tuyến đường bằng cách ánh xạ, nó có thể xảy ra các vòng lặp thông tin định tuyến. Route Reflector có một số phương pháp để ngăn chặn điều này:
  1. Originatorid: đây là một tùy chọn, thuộc tính non transitive BGP dài 4 bytes và được tạo bởi một RR. Thuộc tính này sẽ mang routerid (RID) của router khởi tạo trong AS cục bộ. Như vậy nếu thông tin định tuyến trở lại router khởi tạo nguồn tin đó, nó sẽ bị bỏ qua.
Giá trị orgin là bước thứ 5 trong 13 bước để chọn tuyến đường.
  1. Clusterlist: Sđược thảo luận cụ thể ở dưới


BGP Multiple RRs within a Cluster 

Thông thường, một nhóm các clients sẽ có một RR duy nhất. Trong trường hợp này, các cluster sẽ được xác định bởi các router ID của RR. Để tăng cường khả năng dự phòng và tránh Single Points Of Failure, một cluster thể có nhiều hơn một RR. Tất cả RR trong cùng một nhóm cần phải được cấu hình với 4 byte clusterid để một RR có thể nhận cập nhật từ RR khác trong cùng một cluster.

Một clusterlist là một chuỗi các clusterids của các tuyến đường đã được thông qua. Khi một RR ánh xạ một tuyến đường từ nonclients bên ngoài cluster, nó sẽ thêm các  clusterid cục bộ tới clusterlist. Nếu bản cập nhật này có một clusterlist rỗng thì RR sẽ tự tạo ra. Sử dụng thuộc tính này, một RR có thể xác định được các thông tin định tuyến bị lặp trở lại một cluster do cấu hình sai. Nếu các clusterid cục bộ được tìm thấy trong cluster-list, quảng bá sẽ bị bỏ qua.

Trong sơ đồ trên RTD, RTE, RTF và RTH thuộc về một cluster với RTD và RTH cùng là RR cho cluster này. Lưu ý rằng RTH cấu hình fully mesh ngang hàng với tất cả các RR. Trong trường hợp RTD down, RTH sẽ thay thế nó. Sau đây là cấu hình của RTH, RTD, RTF và RTC:

RTH#
router bgp 100
neighbor 4.4.4.4 remoteas 100
neighbor 5.5.5.5 remoteas 100
neighbor 5.5.5.5 routereflectorclient
neighbor 6.6.6.6 remoteas 100
neighbor 6.6.6.6 routereflectorclient
neighbor 7.7.7.7 remoteas 100
neighbor 3.3.3.3 remoteas 100
neighbor 9.9.9.9 remoteas 300
bgp routereflector 10 (This is the clusterid)

RTD#
router bgp 100
neighbor 10.10.10.10 remoteas 100
neighbor 5.5.5.5 remoteas 100
neighbor 5.5.5.5 routereflectorclient
neighbor 6.6.6.6 remoteas 100
neighbor 6.6.6.6 routereflectorclient
neighbor 7.7.7.7 remoteas 100
neighbor 3.3.3.3 remoteas 100
neighbor 11.11.11.11 remoteas 400
bgp routereflector 10 (This is the clusterid)

RTF#
router bgp 100
neighbor 10.10.10.10 remoteas 100
neighbor 4.4.4.4 remoteas 100
neighbor 13.13.13.13 remoteas 500

RTC#
router bgp 100
neighbor 1.1.1.1 remoteas 100
neighbor 1.1.1.1 routereflectorclient
neighbor 2.2.2.2 remoteas 100
neighbor 2.2.2.2 routereflectorclient
neighbor 4.4.4.4 remoteas 100
neighbor 7.7.7.7 remoteas 100
neighbor 10.10.10.10 remoteas 100
neighbor 8.8.8.8 remoteas 200

Lưu ý rằng ta không cần lệnh cluster cho RTC vì chỉ có một RR tồn tại trong cluster đó. Một điều quan trọng cần lưu ý nữa đó là peergroups không được sử dụng trong cấu hình ở trên. Nếu clients bên trong một cluster không thiết lập IBGP trực tiếp giữa chúng và các client trao đổi cập nhật thông qua các RR, peer-goups không nên sử dụng.
Lệnh bgp clienttoclient reflection được kích hoạt mặc định trên RR. Nếu BGP clienttoclient reflection được tắt trên RR và việc tạo dự phòng BGP đã được thực hiện giữa các client thì sử dụng peer groups sẽ là phù hợp.

BGP Synchronization ( đồng bộ)



Trước khi thảo luận về đồng bộ hóa ta hãy nhìn vào kịch bản sau đây. RTC trong AS300 gửi bản tin cập nhật về mạng 170.10.0.0. RTA và RTB đang chạy IBGP, vì vậy RTB sẽ nhận được bản cập nhật và có thể tới mạng 170.10.0.0 qua next hop là  2.2.2.1 (hãy nhớ rằng next hop được thực hiện thông qua IBGP). Để đạt được next hop, RTB sẽ phải gửi lưu lượng truy cập qua RTE.

Giả sử rằng RTA không redistribute mạng 170.10.0.0 vào trong IGP, vì thế ở thời điểm này RTE không biết mạng 170.10.0.0 tồn tại.

Nếu RTB bắt đầu quảng bá tới AS400 rằng nó thể tới mạng 170.10.0.0 sau đó lưu lượng truy cập đến từ RTD qua RTB để tới mạng 170.10.0.0 sẽ đi qua và bị drop ở RTE.

Trạng thái đồng bộ hóa: Nếu một AS có lưu lượng truy cập từ một AS khác đến một AS thứ ba, BGP không nên quảng bá một tuyến đường trước khi tất cả các router trong AS đó đã được học về các tuyến đường thông qua IGP.

BGP sẽ đợi cho đến khi IGP biết được các tuyến đường trong AS và sau đó sẽ quảng bá cho các AS bên ngoài. Điều này được gọi là đồng bộ hóa.

Trong ví dụ trên, RTB sẽ chờ để biết thông tin về mạng 170.10.0.0 thông qua IGP trước khi nó bắt đầu gửi các bản cập nhật cho RTD. Ta có thể đánh lừa RTB nghĩ rằng IGP được truyền thông tin bằng cách thêm một tuyến tĩnh trong RTB trỏ đến mạng 170.10.0.0. Nên cẩn thận để đảm bảo rằng các router khác có thể tới mạng 170.10.0.0 nếu không ta sẽ có vấn đề để tới mạng đó.
Vô hiệu hóa Synchronization

Trong một số trường hợp, ta không cần phải đồng bộ hóa. Khi tất cả các router đều chạy BGP hoặc khi không muốn có lưu lượng truyền qua AS nào đó, ta thể vô hiệu hóa việc đồng bộ. Vô hiệu hóa tính năng này có thể cho phép ta có ít tuyến đường trong IGP hơn và BGP cho phép hội tụ nhanh hơn.

Vô hiệu hóa Synchronization không phải là tự động, nếu tất cả các router trong AS chạy BGP và bạn không phải chạy bất kỳ IGP, các router không có cách nào biết được điều đó, và router sẽ phải chờ mãi cho một bản cập nhật IGP về một tuyến đường nhất định trước khi gửi nó cho các router bên ngoài. Bạn cần phải vô hiệu hóa đồng bộ bằng tay trong trường hợp này để định tuyến để làm việc một cách chính xác:

router bgp 100
no synchronization

(Phải dùng lệnh clear ip bgp để lệnh no syn được thực hiện)


RTB#
router bgp 100
network 150.10.0.0
neighbor 1.1.1.2 remoteas 400
neighbor 3.3.3.3 remoteas 100
no synchronization
!−− RTB puts 170.10.0.0 in its IP routing table and advertises it to
!−− RTD even if it does not have an IGP path to 170.10.0.0)
RTD#
router bgp 400
neighbor 1.1.1.1 remoteas 100
network 175.10.0.0

RTA#
router bgp 100
network 150.10.0.0
neighbor 3.3.3.4 remoteas 100

Mô phỏng cuộc gọi VoIP bằng AsteriskNOW

 Mô phỏng cuộc gọi VoIP bằng AsteriskNOW

Các phần mềm cần thiết:
+ Phần mềm máy ảo VMWare WorkStation dùng cho quá trình tạo ra các máy  ảo.
+ Phần mềm Wireshark phục vụ cho việc chặn bắt và phân tích bản tin
+ Phần mềm VoIP client cài đặt trên các máy trạm với mục đích khởi tạo và  kết cuối các phiên VoIP. Ở đây chúng ta sử dụng phần mềm Zoiper Free với lý do hỗ trợ tốt các máy trạm Windows XP cài đặt trong môi trường ảo hóa. Ngoài ra, phục vụ cho quá trình cài đặt tổng đài VoIP Asterisk cũng như các máy trạm Windows XP ta cần có các file ảnh đĩa của các phần mềm này: Ảnh đĩa  của AsteriskNOW 3.0 và Windows XP SP3.

Hướng dẫn bằng video:

Phần 1: Hướng dẫn cài đặt tổng đài AsteriskNOW


Việc cài đặt 2 client để thiết lập cuộc gọi bằng winxp thì quá dễ rồi, nó chỉ là cài winxp thông thường, có trong tài liệu đính kèm.

Phần 2: Thiết lập cuộc gọi bằng Zoiper và bắt gói tin bằng wireshark:



Tài liệu:
https://www.mediafire.com/?p5d8fufu4n5u5u5

Các phần mềm:
http://www.mediafire.com/download/grcpxco4pmbm79w/tool_bao+hieu.rar
Bao gồm:
Windows XP SP3 JG28K-H9Q7X-BH6W4-3PDCQ-6XBFJ.iso
AsteriskNOW-3.0.0-i386-DVD.iso
Wireshark-win32-1.10.0.exe
Zoiper_Free_2.39_Installer.exe

Còn phần mềm: VMware-workstation-full-10.0.0-1295980 thì trên mạng đầy rẫy
Key của VM10 đây:
1Z0G9-67285-FZG78-ZL3Q2-234JG
4C4EK-89KDL-5ZFP9-1LA5P-2A0J0
HY086-4T01N-CZ3U0-CV0QM-13DNU
5F6E9-DHL4J-HZ640-KLA70-8C0NN

BGP - Thuộc tính Nexthop và lệnh next-hop-self


BGP Nexthop Attribute


Thuộc tính BGP nexthop là địa chỉ IP của hop tiếp theo mà mạng đó được sử dụng để tới một địa điểm nhất định.

Đối với EBGP, hop tiếp theo luôn luôn là địa chỉ IP của những hàng xóm được quy định trong lệnh neighbor. Trong ví dụ trên, RTC sẽ quảng bá 170.10.0.0 để RTA có thể tới được 170.10.20.2 và RTA sẽ quảng bá 150.10.0.0 để RTC tới được mạng 170.10.20.1. Đối với IBGP, hop kế tiếp được quảng bá bởi EBGP nên được đưa vào trong IBGP. Bởi vì các quy tắc đó, RTA sẽ quảng bá 170.10.0.0 tới IBGP hàng xóm RTB, với hop tiếp theo là 170.10.20.2. Vì vậy theo RTB, hop tiếp theo để tới mạng 170.10.0.0 là 170.10.20.2 và không phải là mạng 150.10.30.1.

You should make sure that RTB can reach 170.10.20.2 via IGP, otherwise RTB will drop packets destined to 170.10.0.0 because the next hop address would be inaccessible. For example, if RTB is running IGRP you could also run igrp on RTA network 170.10.0.0. You would want to make IGRP passive on the link to RTC so BGP is only exchanged.
Bạn nên chắc chắn rằng RTB có thể tới mạng 170.10.20.2 thông qua IGP, nếu không RTB sẽ loại bỏ gói tin đến 170.10.0.0 vì không có tuyến đường tới đó.
RTA#
router bgp 100
neighbor 170.10.20.2 remoteas 300
neighbor 150.10.50.1 remoteas 100
network 150.10.0.0

RTB#
router bgp 100
neighbor 150.10.30.1 remoteas 100

RTC#
router bgp 300
neighbor 170.10.20.1 remoteas 100
network 170.10.0.0

*RTC sẽ quảng bá mạng 170.10.0.0 tới RTA với NextHop 170.10.20.2
*RTA sẽ quảng bá mạng 170.10.0.0 tới RTB với NextHop 170.10.20.2
(External NextHop qua EBGP sđược gửi qua IBGP)

BGP Nexthop (Multiaccess Networks)

Ví dụ sau đây cho thấy cách nexthop sẽ hoạt động trên mạng multiaccess như ethernet.

Giả sử rằng RTC và RTD trong AS300 đang chạy OSPF. RTC đang chạy BGP với RTA. RTC có thể tới mạng 180.20.0.0 qua 170.10.20.3. Khi RTC gửi một bản cập nhật BGP tới RTA về 180.20.0.0 nó sẽ sử dụng địa chỉ 170.10.20.3 như là hop kế tiếp (không phải địa chỉ IP của nó 170.10.20.2). Điều này là do mạng giữa RTA, RTC và RTD là một mạng multiaccess và điều này khiến RTA sử dụng RTD như là một hop kế tiếp tới mạng 180.20.0.0 hơn là làm thêm hop qua RTC.

* RTC sẽ quảng bá 180.20.0.0 tới RTA với nexthop là 170.10.20.3.

BGP Nexthop (NBMA)


Nếu quá trình chuyển tiếp là một frame relay hoặc mạng NBMA (Non Broadcast Media Access) mà ta muốn RTC sẽ quảng bá 180.20.0.0 để RTA có next hop là 170.10.20.3. Vấn đề là RTA không có PVC trực tiếp đến RTD và không thể tới được hop kế tiếp. Trong trường hợp này định tuyến sẽ thất bại.

Để khắc phục tình trạng này một lệnh gọi là NextHopself được tạo ra.

Lệnh Nexthopself

neighbor {ipaddress|peergroupname} nexthopself

Lệnh next-hop-self cho phép ta buộc BGP sử dụng một địa chỉ IP được chỉ định là hop kế tiếp thay vì để giao thức chọn hop tiếp theo.

Trong ví dụ trước, cấu hình sau đây giải quyết vấn đề:

RTC#
router bgp 300
neighbor 170.10.20.1 remoteas 100
neighbor 170.10.20.1 nexthopself

RTC quảng bá 180.20.0.0 với NextHop là 170.10.20.2

- Copyright © Kiến thức tổng quan - Vòng Đá 5A - Powered by Blogger - Designed by SnowBlack -