Thực hành buổi 4
📝 ĐỀ BÀI
Kiến thức
Định tuyến nội miền
Là nhóm các mạng
LANvàroutercó chung chính sách quản trị.Các giải thuật mà
routersử dụng để vạch đường gọi làIGP(Interior GateWay Protocol).
💡 Giải thuật RIP và OSPF
RIP(Routing Information Protocol): sử dụng giải thuậtDistance Vector(theo nguyên lý bellman-Ford), phiên bảnRIPversion 2:Đơn vị đo khoảng cách dùng trong vạch đường là
hopsSố lượng số bước nhảy tối đa là
15Chù kỳ cập nhật bảng vạch đường là
30s(có thể tùy chỉnh)Tầng vận chuyển sử dụng UDP với cổng là
520
==> Phù hợp triển khai trên các định tuyến nội miền có kích thước nhỏ và không phức tạp
OSPF(Open Shortest Path First): sử dụng giải thuậtLSP(Link State Packet) dựa trên thuật toán Dijkstra, phiên bảnOSPFversion 2Hội tụ nhanh và không có tình trặng lặp vô tận việc vạch đường
Hỗ trợ mạng kích thước lớn
==> Phù hợp triển khai trên các định tuyến nội miền có kích thước lớn và phức tạp
⚠️ LƯU Ý
Trong
katharađể sử dụng định tuyến nội miền sử dụng công cụ có sẵn làQuagga: là dịch vụ chứa các giải thuật vạch đường nhưRIPv2vàOSPFv2hoạt động tốt trênIPv4,IPv6...Được cài đặt tại đường dẫn
/etc/quaggatrong máy ảoKathara
1.Bài tập 12
💡 MÔ HÌNH
Xây dựng hệ thống mạng với mô hình như sau :

Tạo thư mục và các file
mkdir ~/Desktop/BaiTap12
cd ~/Desktop/BaiTap12
mkdir router1 router2 router3 router4
touch lab.conf router1.startup router2.startup router3.startup router4.startup
Thiết lập các file
:::: tabs
::: tab lab.conf
router1[0]=H
router1[1]=G
router1[2]=E
router1[3]=A
router2[0]=E
router2[1]=F
router2[2]=B
router3[0]=F
router3[1]=G
router3[2]=I
router3[3]=C
router4[0]=D
router4[1]=I
router4[2]=H
:::
::: tab router1.startup
ifconfig eth0 100.1.0.13/30 up
ifconfig eth1 100.1.0.9/30 up
ifconfig eth2 100.1.0.1/30 up
ifconfig eth3 100.1.1.1/24 up
/etc/init.d/quagga start
:::
::: tab router2.startup
ifconfig eth0 100.1.0.2/30 up
ifconfig eth1 100.1.2.1/24 up
ifconfig eth2 100.1.2.1/24 up
/etc/init.d/quagga start
:::
::: tab router3.startup
ifconfig eth0 100.1.0.6/30 up
ifconfig eth1 100.1.0.10/30 up
ifconfig eth2 100.1.0.17/30 up
ifconfig eth3 100.1.3.1/24 up
/etc/init.d/quagga start
:::
::: tab router4.startup
ifconfig eth0 100.1.4.1/24 up
ifconfig eth1 100.1.0.18/30 up
ifconfig eth2 100.1.0.14/30 up
/etc/init.d/quagga start
::: ::::
💡 Giải thích
Lệnh etc/init.d/quagga start: để khởi động dịch vụ Quagga
Cấu hình Quagga
Trong mỗi thư viện router hãy tạo thư mục và cấu hình như sau :
-- router1
-- etc
-- quagga
+ daemons
+ ripd.conf
+ zebra.conf
:::: tabs
::: tab daemons
zebra=yes
ripd=yes
:::
::: tab zebra.conf
hostname zebra
password zebra
enable password zebra
log file /var/log/zebra/zebra.log
:::
::: tab rip.conf
hostname ripd
password zebra
enable password zebra
router rip
network 100.1.0.0/16
redistribute connected
log file /var/log/zebra/ripd.log
::: ::::
💡 GIẢI THÍCH
zebra.conf: chứa nội dung miêu tả cho công cụQuagganhư :username và password
Đường dẫn nhật ký (
log file)
daemons: chứa khai báo các giao thức vạch đường đượcQuaggahỗ trợ như :RIPv2trênIPv4: đặt tên làripdOSPFv2trênIPv4: đặt tên làospfdBGPtrênIPv4vàIPv6: đặt tên làbgpd
ripd.conf: chứa nội dung miêu tả hoạt động của giải thuậtRIPv2Lệnh
router rip: cho biết router sẽ sử dụngRIPv2làm vạch đườngLệnh
network: là phạm vi gửi và nhận gói tin, có thể sử dụngipkhác dưới24Lệnh
redistribute connected: cho phép router đóng gói các thông tin về những nhánh mạng
💡 MẸO
Sử dụng lệnh sau để copy qua các router còn lại
cp -r router1/etc router2
cp -r router1/etc router3
cp -r router1/etc router4
Sử dụng lệnh tree để xem cấu trúc file (cài bằng lệnh sau: sudo apt install tree)
Khởi động máy ảo
Sử dụng dụng lệnh sau để khởi tạo các máy ảo Kathara vừa khởi tạo :
kathara lstart
Vậy là bạn đã sử dụng dịch vụ
Quaggathành công.
Sử dụng lệnh sau để kiểm tra dịch vụ Quagga
/etc/init.d/quagga status
Nếu không hiện gì cả ==> dịch vụ chưa được khởi động
ripd watchquagga==> thiết lập choRIPv2vàQuaggađã thành công
watchquagga==> có sai sót trênripd.confnênRIPv2không hoạt động
Nhận xét máy ảo
Sử dụng lệnh route để kiểm tra vạch đường trên cách máy ảo :
Kiểm tra ping
Từ router1 hãy ping tới router4 và từ router2 đến router4 bằng lệnh sau:
# thực hiện trên pc1
ping 100.1.4.1 -c 5
# thực hiện trên pc2
ping 100.1.0.10 -c 5
Kiểm tra tcpdump
Sử dụng lệnh tcpdump sau đây trên router1 để kiểm tra đường đi các gói tin
tcmpdump -i any -w /shared/BaiTap12_router1.pcap
⚠️ LƯU Ý
Sử dụng CRTL+C để dừng sau tầm 20s
Kiểm tra telnet
Trên router bất kỳ sử dụng lệnh sau để đăng nhập vào dịch vụ RIPv2:
telnet localhost ripd
Password :
zebra
Sau đó trên giao diện ripd, sử dụng lệnh:
show ip rip
Phân tích pcap bằng WireShark
Mở gói BaiTap12_router1.pcap trong thư mục shared bằng WireShark và chọn gói tin có địa chỉ 100.1.0.10 (router3)
💡 NHẬN XÉT
Địa chỉ IP đích của khung này là
224.0.0.9, nó là địa chỉMulticast(vì cácpackagesgửi đến những đích mà nó cùng giao thức mạng với nguồn)Gói tin sử dụng giao thức trên tầng vận chuyển là
user datagram, và hoạt động ở cổng520Trong trường
Routing Infomation Protocolđây là bộ định tuyến sử dụng giải thuậtRIPv2Ngoài gói tin
RIPv2có địa chỉ100.1.0.10thìrouter3còn nhận dữ liệu của cácrouter 1,routere2vàrouter4
Tắt một nhánh mạng
Trên router1 thực hiện tắt nhánh mạng eth1 bằng lệnh
ifconfig eth1 down
Điều này sẽ làm cho mô hình mạng như sau:
Trên router1 thực hiện ping tới router3 bằng lệnh
ping 100.1.0.10 -c 7
Không thành công vì lúc này đã mất đường liên kết tới
router3
Thực hiện kiểm tra bảng vạch đường bằng route của router1:
| Cũ | Mới |
|---|---|
![]() | ![]() |
==> Cụ thể không còn liên kết nào ở eth1 như trên, giao diện eth2 của router1 sẽ thay thế giao diện eth1 đã bị tắt đi
KẾT LUẬN
Giải thuật RIPv2 trên router tự động cập nhật lại đường đi khi cấu trúc mạng thay đổi để đảm bảo dữ liệu đường truyền tải với đường đi ngắn nhất và không bị mất mát dữ liệu
Hủy máy ảo
Sử dụng lệnh kathara sau để hủy hệ thống máy ảo
kathara lclean
2.Bài tập 13
💡 MÔ HÌNH
Xây dựng máy ảo theo mô hình sau đây :

Tạo thư mục và các file
Xây dựng mô hình mạng như dưới đây:

Bằng các lệnh sau :
mkdir ~/Desktop/BaiTap13
cd ~/Desktop/BaiTap13
mkdir router1 router2 router3 router4
touch lab.conf router1.startup router2.startup router3.startup router4.startup
Thiết lập các file
Cấu hình và thiết lập các file như sau:
:::: tabs
::: tab lab.conf
router1[0]=H
router1[1]=G
router1[2]=E
router1[3]=A
router2[0]=E
router2[1]=F
router2[2]=B
router3[0]=F
router3[1]=G
router3[2]=I
router3[3]=C
router4[0]=D
router4[1]=I
router4[2]=H
:::
::: tab router1.startup
ifconfig eth0 100.1.0.13/30 up
ifconfig eth1 100.1.0.9/30 up
ifconfig eth2 100.1.0.1/30 up
ifconfig eth3 100.1.1.1/24 up
/etc/init.d/quagga start
:::
::: tab router2.startup
ifconfig eth0 100.1.0.2/30 up
ifconfig eth1 100.1.0.5/30 up
ifconfig eth2 100.1.2.1/24 up
/etc/init.d/quagga start
:::
::: tab router3.startup
ifconfig eth0 100.1.0.6/30 up
ifconfig eth1 100.1.0.10/30 up
ifconfig eth2 100.1.0.17/30 up
ifconfig eth3 100.1.3.1/24 up
/etc/init.d/quagga start
:::
::: tab router4.startup
ifconfig eth0 100.1.4.1/24 up
ifconfig eth1 100.1.0.18/30 up
ifconfig eth2 100.1.0.14/30 up
/etc/init.d/quagga start
::: ::::
Cấu hình Quagga
Trong mỗi thư viện router hãy tạo thư mục như sau:
:::: tabs
::: tab daemons
zebra=yes
ospfd=yes
:::
::: tab zebra.conf
hostname zebra
password zebra
enable password zebra
log file /var/log/zebra/zebra.log
:::
::: tab ospfd.conf
hostname ospfd
password zebra
enable password zebra
interface eth0
ospf cost 30
interface eth1
ospf cost 80
interface eth2
ospf cost 20
router ospf
network 100.1.0.0/16 area 0.0.0.0
redistribute connected
log file /var/log/zebra/ospfd.log
::: ::::
💡 MẸO
Sử dụng lệnh sau để copy qua các router còn lại
cp -r router1/etc router2
cp -r router1/etc router3
cp -r router1/etc router4
Sử dụng
treeđể kiểm tra cấu trúc của các thư mục
💡 GIẢI TÍCH
Tạo file
ospfd.confthay vìripd.confvì chúng ta sử dụng giải thuậtOSPFv2thay vìRIPv2Lệnh
interfacechỉ ra giao diện củaroutersẽ chạy giải thuậtOSPFv2
Khởi động máy ảo
Sử dụng lệnh kathara lstart để khởi động hệ thống máy ảo vừa tạo:
==> Không có lỗi gì xảy ra trên mỗi
router, các cấu hình đã chuẩn
Sử dụng lệnh sau trên từng router để kiểm tra dịch vụ Quagga vừa tạo:
/etc/init.d/quagga status
⚠️ LƯU Ý
Nếu hiện
ospfd watchquagga zebra: dịch vụQuaggađã được sử dụng và đang dùng giải thuậtOSFPv2Nếu không hiện gì hết thì dịch vụ
Quaggađã xảy ra lỗiNếu hiện
watchquaggathì có sai sót trênospfd.confnênOSFPv2không hoạt động
Nhận xét máy ảo
Kiểm tra vạch đường
Sử dụng lệnh route trên từng router để kiểm tra bảng vạch đường:
Kiểm tra sự liên thông
Thực hiện kiểm tra sự liên thông giữa các router bằng lệnh ping
Từ
router1tớirouter4Từ
router2tớirouter3
Bằng lệnh sau đây:
# thực hiện trên router1
ping 100.1.4.1 -c 5
# thực hiện trên router 2
ping 100.1.0.10
==> Kiểm tra thành công
Kiểm tra đường đi
Trên router1 thực hiện các lệnh như sau:
traceroute 100.1.0.5 # eth1 của router2
traceroute 100.1.0.17 # eth2 của router3
traceroute 100.1.0.10 # eth1 của router3
💡 NHẬN XÉT
Nhờ giải thuật OSPFv2 tăng khả năng mở rộng và hội tụ nhanh mà router1 đi qua các nhánh mạng của router2 và router3 không có nhánh mạng trung gian nào
Bắt các gói tin
Trên router thực hiện lệnh sau đây để bắt các gói tin
tcpdump -i any -w /shared/BaiTap13_router1.pcap
Dừng lại sau
30sbằng lệnhCRTL+C
Mở thư mục BaiTap12_router1.pcap vừa tạo bằng WireShark và chọn IP nguồn 100.1.0.2:
💡 NHẬN XÉT
Địa chỉ IP của khung này là
224.0.0.5, và đây là địa chỉMulticast(vì cácpackagesgửi đến những đích mà nó cùng giao thức mạng với nguồn)Gói tin này dùng giao thức
Open Shortest Path Firsttrên tầng vận chuyểnTrong mục
OSPF:Hiện thuật toán
OSPFđang sử dụng làversion 2Active Neighborlà danh sách các bộ định tuyến lân cận hoặc liền kềDesignated Routerlà bộ định tuyến liền kề với bộ định tuyến hiện tạiBackup Designated Routerphục vụ như một chế độ chờ để nhận cập nhật các bộ định tuyến hiện tại
Tắt một nhánh mạng
Trên router1 hãy tắt nhánh mạng eth1 bằng lệnh sau:
ifconfig eth1 down
Sau đó hãy ping tới router3 bằng lệnh: ping 100.1.0.10 -c 5
==> Ping vẫn thành công, tuy bảng vạch đường đã thay đổi và không còn eth1

💡 NHẬN XÉT
Giải thuật OSPFv2 trên router tự động cập nhật lại đường bằng một đường đi mới, để đảm bằng tính liên thông của các router và chi phí ngắn nhất để từ router đến các router còn lại.
Hủy hệ thống máy ảo
Sử dụng lệnh kathara lclean để hủy hệ thống máy ảo:

3.Bài tập 14
💡 MÔ HÌNH
Xây dụng hệ thống mạng theo mô hình sau:

Tạo thư mục và các file
Tạo các thư mục và file theo mô hình như sau:

Bằng cách lệnh sau:
mkdir ~/Desktop/BaiTap14
cd ~/Desktop/BaiTap14
mkdir pc2 pc3 router1 router2 router3 routerisp
touch lab.conf pc2.startup pc3.startup router1.startup router2.startup router3.startup routerisp.startup
Thiết lập các file
Cấu hình và thiết lập các thư mục vừa tạo như sau:
:::: tabs
::: tab lab.conf
pc2[0]=B
pc3[0]=C
router1[0]=A
router1[1]=D
router1[2]=E
router2[0]=B
router2[1]=D
router2[2]=F
router3[0]=C
router3[1]=E
router3[2]=F
routerisp[0]=A
:::
::: tab router1.startup
ifconfig eth0 200.117.68.1/30 up
ifconfig eth1 10.0.1.1/30 up
ifconfig eth2 10.0.1.5/30 up
/etc/init.d/quagga start
:::
::: tab router2.startup
ifconfig eth0 192.168.1.1/24 up
ifconfig eth1 10.0.1.2/30 up
ifconfig eth2 10.0.1.9/30 up
/etc/init.d/quagga start
:::
::: tab router3.startup
ifconfig eth0 192.168.2.1/24 up
ifconfig eth1 10.0.1.6/30 up
ifconfig eth2 10.0.1.10/30 up
/etc/init.d/quagga start
:::
::: tab routerisp.startup
ifconfig eth0 200.117.68.2/30 up
route add default gw 200.117.68.1
:::
::: tab pc2.startup
ifconfig eth0 192.168.1.200/24 up
route add default gw 192.168.1.1
:::
::: tab pc3.startup
ifconfig eth0 192.168.2.111/24 up
route add default gw 192.168.2.1
::: ::::
Cấu hình Quagga
Trong mỗi thư viện router hãy tạo mục như sau:
:::: tabs
::: tab daemons
zebra=yes
ripd=yes
:::
::: tab zebra.conf
hostname zebra
password zebra
enable password zebra
log file /var/log/zebra/zebra.log
:::
::: tab ripd.conf
hostname ripd
password zebra
enable password zebra
router rip
network 10.0.1.0/28
redistribute connected
log file /var/log/zebra/ripd.log
::: ::::
⚠️ LƯU Ý
Như mô hình đề bài thì routerISP không thuộc phạm vị dịch vụ Quagga nên ta bỏ không cấu hình Quagga cho routerISP
💡 MẸO
Sử dụng lệnh sau để copy qua các router còn lại
cp -r router1/etc router2
cp -r router1/etc router3
Khởi động máy ảo
Sử dụng lệnh kathara lstart để khởi tạo hệ thống máy ảo:
==> Không báo lỗi, đã thành công chạy hệ thống máy ảo
Sử dụng lệnh sau đây trên từng router để kiềm tra dịch vụ Quagga:
/etc/init.d/quagga status
Kiểm tra máy ảo
Tính liên thông của các router
Từ routerISP tới các router khác
ping 200.117.68.1 -c 5 #router1
ping 192.168.1.1 -c 5 #router2
ping 192.168.2.1 -c 5 #router3
==> Thành công
Từ router bất kỳ tới routerISP
ping 200.117.68.2 -c 3
==> Thành công
Từ pc2 tới pc3 và ngược lại
ping 192.168.2.111 -c 3 #từ pc2 sang pc3
ping 192.168.1.200 -c 3 #từ pc3 sang pc2
==> Thành công
Từ pc2 và pc3 tới routerISP và ngược lại
ping 200.217.68.2 -c 5 #gõ trên pc2 và pc3
ping 192.168.2.111 #gõ trên routerISP
ping 192.168.1.200 #gõ trên routerISP


💡 NHẬN XÉT
Các router trong hệ thống
pingđược cho nhau2 thiết bị
pc2vàpc3ping được cho nhaupc2vàpc3gửi đượcICMP echo requestchorouterISPnhưngrouterISPkhông gửi đượcICMP echo replyđếnpc2và cảpc3(vìrouterISPkhông nằm trong định tuyến nội bộ và chỉ liên kết vớirouter1)
Hủy hệ thống máy ảo
Sử dụng lệnh kathara lclean để hủy hệ thống máy ảo:

































