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 route−reflector−client
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 route−reflector−client 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 của RR mà không phải là clients
được gọi là non−clients.
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 non−client 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à non−client. Hãy nhớ rằng clients của một RR được
tạo bằng cách sử dụng lệnh neighbor
route−reflector−client. 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:
- Tuyến đường từ một non−client peer: Ánh xạ tới tất cả clients trong cluster.
- Tuyến đường từ một client peer: Ánh xạ tới tất cả non−client peers và client peers.
- Tuyến đường từ một EBGP peer: Gửi cập nhất đến tất cả client và non−client 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 remote−as 100
neighbor 2.2.2.2 route−reflector−client
neighbor 1.1.1.1 remote−as 100
neighbor 1.1.1.1 route−reflector−client
neighbor 7.7.7.7 remote−as 100
neighbor 4.4.4.4 remote−as 100
neighbor 8.8.8.8 remote−as 200
RTB#
router bgp 100
neighbor 3.3.3.3 remote−as 100
neighbor 12.12.12.12 remote−as 300
RTD#
router bgp 100
neighbor 6.6.6.6 remote−as 100
neighbor 6.6.6.6 route−reflector−client
neighbor 5.5.5.5 remote−as 100
neighbor 5.5.5.5 route−reflector−client
neighbor 7.7.7.7 remote−as 100
neighbor 3.3.3.3 remote−as 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:
- Originator−id: đâ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 router−id (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.
- Cluster−list: 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 có 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 cluster−id để một RR có thể nhận cập nhật từ RR khác trong
cùng một cluster.
Một cluster−list là một chuỗi các cluster−ids của các
tuyến đường đã được thông qua. Khi một RR ánh xạ một tuyến đường từ non−clients bên ngoài cluster, nó sẽ thêm các cluster−id cục bộ tới cluster−list. Nếu bản cập nhật này có một cluster−list 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 cluster−id 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 remote−as 100
neighbor 5.5.5.5 remote−as 100
neighbor 5.5.5.5 route−reflector−client
neighbor 6.6.6.6 remote−as 100
neighbor 6.6.6.6 route−reflector−client
neighbor 7.7.7.7 remote−as 100
neighbor 3.3.3.3 remote−as 100
neighbor 9.9.9.9 remote−as 300
bgp route−reflector 10 (This is
the cluster−id)
RTD#
router bgp 100
neighbor 10.10.10.10 remote−as 100
neighbor 5.5.5.5 remote−as 100
neighbor 5.5.5.5 route−reflector−client
neighbor 6.6.6.6 remote−as 100
neighbor 6.6.6.6 route−reflector−client
neighbor 7.7.7.7 remote−as 100
neighbor 3.3.3.3 remote−as 100
neighbor 11.11.11.11 remote−as 400
bgp route−reflector 10 (This is
the cluster−id)
RTF#
router bgp 100
neighbor 10.10.10.10 remote−as 100
neighbor 4.4.4.4 remote−as 100
neighbor 13.13.13.13 remote−as 500
RTC#
router bgp 100
neighbor 1.1.1.1 remote−as 100
neighbor 1.1.1.1 route−reflector−client
neighbor 2.2.2.2 remote−as 100
neighbor 2.2.2.2 route−reflector−client
neighbor 4.4.4.4 remote−as 100
neighbor 7.7.7.7 remote−as 100
neighbor 10.10.10.10 remote−as 100
neighbor 8.8.8.8 remote−as 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à peer−groups 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 client−to−client reflection được kích hoạt mặc định trên RR. Nếu BGP client−to−client 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 có 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 remote−as 400
neighbor 3.3.3.3 remote−as 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 remote−as 100
network 175.10.0.0
RTA#
router bgp 100
network 150.10.0.0
neighbor 3.3.3.4 remote−as 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 remote−as 300
neighbor 150.10.50.1 remote−as 100
network 150.10.0.0
RTB#
router bgp 100
neighbor 150.10.30.1 remote−as 100
RTC#
router bgp 300
neighbor 170.10.20.1 remote−as 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 {ip−address|peer−group−name}
next−hop−self
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 remote−as 100
neighbor 170.10.20.1 next−hop−self
RTC quảng bá 180.20.0.0
với NextHop là 170.10.20.2







