3. Routing
3.13. Các thuật toán Routing và các metric
Tối ưu hóa : Sự tối ưu hóa miêu tả khả năng lựa chọn con đường đi tốt nhất của các thuật toán routing, dựa vào các metric và các metric phụ thêm dùng trong tính toán .
Sự đơn giản và giảm overhead : Một thuật toán routing gọi là lý tưởng nếu như nó giảm được sự tính toán của CPU và giảm tiêu hao quá nhiều bộ nhớ trong các router.Đây là tiêu chí quan trọng để mạng có thể mở rộng
Mạnh mẽ và ổn định: Một thuật toán routing cần phải thực thi chính xác ngay cả khi gặp phải tình huống bất thường hoặc không dự kiến trước chẳng hạn như lỗi phần cứng ,các lỗi thực thi …
Xây dựng thử nghiệm PC Linux hoạt động như một ADSL Router
Hội tụ nhanh :Độ hội tụ là tiến trình đồng thuận của tất cả các router trong các đường đi tối ưu .Khi một sự kiện phát sinh trên mạng làm thay đổi giá trị router ,tính toán lại là điều cần thiết dể tái thiết lập các kết nối mạng .Các thuật toán routing nào mà có độ hội tụ chậm thì có thể gây ra các trùng lập đường đi hoặc làm treo mạng
Sự uyển chuyển :Một thuật toán routing cần phải nhanh chóng và chính xác thích nghi với một số lượng lớn các trừơng hợp phát sinh trên mạng .
3.13.2. Các Metric
Là độ đo dùng để xác định con đường đi tốt nhất . Các metric thường dùng là :
Bandwidth (băng thông) : dung lượng truyền dữ liệu của một kết nối ( thường là ,10/100Mbps trên đường Ethernet )
Delay ( độ trễ ) : Là thời gian để gửi một packet từ nguồn đến đích .Độ trễ phụ thuộc vào băng thông ,vào xung đột xảy ra trên mạng và vào khoảng cách vật lý
Load : số lượng các hoạt động trên một tài nguyên mạng,chẳng hạn như Router hoặc một đường kết nối
Reliability ( độ tin cậy ) : dùng để chỉ mức độ lỗi trong mỗi liên kết mạng
Hop count : Số router mà packet phải đi qua trước khi đến đích
Cost : Có giá trị bất kí, thường dựa trên băng thông, tiền, hoặc các thước đo giá trị khác-những thước đo được chỉ định bởi
Xây dựng thử nghiệm PC Linux hoạt động như một ADSL Router
người quản trị mạng
Routing Protocols
3.14. Routing Protocols
Các giao thức routing thuộc về 3 loại khác nhau : Distance-Vector ,Link state, và Hybrid
3.14.1.
3.14.2.
Distance-vector
Dựa vào chiều và khoảng cách (hop count) đối với tất cả các ien kết trên mạng .
Cứ sau 1 khoảng thời gian xác định (vd 30s) thì giao thức định tuyến dạng distance-vector lại gửi đi toàn bộ hoặc một phần của bảng routing table cho các láng giềng lân cận cho dù có hay không sự thay đổi trên mạng.Bằng cách nhận các routing table từ các router lân cân mà router có thể kiểm tra con đường đi đã biết và thay đổi nếu cần.Quá trình trao đổi thông tin như vậy gọi là “routing by rumor”
Các loại Distance-vector như : RIP ,IGRP
RIP dùng hop count làm metric và đây là giao thức routing IGP thông dụng nhất trên internet
IGRP được phát triển bởi Cisco và được dùng cho các mạng lớn
Link state
Link state được thiết kế để khắc phục những hạn chế của distance- vector.Mỗi khi có thay đổi trên mạng ,ngay lập tức link state sẽ gửi các
Xây dựng thử nghiệm PC Linux hoạt động như một ADSL Router
,thời gian của chu kỳ này dài hơn hẳn so với distance-vector ,khoảng 30 phút mới gửi một lần
VD OSPF
3.14.3.
3.15.1.
Hybrid
Kết hợp các đặc trưng của cả distance-vector và link state VD EIGRP
3.15. Giới thiệu các giao thức định tuyến RIP RIP
Dùng thuật toán distance-vector để xác định chiều và khoảng cách đến các mạng trong môi trường ien mạng
Dùng hop count làm metric để lựa chọn đường đi .Hop count càng nhỏ càng tốt
Mặc định cứ 30s lại gửi các routing update
Hop count tối đa đến một mạng là 15.Nếu lớn hơn 15 thì đường đến mạng đó xem như không có và packet sẽ bị lọc nếu có đích đến là mạng đó
Sử dụng rộng rãi do rất dễ cài đặt .Nhiều host (cả unix ) cũng có thể chạy RIP
RIPv1 là 1 giao thức định tuyến classfull
Xây dựng thử nghiệm PC Linux hoạt động như một ADSL Router
3.15.2. IGRP
Là 1 giao thức dạng distance-vector ,được phát triển bởi Cisco.Nó được phát triển để giải quyết các vấn đề về đặt địa chỉ cùng với routing trong mạng lớn vượt khỏi khả năng định tuyến của RIP
Trong khi RIP chọn đường đi với số hop là ít nhất thì IGRP có thể chọn con đường đi nhanh nhất dựa vào các thông số như là độ trễ,băng thông ,load và độ tin cậy .Người quản trị mạng có thể quyết định sự quan trọng của bất kì một trong những metric này,hoặc cho phép IGRP tự tính toán con đường đi khả dĩ ,tốt nhất .Theo mặc định,IGRP chỉ dùng thông số băng thông và độ trễ để xác định chi phí đường đi.IGRP cũng có thể có số hop count lớn hơn RIP .Nhờ vậy mà mạng sử dụng IGRP có thể mở rộng hay thu hẹp dể dàng hơn
IGRP gửi các gói định tuyến update theo khoảng thời gian là 90s.Cứ 90s ,nó lại quảng bá các thông tin về mạng cho các autonomous system cụ thể.IGRP có một số đặc tính quan trọng sau:
3.16. Tính Linh Hoạt : thích ứng với các topology phức tạp
3.17. Tính Uyển Chuyển : Các segment khác nhau có thể có băng thông và độ trể khác nhau
3.18. Tính Mở Rộng : đây là tính năng hữu dụng để hoạt động trong các mạng có tiềm năng phát triển trong tương
Xây dựng thử nghiệm PC Linux hoạt động như một ADSL Router
3.18.1. OSPF
OSPF là một giao thức routing thuộc dạng link-state,đối nghịch hoàn toàn với các giao thức routing dạng distance-vector như RIP.OSPF phân phối các thông tin định tuyến giữa các router trong cùng một autonomous system.OSPF được đưa ra để đáp
ứng nhu cầu đánh địa chỉ trong mạng internetwork mà RIP
không thể đáp ứng được.OSPF có một số đặc trưng sau :
3.19. Tốc độ hội tụ : Trong một mạng rộng ,khi hội tụ RIP có thể mất đến vài phút ,trong khi OSPF nhanh hơn nhiều 3.20. Hỗ trợ Variable-length subnet mask(VLSM):RIPv1
không hỗ trợ chia subnet và VLSM trong khi OSPF thì có 3.21. Khoảng cách mạng vươn tới được : RIP có giới hạn
là 15 hop count trong khi OSPF thì không có giới hạn 3.22. Sử dụng băng thông : Sau 30s ,RIP lại gửi broadcast
một bảng thông tin định tuyến .Rõ ien,điều này đã làm cho băng thông bị lãng phí do thông tin trong bảng định tuyến không phải lúc nào cũng thay đổi .Điều này làm mạng WAN bị chậm lại .Trong khi đó ,OSPF gửi multicast các thông tin cập nhật chỉ khi nào có sự thay đổi xảy ra trên mạng
3.23. Giao thức sử dụng trong chương trình
RIP .Chúng ta sử dụng RIP vì :
Giao thức RIP đơn giản vể nguyên tắc hoạt động
Xây dựng thử nghiệm PC Linux hoạt động như một ADSL Router
Phù hợp với tiêu chí của đại đa số các công ty nhỏ và vừa ,vì thường chỉ có 1 kết nối ra ngoài
RIP là giao thức được sử dụng rộng rãi nhất trên môi trường UNIX
4. Các khái niệm cơ bản
4.1. IP tĩnh ( Static IP)
Là địa chỉ IP do khách hàng tự đăng kí với một tổ chức có thẩm quyền cung cấp IP. Hàng năm khách hàng phải trả chi phí để duy trì địa chỉ IP đó, chi phí này khá cao.
4.2. IP động ( Dynamic IP)
Thông thường, khi một thuê bao kết nối vào Internet, nhà cung cấp dịch vụ (ISP) mà thuê bao này đăng ký sử dụng dịch vụ Internet sẽ cấp cho kết nối này (thực tế là máy chủ làm nhiệm vụ phân bổ địa chỉ động ví dụ DHCP server trong dialup hay BRAS trong dịch vụ ADSL của nhà cung cấp dịch vụ) sẽ tự động gắn cho kết nối của thuê bao một địa chỉ chưa có ai sử dụng trong một khối địa chỉ dùng chung mà ISP dành cho các thuê bao kết nối gián tiếp (kết nối động) gọi là vùng pool
Địa chỉ đã được cấp này chỉ được sử dụng trong khoảng thời gian thuê bao này kết nối Internet, khi thuê bao ngắt kết nối, địa chỉ này được giải phóng để cho thuê bao khác sử dụng và thuê bao sẽ được cấp một địa chỉ khác trong lần kết nối mới .
Xây dựng thử nghiệm PC Linux hoạt động như một ADSL Router
4.3. DNS
Mọi máy tính, thiết bị mạng (host) trên mạng Internet ien hệ với nhau bằng địa chỉ IP. Để thuận tiện cho việc sử dụng thì người ta dùng tên (tên miền) để xác định host đó.
Hệ thống máy chủ tên miền được sử dụng để ánh xạ tên miền thành địa chỉ IP, nhờ đó khi muốn ien hệ tới các host, người ta dùng sử dụng chuỗi ký tự dễ nhớ (tên miền), thay vì sử dụng địa chỉ IP là một dãy số dài khó nhớ.
Khi người dùng có yêu cầu khai báo ánh xạ tên miền vào một địa chỉ IP thì có thể có 2 lựa chọn sau:
- Yêu cầu người quản trị hệ thống máy chủ quản lý tên miền đó khai báo vào CSDL tên miền
- Thông qua các giao diện cung cấp cho người dùng tự cập nhật
4.4. Dynamic DNS
Dynamic DNS là phương thức ánh xạ tên miền tới địa chỉ IP có tần xuất thay đổi cao (do không phải mọi máy tính đều sử dụng địa chỉ IP tĩnh).
Dịch vụ DNS động (Dynamic DNS) cung cấp một chương trình đặc biệt chạy trên máy tính của người sử dụng dịch vụ dynamic DNS gọi là Dynamic Dns Client.
Chương trình này giám sát sự thay đổi địa chỉ IP tại host và ien hệ với hệ thống DNS mỗi khi địa chỉ IP của host (vốn được cung cấp bởi ISP bằng phương pháp động) thay đổi và sau đó update thông tin vào cơ sở dữ liệu DNS về sự thay đổi địa chỉ đó.
Xây dựng thử nghiệm PC Linux hoạt động như một ADSL Router
Bằng cách này, cho dù máy chủ có thường xuyên bị thay đổi địa chỉ thì tên miền vẫn được hệ thống máy chủ DNS trỏ về đúng địa chỉ được cấp IP mới đó.
4.5. NAT ( Network Address Translation )
4.5.1.
4.5.2.
Tại sao lại dùng NAT
NAT được sử dụng vì :
Khi một mạng có quá nhiều host trong khi lại không có đủ các địa chỉ IP public cần thiết để kết nối vào mạng internet tức là làm cho một địa chỉ IP riêng ( private ) hay một địa chỉ không được đăng kí có thể truy cập ra mạng internet
Để kết hợp 2 mạng intranet có các địa chỉ IP trùng nhau
Để hỗ trợ load sharing sử dụng một địa chỉ IP
Cung cấp khả năng tái sử dụng một địa chỉ IP đã được dùng
Xây dựng thử nghiệm PC Linux hoạt động như một ADSL Router
Hình 2.13 Mô hình NAT
Như trong hình vẽ trên, NAT được cấu hình tại Border Router ( tức là router gần với mạng bên ngoài nhất ),nằm giữa mạng bên trong và mạng bên ngoài.
NAT sẽ chuyển đổi địa chỉ inside local thành địa chỉ inside global, làm cho dữ liệu có thể trao đổi ra mạng bên ngoài
4.5.3. Các thuật ngữ NAT
Inside Network : Là mạng bao gồm các máy tính có địa chỉ private.Các PC nằm trong một Inside Network sử dụng những địa chỉ không được đăng ký hay những địa chỉ được dành riêng cho các mạng cục bộ nên địa chỉ của chúng không được “hiểu” bởi các mạng bên ngoài chẳng hạn như mạng internet hay mạng của ISP.
Outside Network :Là các mạng khác không thuộc hoặc không cùng chủ sở hữu với Inside Network ,thường thì đây là mạng của ISP
Inside Local Address: Địa chỉ mạng cục bộ bên trong ,không được hiểu đối với các mạng bên ngoài
Inside global IP Address :Đây là địa chỉ IP của một host của mạng bên trong khi nó truy cập một mạng bên ngoài.Địa chỉ IP này còn được gọi là địa chỉ đã được chuyển đổi
Outside local IP address: Là địa chỉ IP của một host bên ngoài khi nó truy cập vào mạng bên trong
Xây dựng thử nghiệm PC Linux hoạt động như một ADSL Router
Chương 3
LINUX VÀ MẠNG TRONG LINUX
1. Hệ điều hành Linux
1.1. Giới thiệu
Linux được Linus Torvalds, sinh viên của Đại học Tổng hợp Helsinki Phần Lan manh nha từ năm 1991 và đến 1994 phiên bản 1.0 chính thức được phát hành.
Linux là một hệ điều hành dạng UNIX, nó hoạt động dựa trên nguyên tắc của hệ điều hành UNIX, tuy nhiên không dựa trên mã nguồn UNIX mà được viết lại từ đầu.
Linux được phát miễn phí và được phát triển trên Internet. Linux đã được phổ biến và sử dụng rộng rãi trong thời gian ngắn.
Linux là hệ điều hành đa nhiệm và đa người dùng, có khả năng tương thích với các hệ mở, có nhiều công cụ, ứng dụng được phân phối hầu như miễn phí.
Xây dựng thử nghiệm PC Linux hoạt động như một ADSL Router
1.2. Kiến trúc của hệ điều hành Linux
Hình 3.1 Mô hình kiến trúc Linux
1.2.1.
1.2.2.
Hạt nhân (Kernel)
Là trung tâm điều khiển của hệ điều hành Linux, chứa các mã nguồn điều khiển toàn bộ hệ thống.
Kernel được thiết kế theo dạng Modul do đó kích thước thật sự của nó rất nhỏ. Chúng chỉ tải những bộ phận cần thiết lên bộ nhớ, các bộ phận khác sẽ được tải lên khi cần do đó không lãng phí bộ nhớ.
Kernel của Linux có thể truy xuất tới toàn bộ các tính năng phần cứng của máy tính.
Shell
Shell cung cấp tập lệnh cho người dùng thao tác với Kernel để thực hiện công việc. Shell đọc các lệnh từ người dùng và xử lý.
Có nhiều loại Shell dùng trong Linux, bộ lệnh của mỗi Shell khác nhau: C Shell sử dụng các lệnh tương tự C, Bourne Shell sẻ dụng ngôn ngữ lệnh khác…
Xây dựng thử nghiệm PC Linux hoạt động như một ADSL Router
(bash), phát triển từ Bourne Shell với các tính năng: điều khiển các tiến trình, các lệnh history, tên tập tin dài…
1.2.3.
1.2.4.
Các tiện ích
Dùng cho nhiều thứ như : thao tác tập tin, đĩa nén, sao lưu tập tin… Các tiện ích có thể là các lệnh thao tác hay các chương trình giao diện đồ họa.
Chương trình ứng dụng
Các chương trình lớn như Word, hệ quản trị cơ sở dữ liệu… là các chương trình có độ phức tạp lớn và thường là do nhà sản xuất viết ra.
2. Mạng trong Linux
2.1. Giao thức mạng trong Linux
Linux hỗ trợ rất nhiều giao thức mạng khác nhau.Sau đây là một số các giao thức điển hình TCP/IP TCP/IP version 6 IPX/SPX Bộ giao thức AppleTalk Mạng WAN(Frame Relay,X.25…) ISDN PPP,SLIP,PLIP
Xây dựng thử nghiệm PC Linux hoạt động như một ADSL Router
2.2. Network Interconnection
Linux có rất nhiều tính năng .Linux có thể được cấu hình để hoạt động như là 1 router, bridge v.v…
2.2.1.
2.2.2.
2.2.3.
Router
Linux Kernel được xây dựng có các tính năng routing trong đó.Linux được sử dụng làm router sẽ tiết kiệm được nhiều chi phí so với việc sử dụng các router thương mại .Những kernel gần đây còn đưa vào các tùy chọn đặc biệt như :
Multicasting : Cho phép máy tính hoạt động như một router mà các gói IP packet có nhiều địa chỉ đích
IP policy routing : Thông thường, 1 router quyết định làm gì với một packet nhận được
Bridge
Linux kernel được xây dựng sẵn để hoạt động như một Ethernet Bridge.Ngoài ra, nếu muốn biến PC Linux thành một bridge có nhiều port (hay còn gọi là switch) thì bạn có thể tham khảo thêm chương trình softswitch
IP Masquerade
IP Masquerade được phát triển như là một chức năng mạng của Linux . Nếu một host Linux kết nối đến mạng internet và tính năng IP masquerade được bật lên thì sau đó những máy kết nối
Xây dựng thử nghiệm PC Linux hoạt động như một ADSL Router
với nó ( trong cùng một mạng LAN hoặc kết nối với những modem) có thể ra internet tốt ,ngay cả khi chúng không có đăng ký địa chỉ IP address. Điều này có thể làm giảm chi phí bởi vì rõ ien là nhiều người có thể kết nối ra internet chỉ với mỗi một kết