Tìm kiếm nhanh và chính xác hơn với google tùy chỉnh

Chủ Nhật, 17 tháng 6, 2012

NAT và PAT

Network Address Translation: NAT là kỹ thuật thay đổi các địa chỉ mạng (Network Address) trong một gói tin (packet) để gây ảnh hưởng trong quá trình định hướng đi của packet cho một mục đích cụ thể. Địa chỉ mạng ở đây muốn nói đến địa chỉ IP WAN (Internet Protocol) ở layer 3, ngoài ra còn có thể thay đổi số port ở layer 4 theo mô hình phân lớp OSI. Bên cạnh đó địa chỉ mạng còn được phân biệt địa chỉ nguồn (source) và địa chỉ đích (destination). Tùy theo mục đích dùng NAT mà ta thay đổi một số hoặc tất cả các loại địa chỉ trên, trên cùng một packet.

Đây là loại hình NAT phổ biến nhất, ta còn hay gọi là Des NAT, hay NAT Inbound. NAT theo kiểu này chỉ thay đổi địa chỉ IP đích của gói tin mà không đụng đến các thành phần khác. Đây cũng là kiểu được sử dụng mặc định trong các ROUTER ( thiết bị định tuyến nói chung ) theo cách sau:

• Khi client gửi packet request i tới ROUTER, i sẽ có dest IP là Virtual IP của ROUTER (141.149.65.3), source IP là IP của client (188.1.1.10). Do ROUTER đại diện cho tất cả những server thực đằng sau, nên IP của ROUTER cũng là địa chỉ đại diện, client sẽ chỉ liên hệ với ROUTER mà không biết được địa chỉ thật của các server là gì ( trước khi biết VIP của router nó phải nhờ DNS server dịch từ tên miền sang địa chỉ IP ). Địa chỉ IP đại diện của ROUTER còn là địa chỉ IP ảo (Virtual IP - VIP)
• ROUTER sẽ gửi repquest i đến server để xử lý nên nó thực hiện thay dest IP trong i thành IP của server (10.10.10.20), source IP vẫn giữ nguyên (188.1.1.10). Thao tác này gọi là Destination NAT ( dịch chuyển IP đích ).
• Nhờ có dest IP là IP của server nên request i sẽ được định tuyến tiếp đến server xử lý.
• Khi server trả lời, packet reply sẽ đi qua lại ROUTER. Tại đây packet được un-NAT, nghĩa là thay lại địa chỉ IP của server (lúc này trở thành source IP) bằng VIP của ROUTER.
Reverse NAT

Trong cơ chế của ROUTER, các server thật chỉ được cấp địa chỉ IP private (vì nhiều lý do, trong đó có sự hạn chế về số lượng IP public và tính bảo mật, ngoại trừ một số trường hợp đặc biệt cho server kết nối thẳng IP public), nghĩa là không thể đi ra Internet được. ROUTER được publish ra Internet để nhận request cho các server bên trong, nên nó thường có một, hoặc nhiều địa chỉ IP public để các client kết nối từ bên ngoài vào, và địa chỉ này cũng là VIP. Khi client muốn sử dụng dịch vụ của server bên trong, ROUTER thực hiện việc chuyển đổi địa chỉ dest IP từ public sang private để đến được server, đó là kiểu NAT ta xét ở trên. Trong trường hợp ngược lại, khi server bên trong muốn khởi tạo kết nối với bên ngoài Internet, ROUTER phải thực hiện việc chuyển địa chỉ source IP của packet đi ra từ private sang public để có thể lưu thông trên Internet. Do cách hoạt động như vậy nên kiểu NAT này còn được gọi là SourceNAT, hay NAT outbound.



Port-Address Translation (PAT)

Hai trường hợp trên ta đã xem xét hai kiểu thay đổi địa chỉ IP, trường hợp thứ ba này còn được gọi là “NAT port”, nghĩa là số port TCP/UDP ở trong packet sẽ bị thay đổi (ở đây ta không xét đến các protocol khác cũng có dùng port). PAT cũng là một phần tất yếu trong các chức năng chính của ROUTER. Cách hoạt động của nó cũng rất đơn giản: Khi ta liên kết (bind) port 80 của VIP trên ROUTER đến port 1000 trên server thật, load balancer sẽ thực hiện việc chuyển đổi và đẩy toàn bộ yêu cầu port 80 (dest port) đến port 1000 trên server.

Những lợi ích khi ta thực hiện PAT:

- Bảo mật là ích lợi đầu tiên mà ta thấy ngay. Bằng cách không mở những cổng mặc định trên server, ta có thể gây khó khăn hơn cho việc tấn công ác ý. Chẳng hạn, ta có thể chạy một Web server trên port 4000, và liên kết port 80 của VIP trên ROUTER đến port 4000 của server thật. Lúc bấy giờ, kẻ tấn công không thể khai thác trực tiếp lên port 80 của server thật được, vì nó không được mở.
- Khả năng co dãn (scalability) PAT cho phép ta chạy cùng một ứng dụng trên nhiều port. Tùy theo cách thiết kế ứng dụng, có thể việc chạy nhiều bản sao của nó sẽ làm tăng hiệu suất phục vụ lên. Chẳng hạn ta có thể chạy máy chủ web IIS trên các port 80, 81, 82 của mỗi server thật. Sau đó chỉ cần liên kết port 80 của VIP với mỗi port chạy IIS của server thật. Load balancer sẽ phân bổ lưu thông không chỉ cho các server mà còn giữa các port trên từng server.
- Khả năng quản trị (manageability) chẳng hạn khi host nhiều website trên một bộ các server thật, ta có thể chỉ cần dùng một VIP để đại diện cho tất cả các domain của các website. Lúc này ROUTER sẽ nhận tất cả các request đến port 80 ở cùng một VIP. Web server của ta có thể chạy mỗi domain trên một port khác nhau, chẳng hạn www.abc.com trên port 81, www.xyz.com trên port 82. ROUTER có thể gửi lưu thông đến port phù hợp dựa trên domain trong URL của mỗi HTTP request.


Full NAT

Như vậy ta đã xét kỹ thuật NAT thay đổi lần lượt địa chỉ đích, địa chỉ nguồn, rồi thay đổi port khi định tuyến. Mỗi sự thay đổi là một loại hình NAT có ứng dụng trong từng trường hợp riêng. Kết hợp các kiểu thay đổi này lại, ta có một kiểu NAT khác phức tạp hơn là Full NAT. Kiểu NAT này có tên gọi như vậy vì nó bao gồm các thay đổi sau đây trên gói tin request:
• Địa chỉ IP nguồn (source IP)
• Địa chỉ IP đích (dest IP)
• Port nguồn (source port)
Lưu ý source port ở đây là port của client, còn dest port là port được request trên server, chẳng hạn port 80 ở ví dụ trên.

Kiểu NAT này khác với những kiểu NAT trên ở chỗ, packet từ server reply có thể bỏ qua ROUTER mà đi thẳng đến client ở ngoài Internet. Vấn đề ở chỗ địa chỉ IP của server vẫn là private IP, do đó đương nhiên packet reply mang địa chỉ source là IP nội bộ sẽ chẳng bao giờ đến được client.

Vậy thì bằng cách nào để buộc server phải trả lời thông qua ROUTER để được NAT địa chỉ IP đi ra Internet? Cách đơn giản nhất là ta có thể khai báo cho ROUTER là default gateway của các server. Nhưng cách này yêu cầu ROUTER phải ở cùng subnet với các server (cùng Layer 2 broadcast domain). Nếu không thể nằm cùng subnet thì sao? Đây là chỗ Full NAT khác biệt

FULL NAT được sử dụng.

Khi được thiết lập để thực hiện Full NAT, ROUTER sẽ thay source IP của tất cả các request packet bằng một địa chỉ được khai báo trên ROUTER, xem như là source IP, rồi thay dest IP (lúc này đang là VIP) thành IP của server (10.10.10.20), trước khi gửi đến server . Source IP này có thể giống hoặc khác VIP, tùy vào từng sản phẩm ROUTER. Như vậy tương tự như proxy, lúc này server thật sẽ xem ROUTER như là client yêu cầu mình, và không quan tâm đến client thực sự nữa. Vì thế server sẽ reply lại cho ROUTER và ROUTER sẽ đổi lại dest IP thành IP của client thực sự (188.1.1.100) để gửi đi.

Như vậy source port được thay đổi ở chỗ nào? Mỗi lần thay đổi một source IP của client thành source IP của ROUTER, gọi là một session, thì ROUTER thực hiện lưu lại những thông tin của client trong session đó bằng cách đổi source port trong cùng packet (lúc này đang là source port của client).

Source port lúc này có ý nghĩa như là một session ID không hơn không kém. Khi server reply về cho ROUTER, source port cũng được gửi trả về theo packet reply. Dựa vào source port này, ROUTER xác định được session của client trong bảng lưu để thay lại source IP, source port của client như cũ.

Ưu điểm của kiểu NAT này là cho phép bạn thực hiện việc thay đổi địa chỉ thông qua ROUTER trên mọi topology mạng. Nhược điểm là không lấy được các thông tin về IP, port từ phía client. Những ứng dụng như Web có sử dụng thông tin từ source IP của client thì không nên dùng mô hình này. Đa số các sản phẩm ROUTER đều cung cấp chức năng log và report source IP của các request.

Enhanced NAT

Những kỹ thuật NAT vừa trình bày ở trên đều xoay quanh việc thay đổi địa chỉ IP, cũng như port trong packet header. Tuy nhiên có những protocol đặc biệt chứa thông tin địa chỉ hay port nhúng trong packet payload, cũng cần phải được thay đổi cùng với packet header.

Điều này đòi hỏi ROUTER phải hiểu biết theo từng protocol cụ thể. Khái niệm enhanced NAT nói đến kiểu NAT phức tạp được thực hiện với những hiểu biết theo từng protocol cụ thể để làm cho những protocol đó hoạt động được với việc định tuyến gói tin.

Trong số các protocol đặc biệt đó, thông dụng nhất là các protocol streaming media (ví dụ RTSP - Real Time Streaming Protocol). Đây cũng là các protocol sử dụng cân bằng tải phổ biến nhất, vì chúng cực kì ngốn tài nguyên mạng và tính toán khi phải phục vụ đồng thời cho hàng trăm đến hàng ngàn người sử dụng.

Các protocol streaming thường gồm có hai kết nối, một kết nối điều khiển xây dựng trên TCP và một kết nối dữ liệu dựa trên UDP. Để khởi đầu, client khởi tạo một kênh điều khiển đến một well-known port trên server. Client và server sẽ thoả thuận các điều khoản cho kênh điều khiển. Sự thoả thuận gồm có IP của server và số port của server mà client sẽ gửi dữ liệu đến trên kết nối dữ liệu.

Nếu các server có địa chỉ IP private, ROUTER sẽ thực hiện Destination NAT cho kết nối điều khiển. Nhưng đồng thời ROUTER cũng phải xem các thông tin thoả thuận và thay đổi mọi thông tin về địa chỉ IP hay port mà server và client trao đổi sao cho client sẽ gửi dữ liệu đến VIP public chứ không phải IP private của server (những thông tin này nằm trong payload của packet).

Hơn nữa, dest port được chọn trong quá trình thoả thuận lại không biết trước được nên phải xử lý request ngay cả khi port chưa được liên kết đến bất kỳ server nào.

Tuy nhiên, nhiều doanh nghiệp lại có những chính sách bảo mật trên tường lửa làm cho những kết nối dữ liệu trên nền tảng UDP có thể không thành công. Do đó nhiều hệ thống streaming media cho phép stream trên nền HTTP, nghĩa là toàn bộ dòng dữ liệu sẽ được gửi đi bằng kết nối được thiết lập bởi giao tiếp HTTP. Điều này làm cho việc NAT trở nên nhẹ nhàng hơn.

Direct Server Return (DSR)

Xét lại 2 kiểu NAT trên, ta xem hai cách xử lý cùng với các ưu nhược điểm của chúng là gán default gateway hay dùng kỹ thuật Full NAT để ép các reply của server không phải đi qua ROUTER.

Nhưng trường hợp ta muốn server trả lời trực tiếp cho client mà không thông qua ROUTER thì sao? Đây không phải là câu hỏi vô lý, vì trong trường hợp năng lực xử lý của ROUTER bị giới hạn, thì việc tách dòng lưu thông reply đi trực tiếp mà không qua ROUTER sẽ giúp ROUTER tập trung vào xử lý các lưu thông request hiệu quả hơn, tránh tắc nghẽn, nâng cao hiệu suất.

Nhưng với địa chỉ IP private, các server làm sao trả lời trực tiếp qua Internet đến client được? Chỉ với một chút phù phép xoay quanh các địa chỉ IP là vấn đề sẽ được giải quyết: khi được thiết lập để thực hiện DSR, ROUTER không chuyển dest IP thành IP của server mà vẫn giữ nguyên là VIP (public IP). ROUTER chỉ đổi dest MAC thành MAC của server để packet có thể đến được server. Như vậy giới hạn của DSR là ROUTER và các server phải nằm cùng subnet.

Vấn đề còn lại là làm sao để khi server nhận request packet từ ROUTER chuyển đến sẽ không từ chối, vì dest IP không phải là IP của server, mà là VIP! Một cách đơn giản, ta cấu hình để VIP là địa chỉ của loopback interface trên mỗi server. ROUTER dùng cách này vì lợi dụng những tính chất thú vị sau đây của loopback interface:

• Có thể gán bất kỳ địa chỉ IP nào, không bắt buộc phải bắt đầu bằng 127.
• Vì loopback interface không phải là một thiết bị thật, nó không có địa chỉ MAC, nên hệ thống sẽ không trả lời cho các request ARP. Do đó sẽ không có hệ thống bên ngoài nào biết được địa chỉ IP của loop back interface. Tuy nhiên, hệ thống vẫn nhận request đến IP của loop back interface và trả lời như là các interface khác.
Ta có thể thiết lập một địa chỉ IP public cho loop back interface trên Linux như sau:
ifconfig lo 141.149.65.3 netmask 255.255.255.0 up.
Như vậy, bằng một chút thủ thuật với các địa chỉ, server thật không cần địa chỉ IP public vẫn có thể nhận request và trả lời trực tiếp cho client.

DSR rất hữu ích cho những ứng dụng tốn băng thông như FTP, streaming media, khi mà kích thước packet reply là rất lớn so với kích thước packet request. Kỹ thuật này cũng được ứng dụng cho những protocol đòi hỏi phức tạp khi thực hiện NAT hay không được ROUTER hỗ trợ.

Chẳng hạn những giao thức streaming media như trong phần Enhanced NAT có đề cập, thì ta có thể dùng DSR thay vì NAT. Người ta cũng cân nhắc DSR khi triển khai trên mô hình mạng, khi mà lưu thông reply từ server không đảm bảo là sẽ đi đúng đích.

Kết luận

NAT trong ROUTER rất đa dạng, tùy thuộc vào từng tình huống mà ta áp dụng. Càng đi sâu, ta càng thấy cái hay trong việc xử lý thông tin của các packet, những đối tượng luận lý để giải quyết các vấn đề vật lý thú vị như thế nào. Nắm vững các kỹ thuật NAT giúp ta có thể triển khai các hệ thống định tuyến, cân bằng tải một cách an toàn và hiệu quả nhất

Kỹ thuật định tuyến tĩnh (static route)

Bài viết trước đã review một cách tổng quan về các giao thức định tuyến được đề cập tới trong chương trình CCNA. Trong bài viết này, chúng ta sẽ cùng nhau review lại kỹ thuật định tuyến tĩnh (static route) của học phần ICND – 1 của chương trình CCNA.
Như chúng ta đã biết, router thực hiện việc định tuyến dựa vào một công cụ gọi là bảng định tuyến (routing table). Nguyên tắc là mọi gói tin IP khi đi đến router sẽ đều được tra bảng định tuyến, nếu đích đến của gói tin thuộc về một entry có trong bảng định tuyến thì gói tin sẽ được chuyển đi tiếp, nếu không, gói tin sẽ bị loại bỏ. Bảng định tuyến trên router thể hiện ra rằng router biết được hiện nay có những subnet nào đang tồn tại trên mạng mà nó tham gia và muốn đến được những subnet ấy thì phải đi theo đường nào.
Để hiểu rõ vấn đề, ta cùng xem xét ví dụ 1:

[Hình: So%252520do%252520vi%252520du%2525201.JPG]
Hình 1 – Sơ đồ ví dụ 1.

Trên hình 1 là hai router đại diện cho hai chi nhánh khác nhau của một doanh nghiệp : R1 cho chi nhánh 1 và R2 cho chi nhánh 2. R1 sử dụng cổng f0/0 của nó đấu xuống mạng LAN của chi nhánh 1, mạng này sử dụng subnet 192.168.1.0/24. Tương tự, R2 sử dụng cổng f0/0 của nó đấu xuống mạng LAN của chi nhánh 2, mạng này sử dụng subnet 192.168.2.0/24. Subnet sử dụng cho kết nối leased – line nối giữa hai chi nhánh (qua các cổng serial của hai router) là 192.168.12.0/30.
Mặc định ban đầu, khi ta chưa cấu hình định tuyến trên các router R1 và R2 thì hai mạng LAN của hai chi nhánh R1 và R2 chưa thể đi đến nhau được (tức là, nếu lấy một PC trong LAN 1, chẳng hạn như PC1 ping thử đến một PC trong LAN 2, ví dụ PC4, ping sẽ không thành công). Lý do của điều này là các router R1 và R2 chưa có thông tin về các mạng LAN của nhau trong bảng định tuyến do đó không thể chuyển gói tin đi đến các mạng LAN này. Ta kiểm tra bằng cách hiển thị bảng định tuyến trên các router R1 và R2. Câu lệnh để hiển thị bảng định tuyến trên router là ‘show ip route’ :

Bảng định tuyến của R1:

R1#show ip route
(đã bỏ bớt một số dòng)
Gateway of last resort is not set
192.168.12.0/30 is subnetted, 1 subnets
C 192.168.12.0 is directly connected, Serial2/0
C 192.168.1.0/24 is directly connected, FastEthernet0/0

Bảng định tuyến của R2:

R2#show ip route
(đã bỏ bớt một số dòng)
Gateway of last resort is not set
192.168.12.0/30 is subnetted, 1 subnets
C 192.168.12.0 is directly connected, Serial2/0
C 192.168.2.0/24 is directly connected, FastEthernet0/0

Từ kết quả hiển thị, ta thấy rằng mỗi router ban đầu chỉ học được thông tin về những subnet kết nối trực tiếp với nó. Ví dụ: router R1 biết rằng có mạng 192.168.12.0/30 kết nối trực tiếp vào cổng serial 2/0 và mạng 192.168.1.0/24 kết nối trực tiếp vào cổng fast ethernet 0/0 của nó. Các router hoàn toàn không có thông tin gì về các subnet ở xa, không kết nối trực tiếp với mình. Do đó, giả sử PC1 muốn ping PC4, nó sẽ đóng gói một gói tin IP ICMP với địa chỉ nguồn là 192.168.1.1 và đích đến là 192.168.2.2. Khi gói tin này đi lên đến router R1, R1 tra bảng định tuyến thấy rằng đích đến 192.168.2.2 không thuộc về bất kỳ subnet nào mà R1 có trong bảng định tuyến nên nó drop bỏ gói tin này.
Vậy để hai mạng 192.168.1.0/24 và 192.168.2.0/24 có thể đi đến nhau được, các router phải điền được thông tin về hai mạng này vào trong bảng định tuyến của mình. Có hai cách thức để thực hiện điều đó: một là người quản trị tự điền tay các thông tin – định tuyến tĩnh, hai là các router tự trao đổi thông tin định tuyến với nhau và tự điền các thông tin còn thiếu vào bảng định tuyến của mình – định tuyến động. Ở đây ta khảo sát cách thực hiện là định tuyến tĩnh.
Việc cấu hình định tuyến tĩnh trên router Cisco được thực hiện bằng cách sử dụng lệnh có cú pháp như sau:

Router(config)#ip route destination_subnet subnetmask {IP_next_hop | output_interface} [AD]

Trong đó:

destination_subnet: mạng đích đến.
subnetmask: subnet – mask của mạng đích.
IP_next_hop: địa chỉ IP của trạm kế tiếp trên đường đi.
output_interface: cổng ra trên router.
AD: chỉ số AD của route khai báo, sử dụng trong trường hợp có cấu hình dự phòng.

Cụ thể trong ví dụ này:
Từ R1 muốn đi đến mạng 192.168.2.0/24 , ta phải đi ra khỏi cổng s2/0. Để thể hiện điều đó vào bảng định tuyến, ta thực hiện cấu hình:
R1(config)#ip route 192.168.2.0 255.255.255.0 s2/0

Tương tự, Từ R2 muốn đi đến mạng 192.168.1.0/24 , ta phải đi ra khỏi cổng s2/0. Cấu hình:
R2(config)#ip route 192.168.1.0 255.255.255.0 s2/0

Sau khi đã cấu hình xong các route cho các mạng 192.168.1.0/24 và 192.168.2.0/24, ta thực hiện kiểm tra bằng cách hiển thị bảng định tuyến trên mỗi router:
Bảng định tuyến của R1:

R1#show ip route
(đã bỏ bớt một số dòng)
Gateway of last resort is not set
192.168.12.0/30 is subnetted, 1 subnets
C 192.168.12.0 is directly connected, Serial2/0
C 192.168.1.0/24 is directly connected, FastEthernet0/0
S 192.168.2.0/24 is directly connected, Serial2/0

Bảng định tuyến của R2:
R2#show ip route
(đã bỏ bớt một số dòng)
Gateway of last resort is not set
192.168.12.0/30 is subnetted, 1 subnets
C 192.168.12.0 is directly connected, Serial2/0
S 192.168.1.0/24 is directly connected, Serial2/0
C 192.168.2.0/24 is directly connected, FastEthernet0/0

Ta thấy rằng các thông tin còn thiếu trước đây đã xuất hiện trên bảng định tuyến của các router R1 và R2. Các entry mới điền thêm này được ký hiện bởi kí tự “S” ở đầu dòng thể hiện rằng các thông tin định tuyến này được học vào bảng định tuyến thông qua định tuyến tĩnh ( ta cũng để ý rằng các dòng mô tả các mạng kết nối trực tiếp được ký hiệu bởi kí tự “C” – connected – kết nối trực tiếp).
Khi các PC đã chỉ default – gateway đầy đủ lên các cổng đấu nối của các router, ping kiểm tra giữa các PC thuộc hai mạng LAN sẽ thành công:
[Hình: PC1%252520ping%252520PC4.JPG]
Hình 2 – Ping kiểm tra giữa PC1 và PC4 từ PC1.

Bên cạnh việc chỉ đường bằng cổng ra (output interface), ta cũng có thể chỉ đường trong câu lệnh bằng địa chỉ IP next – hop, đây chính là địa chỉ IP của trạm kế tiếp trên đường đi đến mạng đích.

Trên R1:
R1(config)#ip route 192.168.2.0 255.255.255.0 192.168.12.2
Trên R2:
R2(config)#ip route 192.168.1.0 255.255.255.0 192.168.12.1

Như ta đã thấy trên hình 1, từ R1 muốn đi đến mạng 192.168.2.0/24 thì phải đi qua trạm kế tiếp là R2 có địa chỉ IP là 192.168.12.2 và từ R2 muốn đi đến mạng 192.168.1.0/24 thì phải đi qua trạm kế tiếp là R1 có địa chỉ IP là 192.168.12.1.
Hai kiểu cấu hình này có tác dụng như nhau, điểm khác biệt là route static được khai báo theo kiểu output – interface sẽ có AD = 0 còn route static được khai báo theo kiểu IP next – hop sẽ có AD = 1. Ngoài ra nếu cổng ra là một cổng multi – access thì ta nên sử dụng kiểu khai báo IP next – hop (vấn đề này sẽ được đề cập và giải thích chi tiết trong một bài viết khác).

Ví dụ trên đây đã mô tả một cách cơ bản nhất cách khai báo static route trên các router. Tiếp theo, ta cùng khảo sát một ví dụ khác phức tạp hơn, sơ đồ lần này sẽ có 03 router.

[Hình: 15.JPG]
Hình 3 – Sơ đồ ví dụ 2.

Yêu cầu đặt ra là cấu hình định tuyến tĩnh trên các router đảm bảo cho mọi địa chỉ trên sơ đồ thấy nhau.
Tương tự như ví dụ 1, trên mỗi router ta sẽ thực hiện điền thông tin về các subnet không kết nối trực tiếp vào bảng định tuyến của mỗi router sử dụng câu lệnh câu hình static route:

Trên R1:
R1(config)#ip route 192.168.2.0 255.255.255.0 s2/0
R1(config)#ip route 192.168.23.0 255.255.255.0 s2/0
R1(config)#ip route 192.168.3.0 255.255.255.0 s2/0


Trên R2:
R2(config)#ip route 192.168.1.0 255.255.255.0 s2/0
R2(config)#ip route 192.168.3.0 255.255.255.0 s2/1


Trên R3:
R1(config)#ip route 192.168.1.0 255.255.255.0 s2/1
R1(config)#ip route 192.168.12.0 255.255.255.0 s2/1
R1(config)#ip route 192.168.2.0 255.255.255.0 s2/1


Lưu ý rằng chúng ta phải điền đầy đủ thông tin định tuyến trên tất cả các router, vì nếu như chỉ cần một router nào đó trên đường đi của gói tin bị thiếu route, gói tin sẽ bị drop giữa đường. Chẳng hạn, giả sử ta quên cấu hình chỉ đường đi đến mạng 192.168.3.0/24 trên R2. Gói tin xuất phát từ mạng 192.168.1.0/24 đi đến mạng 192.168.3.0/24 khi đi đến R1 sẽ được chuyển tiếp qua cổng s2/0 để đi tiếp (vì điều này đã được chỉ ra trong cấu hình định tuyến tĩnh của R1), tuy nhiên khi đi đến R2 nó sẽ bị drop bỏ vì R2 thiếu thông tin của mạng 192.168.3.0/24.
Ta cùng xem xét tiếp ví dụ thứ 3 về cấu hình đường dự phòng trong đó có sử dụng đến tham số AD trong câu lệnh cấu hình.

[Hình: 16.JPG]
Hình 4 – Sơ đồ ví dụ 3.

Lần này yêu cầu đặt ra như sau: cấu hình định tuyến tĩnh đảm bảo R1 đi đến LAN 2 của R2 theo đường đi ra cổng s2/0 là chính, đường s2/1 là dự phòng, ngược lại, R2 lại đi đến LAN 1 của R1 theo đường đi ra cổng s2/1 là chính, đường s2/0 là dự phòng. Có nghĩa là, R1 khi chuyển gói tin đi LAN 2 của R2 luôn sử dụng cổng ra là s2/0, khi cổng s2/0 này down thì tự động chuyển đường qua s2/1, khi cổng s2/0 up lại, lại chuyển về sử dụng cổng s2/0. Tương tự với R2.
Để thực hiện yêu cầu này, chúng ta sử dụng tham số AD trong câu lệnh cấu hình định tuyến tĩnh. Như đã nói, static route có thể có hai chỉ số AD là 0 (khi cấu hình chỉ cổng ra) và 1 (khi cấu hình chỉ next – hop). Ta có thể thay đổi các giá trị mặc định này để phục vụ cho việc cấu hình dự phòng.
Nhắc lại rằng AD dùng để so sánh độ ưu tiên giữa các route. Khi tồn tại nhiều đường đi đến cùng một đích đến, đường đi nào có chỉ số AD nhỏ hơn, đường đi đó sẽ được đưa vào bảng định tuyến để sử dụng, những đường còn lại có AD cao hơn sẽ được dùng để dự phòng cho đường chính thức. Do đó ta chỉ việc chọn AD nhỏ hơn (ví dụ là 5) cho đường chính và chọn AD lớn hơn (ví dụ là 10) cho đường phụ.

Cấu hình trên R1:
R1(config)#ip route 192.168.2.0 255.255.255.0 Serial2/0 5
R1(config)#ip route 192.168.2.0 255.255.255.0 Serial2/1 10


Cấu hình trên R2:
R2(config)#ip route 192.168.1.0 255.255.255.0 Serial2/1 5
R2(config)#ip route 192.168.1.0 255.255.255.0 Serial2/0 10


Ta thực hiện kiểm tra kết quả cấu hình trên R1:
Đầu tiên, ta hiển thị bảng định tuyến để xem đường nào đã được đưa vào bảng:

R1#show ip route
(đã bỏ bớt một số dòng)
192.168.12.0/30 is subnetted, 1 subnets
C 192.168.12.0 is directly connected, Serial2/0
192.168.21.0/30 is subnetted, 1 subnets
C 192.168.21.0 is directly connected, Serial2/1
C 192.168.1.0/24 is directly connected, FastEthernet0/0
S 192.168.2.0/24 is directly connected, Serial2/0

Ta thấy đường được đưa vào bảng định tuyến để sử dụng có cổng ra là s2/0 đúng như yêu cầu.
Tiếp theo ta thử tính dự phòng bằng cách shutdown cổng s2/0 của R1:

R1(config)#interface s2/0
R1(config-if)#shutdown
R1(config-if)#
*Mar 1 00:15:48.971: %LINK-5-CHANGED: Interface Serial2/0, changed state to administratively down
*Mar 1 00:15:49.971: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial2/0, changed state to down


Đường chính đã không còn, ta hiển thị lại bảng định tuyến để chắc chắn rằng đường phụ (đi ra cổng s2/1) đã được đưa vào bảng định tuyến:

R1#show ip route
(đã bỏ bớt một số dòng)
192.168.12.0/30 is subnetted, 1 subnets
C 192.168.12.0 is directly connected, Serial2/0
192.168.21.0/30 is subnetted, 1 subnets
C 192.168.21.0 is directly connected, Serial2/1
C 192.168.1.0/24 is directly connected, FastEthernet0/0
S 192.168.2.0/24 is directly connected, Serial2/1

Ta thực hiện mở lại cổng s2/0 và kiểm tra rằng đường đi qua cổng này lại được đưa lại vào bảng định tuyến để sử dụng:

R1(config)#interface s2/0
R1(config-if)#no shutdown
R1(config-if)#
*Mar 1 00:19:36.767: %LINK-3-UPDOWN: Interface Serial2/0, changed state to up
R1(config-if)#
*Mar 1 00:19:37.775: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial2/0, changed state to up


R1#show ip route
(đã bỏ bớt một số dòng)
192.168.12.0/30 is subnetted, 1 subnets
C 192.168.12.0 is directly connected, Serial2/0
192.168.21.0/30 is subnetted, 1 subnets
C 192.168.21.0 is directly connected, Serial2/1
C 192.168.1.0/24 is directly connected, FastEthernet0/0
S 192.168.2.0/24 is directly connected, Serial2/0
R1#

Thực hiện kiểm tra tương tự trên R2.

Nhìn chung, định tuyến tĩnh có ưu điểm là khá dễ hiểu và cũng dễ cấu hình. Thêm nữa, định tuyến tĩnh còn có một ưu điểm khác là không gây hao tốn tài nguyên mạng do không có sự trao đổi thông tin định tuyến giữa các router. Tuy nhiên nhược điểm của định tuyến tĩnh là hoàn toàn không thích hợp với những mạng có quy mô lớn (ta không thể cấu hình tay khai báo các route khi số lượng lên đến hàng trăm được!) và không hội tụ với mọi sự thay đổi trên sơ đồ mạng khi mà cổng ra vẫn ở trạng thái up/up. Để khắc phục các nhược điểm này, chúng ta phải sử dụng định tuyến động bằng cách chạy một giao thức định tuyến nào đó. Các giao thức định tuyến cụ thể trong chương trình CCNA sẽ được review trong các bài viết tiếp theo.

VoIP

VoIP (viết tắt của Voice over Internet Protocol, nghĩa là Truyền giọng nói trên giao thức IP) là công nghệ truyền tiếng nói của con người (thoại) qua mạng thông tin sử dụng bộ giao thức TCP/IP. Nó sử dụng các gói dữ liệu IP (trên mạng LAN, WAN, Internet) với thông tin được truyền tải là mã hoá của âm thanh.
Công nghệ này bản chất là dựa trên chuyển mạch gói, nhằm thay thế công nghệ truyền thoại cũ dùng chuyển mạch kênh. Nó nén (ghép) nhiều kênh thoại trên một đường truyền tín hiệu, và những tín hiệu này được truyền qua mạng Internet, vì thế có thể giảm giá thành.
Để thực hiện việc này, điện thoại IP, thường được tích hợp sẵn các nghi thức báo hiệu chuẩn như SIP hay H.323, kết nối tới một tổng đài IP (IP PBX) của doanh nghiệp hay của nhà cung cấp dịch vụ. Điện thoại IP có thể là điện thoại thông thường (chỉ khác là thay vì nối với mạng điện thoại qua đường dây giao tiếp RJ11 thì điện thoại IP nối trực tiếp vào mạng LAN qua cáp Ethernet, giao tiếp RJ45) hoặc phần mềm thoại (soft-phone) cài trên máy tính.

VoIP tại Việt Nam

Các dịch vụ như gọi 171 (VNPT), 177 (SPT), 178 (Viettel), 175 (VISHIPEL) ở Việt Nam đều là các dịch vụ sử dụng phương thức này. Tuy nhiên VoIP cũng có những nhược điểm của nó. Đó là chất lượng âm thanh chưa được đảm bảo, vẫn còn tình trạng trễ tiếng. Một số công ty cung cấp VoIP tại Việt Nam đã cố gắng cung cấp cho khách hàng chất lượng thoại VoIP ngày càng tốt hơn.
Ngày 29/09/2010 Công ty Điện toán và Truyền số liệu VDC – Thành viên của Tập đoàn Bưu chính Viễn thông Việt Nam (VNPT) đã tổ chức buổi lễ khai trương dịch vụ thẻ gọi điện thoại trong nước, quốc tế mới với tính năng roaming tại nước ngoài – Fone1718.
Dịch vụ đáp ứng được nhiều tiện ích tối đa cho người dùng với nhiều tính năng vượt trội mà từ trước đến nay chưa từng có tại Việt Nam.
Các giao thức dùng trong VoIP: sip, mgcp, h323.
Giao thức H323 không chỉ được dùng trong truyền tiếng nói mà còn được dùng để truyền video trên nền mạng IP (giải pháp video conference)

Avaya VoIP Phone 4625

1140E VoIP Phone

1535 Video over IP Phone

Phần mềm ứng dụng VoIP

Ứng dụng VoIP sử dụng trên máy tính cá nhân đầu tiên được phát triển năm 1995 bởi một công ty của Israel có tên là VocalTel. Ứng dụng VoIP đầu tiên này nói chung còn gặp phải nhiều vấn đề như: trễ lớn , chất lượng thoại còn thấp và không tương thích với các mạng ngoài. Mặc dù vậy, sự ra đời của nó cũng là một bước đột phá quan trọng. Kể từ đó đến nay, cùng với sự phát triển của công nghệ cáp quang với các đường truyền băng rộng công nghệ VoIP có nhiều thuận lợi để phát triển trở thành phương thức thoại tốt, chi phí thấp hơn rất nhiều so với phương thức thoại truyền thống.

Thứ Bảy, 16 tháng 6, 2012

Kinh nghiệm làm slide thuyết trình

Mình đã chia sẻ đồ án của mình ở đây kèm file bảo vệ và kịch bản nói.

Kinh nghiệm làm slide thuyết trình thì trên mạng nói rất nhiều nhưng mình sẽ chỉ chú trọng xoay quanh cái slide của mình và trong hoàn cảnh cụ thể của mình thôi.

Dung lượng nội dung
Đồ án : "Tìm hiểu lớp vật lý trong HSDPA", thời gian trình bày 15 phút nhưng theo thày bảo vệ thì chỉ nên trình bày xung quanh khoảng 12 phút thôi, và mình thì trình bày dao động trong khoảng 10.5 -12 phút (nhiều lần tự đo thời gian).

Với khoảng thời gian đó thì lượng slide của mình khoảng 15-20 là vừa (có những đứa thậm chí chỉ hơn 10 slide), nhưng không rõ ý thày là 15 slide là toàn bộ hay chỉ phần nội dung.
Để chắc ăn mình làm nội dung là 15 slide, thêm 1 slide bìa, 1 cái kết luận, 1 cái cảm ơn thành ra 18 slide -> quá đẹp.

Về slide thì mình thấy có rất nhiều bạn đều biết là slide phải ít chữ thôi nhưng mà các bạn đấy lược đi vẫn gấp từ 2 lần đến 3 lần số lượng chữ trong slide của mình, có lẽ cần phải biết ít chữ là như thế nào.
Mình đã từng tham dự vài hội thảo về làm giàu, tiếng anh, công nghệ thông tin nên chắc thạo hơn mấy bạn đấy, theo mình thì slide của mình lượng chữ là ổn, có phần kết luận hơi nhiều chữ 1 tí, các bạn chỉ nên thiết kế slide chữ cỡ mình trở xuống, nên tham khảo mấy slide của những người điểm cao khóa trên hoặc đã thuyết trình đi làm.

Tránh suy nghĩ viết ít thì biết đọc gì, tuyệt đối không lên bảo vệ mà đọc slide, slide chỉ là các ý, nội dung ở đâu, nội dung ở trong đầu, trong đầu không nghĩ ra được gì thì sao, bỏ ra vài ngày viết kịch bản rồi học thuộc chứ còn làm sao nữa, thường 1 slide 15 phút này nên bỏ ra khoảng 6 trang học thuộc (không cần học thuộc từng chữ mà chỉ nên khoảng 70-80% còn lại là ngẫu hứng để vừa có tính trôi chảy, vừa có tính tự nhiên khi nói).

Theme và hiệu ứng
Rất nhiều bạn lên bảng chỉ để nền trắng xóa, và cũng có 1 số lượng các bạn để hiệu ứng bay nhảy quá nhiều.
Theo mình thì cần theme đẹp (kiếm trên mạng rất nhiều), nếu không kiếm được theme giống chủ đề của mình thì tìm một theme nào đó đơn giản chủ đề chung chung, tốt nhất nên làm nhiều phương án và khảo trước slide bọn khác để khỏi bị "đụng hàng".
Hiệu ứng không phải sinh ra chỉ để cho vui. Ở những slide thường thì các bạn dùng các hiệu ứng chuyển trang thật nhẹ hoặc không, ở những chỗ cần chú trọng, các hình vẽ mô tả quan trọng và các ghi chú xuất sau slide thì lúc này mới nên dùng mấy cái bay nhảy.


Những vấn đề phụ nhưng cũng rất quan trọng
  • Cần ghi số trang / tổng số trang (để người nghe dễ theo dõi và biết đến bao giờ thì hết
  • Phần kết luận không nên viết thành câu dài mà tốt nhất vạch ra thành các ý thôi
  • Cần lời cảm ơn cuối cùng
  • Nếu bạn soạn bằng office cao (2007, 2010) thì khi trình bày tốt nhất dùng máy có office cao cỡ đó trở lên vì office cũ sẽ làm mất một số hiệu ứng và có thể sai lệch định dạng đi.
  • Không phải máy chiếu nào cũng tốt, nhiều khi chiếu lên cứ nhờ nhờ, chữ các bạn không nên dùng time new roman (font chữ mảnh) mà nên dùng arial, tahoma, calibri .. to, đen, font nền sáng.

Thứ Sáu, 15 tháng 6, 2012

Các chuẩn bảo mật không dây cơ bản (wep, wpa, wpa2)

Các chuẩn bảo mật không dây cơ bản hiện có (theo Tý biết) bao gồm:
  1. WEP (Wired Equivalent Privacy) - xem thêm tại wiki
  2. WPA (Wi-Fi Protected Access)
  3. WPA2

Chúng ta sẽ đi tìm hiểu từng chuẩn:

1. WEP. - Xem thêm (http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy)
WEP là một hệ thống mã hóa dùng cho việc bảo mật dữ liệu cho mạng Wireless, WEP là một phần của chuẩn 802.11 gốc và dựa trên thuật toán mã hóa RC4, mã hóa dữ liệu 40bit để ngăn chặn sự truy cập trái phép từ bên ngoài.

1.a. Cơ chế chứng thực của chuẩn WEP (Authentication)

1.a.1. Open Authentication
Open Authentication là phương thức chấp nhận mọi yêu cầu truy cập của bất kỳ Client nào nằm trong phạm vi phục vụ của AP. Mục đích của phương thức này là nhanh chóng cho phép Client truy cập vào mạng.

Phương thức này dựa trên việc cấu hình trước khóa WEP ở Client và AP. Client và AP phải có cùng khóa WEP để có thể giao tiếp với nhau. Bất kỳ thiết bị nào cũng có thể gia nhập vào mạng nếu cấu hình đúng khóa WEP và không bật tính năng mã hóa dữ liệu. Nếu khóa WEP được cấu hình ở Client và AP khác nhau thì Client sẽ không thể mã hóa và giải mã chính xác dữ liệu, và các frame dữ liệu sẽ bị Client hoặc AP loại bỏ.

1.a.2. Shared Key Authentication
Trong phương thức này, AP gửi một chuỗi ký tự chưa được giải mã cho các bất kỳ thiết bị nào muốn giao tiếp với AP. Khi đó thiết bị muốn giao tiếp với AP sẽ yêu cầu chứng thực bằng cách dùng key được cung cấp của mình giải mã chuỗi ký tự và gửi lại cho AP.
Nếu chuỗi ký tự đã giải mã này đúng, nghĩa là key đúng, thì AP sẽ chứng thực cho thiết bị này.

Việc mã hóa và giải mã chuỗi ký tự này hoàn toàn có thể bị giám sát từ bên ngoài (Attacker), Attacker có thể kết hợp chuỗi ký tự đã giải mã và chưa giải mã để tính toán ra khóa WEP. Chính vì nhược điểm này mà Shared Key Authentication bảo mật kém hơn Open Authentication.

1.b. Cơ chế mã hóa dữ liệu
(chờ ai đó lấp chỗ này)

2. WPA  Xem thêm (http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access)
WPA được thiết kế nhằm thay thế cho WEP vì có tính bảo mật cao hơn. WPA bảo mật mạnh hơn WEP rất nhiều vì WPA sử dụng hệ thống kiểm tra và bảo đảm tính toàn vẹn của dữ liệu tốt hơn WEP.

2.a.Cơ chế chứng thực

2.a.1. EAP -Extensible Authentication Protocol
EAP authentication cung cấp key động cho các Client. Key động thì bảo mật hơn nhiều so với key tĩnh.
Phương pháp chứng thực này cần kết hợp với một RAIDUS server

RADIUS server

RADIUS – Remote Access Dial-up User Service là một công nghệ thường được dùng cho các doanh nghiệp có quy mô lớn để bảo vệ và quản lý việc truy cập trong mạng không dây.
RADIUS là danh sách những Username và password. Trước khi muốn truy cập vào mạng thì User phải nhập Username và password và gửi đến RADIUS server, server sẽ kiểm tra tài khoản của User, nếu đúng thì cho phép truy cập, ngược lại thì không.

RADIUS server được cài đặt để cung cấp những cấp độ và lớp truy cập khác nhau. Ví dụ như những User truy cập vào mạng, người thì chỉ được phép truy cập Internet, người khác thì chỉ được xem mail, người khác thì có thể đầy đủ các quyền…

Cũng giống như tất cả các công nghệ bảo mật phức tạp khác, RADIUS cũng là một công nghệ đa dạng về loại và cấp độ. Bạn có thể sử dụng RADIUS miễn phí do Microsoft cung cấp cho một hệ thống bảo một tiêu chuẩn, hoặc bạn có thể dùng những giải pháp bảo mật về phần cứng và phần mềm.

2.a.2. LEAP Authentication
LEAP Authentication là một trong những loại chứng thực dùng cho mạng WLAN được Cisco đề xuất.
LEAP hổ trợ rất mạnh việc chứng thực giữa Client và RADIUS Server.
LEAP cung cấp động khóa được mã hóa.
LEAP Authentication hổ trợ mạng sử dụng WPA và WPA2.
LEAP Authentication được phát triển rộng rãi, hổ trợ nhiều loại Client, nhiều thiết bị của các nhà sản xuất.

Một vài đặc tính của LEAP hổ trợ như :
• Đăng nhập và chứng thực Username và password trên mội trường Active Directory WinNT/2000
• Đơn giản và giá thành thấp cho người quản trị mạng
• Quản trị, bảo mật tiện lợi, linh động, tập trung
• Hiệu suất bảo mật cao, có thể nâng cấp lên cấp độ bảo mật cao hơn
• LEAP hổ trợ chạy trên nhiều môi trường khác nhau : Microsoft Windows, Mac OS, Linux, DOS và Window CE

2.a.3. MAC Address Authentication
AP sẽ chuyển tiếp địa chỉ MAC của các Client đến đến RADIUS server trên mạng, RADIUS server sẽ so sánh địa chỉ nhận được với bảng danh sách địa chỉ MAC mà cho phép truy cập vào mạng.

Nếu không có RADIUS server bạn có thể tạo một danh sách các địa chỉ MAC cho phép truy cập trên AP. Khi đó những Client nào không có địa chỉ MAC phù hợp thì không được chứng thực.

2.b. Cơ chế mã hóa
TKIP - Temporal Key Integrity Protocol
TKIP sử dụng thuật toán RC4 để mã hóa với 128bit cho mã hóa và 64bit cho chứng thực.
...
(Xem thêm ở Wiki (http://en.wikipedia.org/wiki/Temporal_Key_Integrity_Protocol))

3. WPA2
WPA2 là một chuẩn ra đời sau WPA và được kiểm định lần đầu tiên và ngày 1/9/2004. WPA2 được National Institute of Standards and Technology (NIST) khuyến cáo sử dụng.

WPA2 cũng có cấp độ bảo mật rất cao tương tự như chuẩn WPA, nhằm bảo vệ cho người dùng và người quản trị đối với tài khoản và dữ liệu.

Nhưng trên thực tế WPA2 cung cấp hệ thống mã hóa mạnh hơn so với WPA, và đây cũng là nhu cầu của các tập đoàn và doanh nghiệp có quy mô lớn. WPA2 sử dụng rất nhiều thuật toán để mã hóa dữ liệu như TKIP, RC4, AES và một vài thuật toán khác. Những hệ thống sử dụng WPA2 đều tương thích với WPA.

3.a. Chứng thực:
Giống WPA

3.b. Mã hóa:
AES - Advanced Encryption Standard
...
Xem thêm ở Wiki (http://en.wikipedia.org/wiki/AES_%28cipher%29)


Thực tế thì người ta hay dùng wpa2 vì có độ bảo mật cao.

Thứ Năm, 14 tháng 6, 2012

Cách chia địa chỉ IP

Trong quá trình học mạng, chắc hẳn bạn đã học về cách chia địa chỉ IP. Tuy nhiên, cách chia IP rất dễ quên. Vì vậy mình xin giới thiệu về cách tính IP của mình, mong được sự đóng gớp ý kiến từ các bạn.

1. Chia IP ở lớp C :

1A. Chia 192.168.10.0 / 24 thành 2 mạng con
Bước 1 Xác định số bit cần lấy : 2^1 = 2 mạng (số bit cần lấy phải > hoặc = số mạng ví dụ chia 3 mạng thì phải lấy 2 bit)
- Ta lấy 1 bit từ HostID cho NetID :
192.168.10.0 / 24
255.255.255.0 tức là 11111111.11111111.11111111 . 0 0 0 0 0 0 0 0 theo kiểu nhị phân, phần địa chỉ lớp C thì chỉ dùng được 8 bit để mã hóa các mạng và địa chỉ từng máy, ta dùng 1 bit để mã hóa mạng vậy còn 7 bit để mã hóa địa chỉ máy từng mạng.

Ta lấy bit ở vị trí thứ 7
- Đối với lớp C : ta có 24 bit cho NetID và 8 bit cho HostID.
- Ta đã lấy 1 bit ở HostID nên số bit còn lại ở HostID là 7 bit.
- Ta có số bit ở NetID là 25 bit.
Bước 2 Xác định số host mỗi mạng : Số host = 2^số bit còn lại của HostID
- Số host mỗi mạng là : 2 ^ 7 = 128 host ( bao gồm địa chỉ mạng và broadcast )
- Số host thực là : 128 – 2 ( trừ đi địa chỉ đầu là địa chỉ mạng
và địa chỉ cuối là broadcast)
Bước 3 Xác định dãy IP :
- Vì lấy đi 1 bit nên số bit còn lại ở hostID là 7 : => 2^7 = 128. (mỗi lần cộng thêm 128)
- Ta có dãy IP là : ( 25bit )
Network | Range | Broadcast
192.168.10.0 | 192.168.10.1 – 192.168.10.126 | 192.168.10.127
192.168.10.128 | 192.168.10.129 – 192.168.10.254 | 192.168.10.255

Bước 4 Xác đinh subnet masks
- Subnet masks ban đầu có 24 bit :
255.255.255.0 => 11111111.11111111.11111111. 0 0 0 0 0 0 0 0
- Ta lấy đi 1 bit :
11111111.11111111.11111111. 1 0 0 0 0 0 0 0
- Ta có :
1*2^7 + 0*2^6 + 0*2^5 + 0*2^4 + 0*2^3 + 0*2^2 + 0*2^1 + 0*2^5 = 128
- Kết quả : 255.255.255.128 / 25

1B. Chia 192.168.10.0 / 24 thành 4 mạng con
Bước 1 Xác định số bit cần lấy : 2^2 = 4 mạng
- Ta lấy 1 bit từ HostID cho NetID :
192.168.10.0 / 24
255.255.255.0 ó 11111111.11111111.11111111 . 0 0 0 0 0 0 0 0


Ta lấy bit ở vị trí thứ 7,6
- Đối với lớp C : ta có 24 bit cho NetID và 8 bit cho HostID.
- Ta đã lấy 2 bit ở HostID nên số bit còn lại ở HostID là 6 bit.
- Ta có số bit ở NetID là 26 bit.
Bước 2 Xác định số host mỗi mạng : Số host = 2^số bit còn lại của HostID
- Số host mỗi mạng là : 2 ^6 = 64 host ( bao gồm địa chỉ mạng và broadcast )
- Số host thực là : 64 – 2 ( trừ đi địa chỉ đầu là địa chỉ mạng
và địa chỉ cuối là broadcast)
Bước 3 Xác định dãy IP :
- Vì lấy đi 2 bit nên số bit còn lại ở hostID là 6 : => 2^6 = 64. (mỗi lần cộng thêm 64)
- Ta có dãy IP là : ( 26bit )
Network Range Broadcast
192.168.10.0 192.168.10.1 – 192.168.10.62 192.168.10.63
192.168.10.64 192.168.10.65 – 192.168.10.126 192.168.10.127
192.168.10.128 192.168.10.129 – 192.168.10.190 192.168.10.191
192.168.10.192 192.168.10.193 - 192.168.10.254 192.168.10.255

Bước 4 Xác định subnet masks
- Subnet masks ban đầu có 24 bit :
255.255.255.0 => 11111111.11111111.11111111. 0 0 0 0 0 0 0 0
- Ta lấy đi 1 bit :
11111111.11111111.11111111. 1 1 0 0 0 0 0 0
- Ta có :
1*2^7 + 1*2^6 + 0*2^5 + 0*2^4 + 0*2^3 + 0*2^2 + 0*2^1 + 0*2^5 = 192
- Kết quả : 255.255.255.192 / 26

2. Chia IP ở lớp B :
2A. Chia 172.16.0.0 / 16 thành 2 mạng con
Bước 1 Xác định số bit cần lấy : 2^1 = 2 mạng
- Ta lấy 1 bit từ HostID cho NetID :
172.16.0.0 / 16
255.255.0.0 ó 11111111.11111111. 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0


Ta lấy bit ở vị trí thứ 7
- Đối với lớp B : ta có 16 bit cho NetID và 16 bit cho HostID.
- Ta đã lấy 1 bit ở HostID nên số bit còn lại ở HostID là 15 bit.
- Ta có số bit ở NetID là 17 bit.
Bước 2 Xác định số host mỗi mạng : Số host = 2^số bit còn lại của HostID
- Số host mỗi mạng là : 2^15 = 32768 ( bao gồm địa chỉ mạng và broadcast )
- Số host thực là : 2^15 – 2 ( trừ đi địa chỉ đầu là địa chỉ mạng
và địa chỉ cuối là broadcast)
Bước 3 Xác định dãy IP :
- Vì lấy đi 1 bit nên số bit còn lại ở hostID là 7 : => 2^7 = 128. (mỗi lần cộng thêm 128)
(tính trong từng obtain)
- Ta có dãy IP là : ( 25bit )
Network Range Broadcast
172.16.0.0 172.16.0.1 – 172.16.127.254 172.16.127.255
172.16.128.0 172.16.128.1 – 172.16.255.254 172.16.255.255

Bước 4 Xác đinh subnet masks
- Subnet masks ban đầu có 16 bit :
255.255.0.0 => 11111111.11111111. 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0
- Ta lấy đi 1 bit :
11111111.11111111. 1 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0
- Ta có :
1*2^7 + 0*2^6 + 0*2^5 + 0*2^4 + 0*2^3 + 0*2^2 + 0*2^1 + 0*2^5 = 128
- Kết quả : 255.255.128.0 / 17

2B. Chia 172.16.0.0 / 16 thành 8 mạng con
Bước 1 Xác định số bit cần lấy : 2^3 = 8 mạng
- Ta lấy 3 bit từ HostID cho NetID :
172.16.0.0 / 16
255.255.0.0 ó 11111111.11111111. 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0

Ta lấy bit ở vị trí thứ 7, 6, 5
- Đối với lớp B : ta có 16 bit cho NetID và 16 bit cho HostID.
- Ta đã lấy 3 bit ở HostID nên số bit còn lại ở HostID là 13 bit.
- Ta có số bit ở NetID là 19 bit.
Bước 2 Xác định số host mỗi mạng : Số host = 2^số bit còn lại của HostID
- Số host mỗi mạng là : 2^ 13 = 8192 ( bao gồm địa chỉ mạng và broadcast )
- Số host thực là : 2^13 – 2 ( trừ đi địa chỉ đầu là địa chỉ mạng
và địa chỉ cuối là broadcast)
Bước 3 Xác định dãy IP :
- Vì lấy đi 3 bit nên số bit còn lại ở hostID là 5 : => 2^5 = 32. (mỗi lần cộng thêm 32)
(tính trong từng obtain)
- Ta có dãy IP là : ( 25bit )
Network Range Broadcast
172.16.0.0 172.16.0.1 – 172.16.31.254 172.16.31.255
172.16.32.0 172.16.32.1 – 172.16.63.254 172.16.63.255
172.16.64.0 172.16.64.1 – 172.16.127.254 172.16.127.255
172.16.128.0 172.16.128.1 – 172.16.159.254 172.16.159.255
172.16.160.0 172.16.160.1 – 172.16.191.254 172.16.191.255
172.16.192.0 172.16.192.1 – 172.16.223.254 172.16.223.255
172.16.224.0 172.16.224.1 – 172.16.255.254 172.16.255.255

Bước 4 Xác đinh subnet masks
- Subnet masks có 16 bit : 11111111.11111111. 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0
- Ta lấy đi 3 bit 11111111.11111111. 1 1 1 0 0 0 0 0 . 0 0 0 0 0 0 0 0
- Nên 1*2^7 + 1*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 0*2^1 + 0*2^5 = 224
- Kết quả : 255.255.224.0 / 19

3. Chia IP ở lớp A :
3A. Chia 10.0.0.0 / 16 thành 4 mạng con
Bước 1 Xác định số bit cần lấy : 2^2 = 4 mạng
- Ta lấy 2 bit từ HostID cho NetID :
172.0.0.0 / 8
255.0.0.0 ó 11111111. 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0 . 0 0 0 0 0 0 0 0

Ta lấy bit ở vị trí thứ 7, 6
- Đối với lớp B : ta có 8 bit cho NetID và 24 bit cho HostID.
- Ta đã lấy 2 bit ở HostID nên số bit còn lại ở HostID là 22 bit.
- Ta có số bit ở NetID là 10 bit.
Bước 2 Xác định số host mỗi mạng : Số host = 2^số bit còn lại của HostID
- Số host mỗi mạng là : 2^ 22 = 4194304 ( bao gồm địa chỉ mạng và broadcast )
- Số host thực là : 2^22 – 2 ( trừ đi địa chỉ đầu là địa chỉ mạng
và địa chỉ cuối là broadcast)
Bước 3 Xác định dãy IP :
- Vì lấy đi 2 bit nên số bit còn lại ở hostID là 6 : => 2^6 = 64. (mỗi lần cộng thêm 64)
(tính trong từng obtain)
- Ta có dãy IP là : ( 10bit )
Network Range Broadcast
10.0.0.0 10.0.0.1 – 10.63.255.254 10.63.255.255
172.64.0.0 10.64.0.1 – 10.127.255.254 10.127.255.255
172.128.0.0 10.128.0.1 – 10.191.255.254 10.191.255.255
172.192.0.0 10.192.0.1 – 10.255.255.254 10.255.255.255

Bước 4 Xác đinh subnet masks
- Subnet masks có 8 bit : 11111111.0 0 0 0 0 0 0 0. 0 0 0 0 0 0 0 0. 0 0 0 0 0 0 0 0
- Ta lấy đi 11111111.1 1 0 0 0 0 0 0. 0 0 0 0 0 0 0 0 .0 0 0 0 0 0 0 0
- Nên 1*2^7 + 1*2^6 + 0*2^5 + 0*2^4 + 0*2^3 + 0*2^2 + 0*2^1 + 0*2^5 = 192
- Kết quả : 255.255.192.0 / 10

4. Supper Subnet – CIDR :
- Dùng để kết hợp nhiều subnet khác nhau thành 1 subnet chung, có thể truyền thông được với nhau.
- Cách thực hiện : theo qui tắc 2^1, 2^2, 2^3, 2^4 ….. \
- Nếu có 2 mạng -> qui tắc 2^1.
- Nếu có 4 mạng -> qui tắc 2^2……
4.A. Cách tính supper subnet :
- Ví dụ : có 8 mạng sau đây
> 194.10.1.0 / 24 (255.255.255.0)
> 194.10.2.0 / 24
> 194.10.3.0 / 24
> 194.10.4.0 / 24
> 194.10.5.0 / 24
> 194.10.6.0 / 24
> 194.10.7.0 / 24
> 194.10.8.0 / 24
- Ta áp dụng qui tắc 2^3. Vì 2^3 = 8 mạng è 24 bit – 3 = 21 bit
- Như vậy, tất cả các mạng trên sẽ có subnet là 21 bit.
> 24 bit có dạng : 255.255.255.0
7 6 5 4 3 2 1 0
ó 11111111.11111111.1 1 1 1 1 1 1 1.00000000
> Ta bỏ đi 3 bit : (tính từ 0 => ta bỏ bit : 0, 1, 2)
> Ta được :
2^7 + 2^6 + 2^5 + 2^4 + 2^3 + 2^2 + 2^1 + 2^0 - 2^2 + 2^1 + 2^0 = 248
- Kết quả cuối cùng : 255.255.248.0 / 21 bit

Thứ Tư, 13 tháng 6, 2012

Số IMEI

IMEI - Viết tắt của tiếng Anh International Mobile Equipment Identity (tạm dịch là "Số nhận dạng thiết bị di động trên toàn thế giới"), mã số nhận dạng quốc tế của từng điện thoại di động.

Đặc điểm

Đặc diểm chung

Số IMEI là một chuỗi số duy nhất được gán duy nhất cho mỗi máy GSM hay máy UMTS. Thường dãy số này được in trên tem máy nằm phía dưới Pin hay có thể bấm *#06# sẽ hiện ra trên màn hình. Số IMEI thường được sử dụng trong mạng GSM để nhận dạng sự hợp pháp của máy đầu cuối nhờ đó mạng có thể không cho các máy ăn cắp có thể gọi. Ví dụ nếu một máy điện thoại bị mất cắp, người chủ có thể gọi tới tổng đài yêu cầu tổng đài chặn máy điện thoại sử dụng số IMEI này. Do đó máy này sẽ không thể gọi được cho dù có thay thế SIM card khác.

So sánh với ESN

Không giống như số ESN trong mạng CDMA hay các mạng khác. Số IMEI chỉ dùng để nhận dạng thiết bị đầu cuối, nó không liên quan gì đến thuê bao. Vì trong mạng GSM thuê bao được nhận dạng bằng chuỗi số IMSI chuỗi này chứa trong SIM. Tuy nhiên có nhiều mạng họ có thể kích hoạt chức năng vừa xác định IMSI vừa xác định bằng IMEI.
Không giống như số ESN của mạng CDMA và các mạng không dây khác, số IMEI chỉ được dùng để xác định thiết bị, và không có mối liên kết thường trực hoặc bán thường trực với phía thuê bao. Thay vào đó, phía thuê bao được xác định thông qua việc truyền phát một số IMSI, số này được lưu giữ trên một thẻ SIM, về nguyên tắc có thể được truyền tới bất kỳ thiết bị di động cầm tay nào. Tuy nhiên, nhiều tính năng mạng và bảo mật có thể được kích hoạt thông qua việc nắm rõ thiết bị hiện do bên thuê bao sử dụng.

Cấu trúc của số IMEI

Số IMEI là một dãy số gồm 15 số nó chứa thông tin xuất xứ, Model và số serial của máy. Model và xuất xứ bao gồm 8 số trong phần đầu được hiểu là TAC (viết tắt của Type Allocation Code: Mã model và xuất xứ). Các phần còn lại của số IMEI được định nghĩa bởi nhà sản xuất, và cuối cùng là số Luhn Check Digit số này không gửi đi tới mạng.

Cấu trúc cũ

Trước năm 2002 thì số IMEI có dạng như sau :
AAAAAA-BB-CCCCCC-D (TAC – FAC – SNR – D ).
Trong đó thì TAC có độ dài 6 số theo sau đó là 2 số cho biết máy được ráp ở đâu gọi là (FAC: Final Assembly Code) tùy theo đó nhà sản xuất sẽ ghi các số này để cho biết máy được ráp ở nước nào. Và sau cùng cũng là chuỗi số serial của máy do nhà sản xuất quy định.
Ví dụ 352099-00-176148-1 cho biết các thông số sau : TAC: 352099 nó được đưa ra bởi BABT và theo số 2099.
FAC: 00 số này là thời điểm chờ chuyển từ số theo định dạng cũ sang số mới (vì sao là 00 sẽ được mô tả chi tiết sau).
SNR: 176148
CD: 1 Có nghĩa là GSM Phase 2 hay cao hơn.
Định dạng sẽ thay đổi bắt đầu từ 1 tháng 4 năm 2004 khi mà số FAC: Final Assembly Code chuyển từ định dạng cũ sang định dạng theo kiểu 8 số theo định dạng TAC: Type Allocation Code. Thì bắt đầu từ ngày một tháng một năm 2003 cho tới ngày đổi thoàn bộ số FAC sẽ là 00.

Kể từ 2004

Kể từ năm 2004 định dạng của số IMEI sẽ theo chuẩn sau : AABBBBBB-CCCCCC-D (Có thể được viết liền AABBBBBBCCCCCCD). Trong đó:
  • AA Là số Reporting Body Identifier, nó chỉ ra rằng nhóm GSMA thuộc nhóm nào xem bảng danh sách số Reporting Body Identifier ở phía dưới.
  • BBBBBB Là phần còn lại của chuỗi TAC.
  • CCCCCC Là số serial của từng máy do nhà sản xuất quy định.
  • D Là số cuối cùng được tạo ra từ các số trước theo luật Luhn check digit hoặc có thể là số 0.

Sử dụng IMEI để tra cứu thông tin máy điện thoại di động

Các dạng thức

Tùy thuộc vào năm sản xuất mà số IMEI (International Mobile Equipment Identity) có những dạng khác nhau, nhưng tựu trung thì có 2 dạng phổ biến:
  • aabbbb-cc-dddddd-e: dạng này là dành cho những máy sản xuất trước 1/4/2004
trong đó dãy aabbbb: TAC: Type approval code
cc: FAC: Final assembly code
dddddd: SNR: Serial number
e: SP: check digit (thường là số 0)
phần aa: nước sản xuất
phần cc: số hiệu của nhà sản xuất
ví dụ 01,02 = AEG ---- 60 = Alcatel
07,40 = Motorola ----- 61 = Ericsson
10,20 = Nokia ---- 65 = AEG
30 =Ericsson ----- 70 = Sagem
40,41,44 =Siemens ---- 75 = Dancall
50 =Bosch ---- 80 = Philips
51 =Sony, Siemens, Ericsson ----- 85 = Panasonic
Tuy nhiên, kể từ 1/1/2003 phần cc này đã được đồng loạt set về 00
  • xxxxxxxx-dddddd-e: dạng này là dành cho những máy sx sau thời điểm trên
trong đó xxxxxxxx: Type Allocation Code (cũng viết là TAC), và 2 chữ xx đầu cũng là ký hiệu nước sản xuất (tất nhiên bây giờ nhiều máy cũng kg ghi số IMEI theo kiểu có dấu cách như vậy mà thường ghi liền thành 1 dãy 15 số).
2 chữ số đầu tiên cho biết xuất xứ của nước sản xuất (country of origin). Nó vốn căn cứ trên mã điện thoại của mỗi quốc gia, nhưng nói chung là chỉ ở mức tương đối.
2 chữ số đầu tiên trong dãy số IMEI có tên gọi chính thức là Reporting Body Identifier. 2 chữ số này biểu thị tên tổ chức đã cấp số đăng ký cho phone. Và những con số này thường dựa trên mã quốc gia của tổ chức đó. Ví dụ: 35: British Approvals Board of Telecommunications (BABT).
  • Ví dụ: 01: USA; 35: UK; 33: Pháp; 45: Đan Mạch; 49, 50, 51: Đức v.v.
Cuối cùng, nếu bạn muốn phân tích những thông tin ẩn chứa trong IMEI, hãy vào đây và nhập số IMEI để khám phá nhiều điều thú vị.
Với các số IMEI mới chúng ta không thể dựa vào số IMEI để biết nước s/x điện thoại được. Vì dải số IMEI giờ không còn được cấp phát theo Quốc Gia nữa, mà được cấp phát theo tập đoàn/ CT s/x Điện thoại, và như chúng ta biết thì các tập đoàn s/x ĐT lớn đều đặt nhà máy s/x tại rất nhiều Quốc Gia, vì vậy các bạn check số IMEI mới, sẽ chỉ thấy - Made by Nokia, SE, Moto ...etc...

Ví dụ

Sau đây là đường dẫn hữu ích cho bạn - Phân tích 1 số IMEI xem thử thông tin của máy bạn như thế nào: http://www.numberingplans.com/?page=analysis&sub=imeinr
Bạn truy cập vào và nhập số IMEI sau đó sẽ biết được thông tin của máy mình ví dụ :
357308-00-0140802
Information on IMEI 357308000140802
Mobile equipment brand / model O2 XDA mini
GSM Implementation Phase 2/2+
Country of Approval United Kingdom

Thứ Ba, 12 tháng 6, 2012

Hiện tượng lan sai

Tiếng anh: phenomenon of error propagation hoặc error propagation phenomenon.
Đây là một hiện tượng mình gặp đầu tiên trong môn truyền dẫn với các thuật toán mã hóa sau PCM.
Nguyên tắc của các thuật toán tiết kiệm mã hóa bit là thay vì mỗi trạng thái lấy mẫu người ta mã hóa 1 lần thì ở đây người ta lấy mẫu theo kiểu các giá trị sau ước lượng dựa trên sự sai lệch của giá trị trước (hoặc các giá trị trước) và dựa trên các đặc tính của giọng con người là biến đổi không ngay lập tức mà từ từ -> giá trị sau chỉ thay đổi 1 chút so với giá trị trước -> chỉ cần ít bít để mã hóa sự thay đổi đó thôi.

Và hiện tượng lan sai xảy ra khi vì lý do nào đó sự thay đổi này bị mã hóa nhầm (truyền lỗi, đột ngột có tín hiện tăng giảm bất chợt vượt quá khả năng mã hóa thay đổi) -> giá trị sau mã hóa nhiều hoặc ít hơn giá trị trước khi sai 1 lượng. Tiếp tục giá trị sai này lại làm sai lệch giá trị sau nữa (vì mã hóa dựa trên sự thay đổi mà, bám theo sự thay đổi của giá trị sai thì cứ sai thôi) và lỗi cứ lan ra mãi. Tuy nhiên với PCM thì sự thay đổi biên độ này chỉ làm tăng hoặc giảm âm, không ảnh hưởng lắm, nhưng với các trường hợp khác thì ...

Thứ Hai, 11 tháng 6, 2012

Thủ tục bắt tay 3 bước (three way - handshake)

Ở tầng Transport có 2 giao thức quan trọng là UDP và TCP
- TCP là giao thức thuộc dạng connection-oriented (hướng kết nối). Có nghĩa là nó thiết lập kênh kết nối trước khi truyền data đi.

- UDP là giao thức thuộc dạng connectionless (nghĩa là không hướng kết nối). Nó không cần thiết lập kênh truyền trước khi truyền dữ liệu đi.

TCP thiết lập kết nối bằng 3 bước bắt tay (3-way handshake)

sender ___________ receiver

SYN seq=X ----------> SYN received (step 1)

SYN received <--------send ACK X+1 and SYN Y (step 2)

Send ACK Y+1 --------> (step 3)


Một gói dữ liệu TCP chứa các code bits (6) dùng để xác định các loại segment. Có 6 loại segment: URG, ACK, PSH, RST, SYN, FIN

* SYN (synchronization) dùng để bắt đầu một connection.
* ACK (acknowledgement).
* FIN (finish) dùng để ngắt một connection.
* URG và PSH là gói tin ưu tiên
* RST là gói tin cắt ngang


Bây giờ là các bước thực hiện việc thiết lập kết nối (giả sử A là người gởi và B là người nhận)
- Bước 1. A gởi cho B một SYN segment, trong đó chứa Sequence number của A
- Bước 2. Khi B nhận được B sẽ gởi lại một SYN – ACK Segment, trong đó chứa Sequence number của B và vùng ACK= Sequence number của B + 1
- Bước 3. Khi A nhận được sẽ gởi lại một ACK Segment chứa Sequence number A bằng giá trị vùng ACK của B gởi tới và vùng ACK của A có giá trị bằng Sequence number +1
Sau bước 3, kết nối được thiết lập và sẵn sàng truyền Data. Mục đích là để trao đổi Sequence Number và ACK Number.

Mục đích của Phương pháp bắt tay 3 bước là để thiết lập kết nối giữa bên gởi và bên nhận để tránh bị mất dữ liệu


Chủ Nhật, 10 tháng 6, 2012

Bấm cáp thẳng và bấm cáp chéo

Quy tắc nhớ rất đơn giản thôi, coi các thiết bị làm 2 loại :
  • Loại 1: Router, PC, Server
  • Loại 2: Switch, Hub và các thiết bị khác
  • Nếu cùng loại thì dùng cáp chéo, khác loại thì dùng cáp thẳng. 
Thực tế ở mức độ dân dụng ta hầu hết chỉ sử dụng cắm cáp từ PC/lap đến switch hoặc modem (đa số là 4 cổng, đáng ra là phải dùng cáp thẳng, nhưng không rõ do nó đảo cổng hay tự động nhận mà cho cáp thẳng hay cáp chéo đều nhận được hết. Và với đa số các thiết bị hiện giờ thì bấm thẳng hay bấm chéo đều nhận -> bấm thẳng cho nó dễ, cứ cùng màu thì nối với nhau, hết.

Tuy nhiên một số dòng switch cũ (cùng loại 2) nếu dây thẳng thì nó không nhận, cứ phải bấm chéo -> để đảm bảo 100% các thiết bị đều nhận, cách tốt nhất là bấm chéo tất -> dù khó người ta vẫn toàn bấm chéo cho chắc -> cuộc đời lắm thứ oái oăm thế đấy ^_^.

Cách bấm cáp các bạn có thể xem ở đây

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by NewWpThemes | Blogger Theme by Lasantha - Premium Blogger Themes | New Blogger Themes