<B:LOOP VALUES='DATA:POSTS' VAR='POST'><B:INCLUDE DATA='POST' NAME='POST'></B:INCLUDE></B:LOOP> ~ <DATA:BLOG.TITLE></DATA:BLOG.TITLE> <DATA:BLOG.PAGETITLE></DATA:BLOG.PAGETITLE>

Thứ Hai, 9 tháng 2, 2009

Kỹ thuật NAT

Kỹ thuật NAT

By huyx

Nội dung:

  • -1-Giới thiệu
  • -2-Các kỹ thuật NAT cổ điển
    * NAT tĩnh
    * NAT động
    * Masquerading(NAPT)
  • -3-Các kỹ thuật NAT khác
    * Virtual Server(Load balancing)
    * Multiple routes per Destination
  • -4-Các vấn đề cần giải quyết cho kỹ thuật NAT
    * Lưu giữ thông tin trạng thái
    * Phân chia (fragmentation)
    * Định ra giao thức (protocol) cụ thể

Trình bày
1) Giới thiệu:
Lúc đầu, khi NAT được phát minh ra nó chỉ để giải quyết cho vấn đề thiếu IP .Vào lúc ấy không ai nghĩ rằng NAT có nhiều hữu ích và có lẽ nhiều ứng dụng trong những vấn đề khác của NAT vẫn chưa được tìm thấy.
Trong ngữ cảnh đó nhiều người đã cố gắng tìm hiểu vai trò của NAT và lợi ích của nó trong tương lai.Khi mà IPv6 được hiện thực thì nó không chỉ giải quyết cho vấn đề thiếu IP.Qua nhiều cuộc thử nghiệm họ đã chỉ ra rằng viêc chuyển hoàn toàn qua IPv6 thì không có vấn đề gì và mau lẹ nhưng để giải quyết những vấn đề liên qua giữa IPv6 và IPv4 là khó khăn.Bởi vậy có khả năng IPv4 sẽ là giao thức chủ yếu cho Internet và Intranet … lâu dài hơn những gì họ mong muốn.
Trước khi giải thích vai trò của NAT ngày nay và trong tương lai ,những người này muốn chỉ ra sự khác nhau về phạm vi của NAT được sủ dụng vào ngày đó.Sự giải thích sẽ đưa ra một cái nhìn tổng quan và họ không khuyên rằng làm thế nào và nên dùng loại NAT nào.Sau đây chỉ là giới thiệu và phân loại các NAT phần chi tiết sẽ được thảo luận và đề cập trong chương sau khi hiện thực NAT là một laid out.
Phần trình bày được chia làm 2 phần :
- Phần đầu được đặt tên là CLASSIC NAT nó là các kỹ thuật NAT vào những thời kỳ sơ khai (đầu những năm 90) được trình bày chi tiết trong RFC 1931. Ứng dụng của nó chủ yếu giải quyết cho bài toán thiếu IP trên Internet.
- Phần hai trình bày những kỹ thuật NAT được tìm ra gần đây và ứng dụng trong nhiều mục đích khác.
2)Các kỹ thuật NAT cổ điển:
Nói về NAT chúng ta phải biết rằng có 2 cách là tĩnh và động .Trong trường hợp đầu thì sự phân chia IP là rõ ràng còn trường hợp sau thì ngược lại.Với NAT tĩnh thì một IP nguồn luôn được chuyển thành chỉ một IP
đích mà thôi trong bất kỳ thời gian nào.Trong khi đó NAT động thì IP này là thay đổi trong các thời gian và trong các kết nối khác nhau.
Trong phần này chúng ta định nghia :
m: số IP cần được chuyển đổi (IP nguồn)
n: số IP sẵn có cho việc chuyển đổi (IP NATs hay gọi là IP đích)
* NAT tĩnh
Yêu cầu m,n>=1;m=n(m,n là số tự nhiên)
Với cơ chế IP tinh chúng ta có thể chuyển đổi cùng một số lượng các IP nguồn và đích .Trường hợp đặc biệt là khi cả 2 chỉ chứa duy nhất một IP ví dụ netmask là 255.255.255.255 .Cách thức hiện thực NAT tĩnh thì dễ dàng vì toàn bộ cơ chế dịch địa chỉ được thực hiện bởI một công thức đơn giản:
Địa chỉ đích =Địa chỉ mạng mới OR (địa chỉ nguồn AND ( NOT netmask))
Không có thông tin về trạng thái kết nối.Nó chỉ cần tìm các IP đích thích hợp là đủ.
Các kết nối từ bên ngoài hệ thống vào bên trong hệ thống thì chỉ khác nhau về IP vì thế cơ chế NAT tĩnh thì hầu như hoàn toàn trong suốt.
Ví dụ một rule cho NAT tĩnh:
Dịch toàn bộ IP trong mạng 138.201.148.0 đến mạng có địa chỉ là 94.64.15.0,netmask là 255.255.255.0 cho cả hai mạng.
Dưới đây là mô tả việc dịch từ địa chỉ có IP là 138.201.148.27 đến 94.64.15.27,các cái khác tương tự.
10001010.11001001.10010100.00011011 (host 138.201.148.0)
AND
00000000.00000000.00000000.11111111 (reverse netmask)
01011110.01000000.00001111 (new net: 94.64.15.0)
01011110.01000000.00001111.00011011 (địa chỉ mới )
* NAT động
Yêu cầu m>=1 và m>=n
NAT động được sử dụng khi số IP nguồn không bằng số IP đích.Số host chia sẻ nói chung bị giới hạn bởi số IP đích có sẵn.NAT động phức tạp hơn NAT tĩnh vì thế chúng phải lưu giữ lại thông tin kết nối và thậm chí tìm thông tin của TCP trong packet.
Như đã đề cập ở trên NAT động cũng có thể sử dụng như một NAT tĩnh khi m=n.Một số người dùng nó thay cho NAT tĩnh vì mục đích bảo mật.Những kẻ từ bên ngoài không thể tìm được IP nào kết nối với host chỉ định vì tại thời điểm tiếp theo host này có thể nhận một IP hoàn toàn khác.Trong trường hợp đặc biệt thậm chí có nhiều địa chỉ đích hơn địa chỉ nguồn (mNhững kết nối từ bên ngoài thì chỉ có thể khi những host này vẫn còn nắm giữ một IP trong bảng NAT động.Nơi mà NAT router lưu giữ những thông tin về IP bên trong (IP nguồn )được liên kết với NAT-IP(IP đích).Cho một ví dụ trong một session của FPT non-passive.Nơi mà server cố gắng thiết lập một kênh truyền dữ liệu vì thế khi server cố gắng gửi một IP packet đến FTP client thì phải có một entry cho client trong bảng NAT.Nó vẫn phải còn liên kết một IPclient với cùng một NAT-IPs khi client bắt đầu một kênh truyền control trừ khi FTP session rỗi sau một thời gian timeout.Xin nói thêm giao thức FTP có 2 cơ chế là passive và non-passive .Giao thức FTP luôn dùng 2 port (control và data) .Với cơ chế passive (thụ động ) host kết nối sẽ nhận thông tin về data port từ server và ngược lại non-passive thì host kết nối sẽ chỉ định dataport yêu cầu server lắng nghe kết nối tới.Tham khảo thêm về FTP protocol trong RFC 959
Bất cứ khi nào nếu một kẻ từ bên ngoài muốn kết nối vào một host chỉ định ở bên trong mạng tại một thời điểm tùy ý chỉ có 2 trường hợp :
+ Host bên trong không có một entry trong bảng NAT khi đó sẽ nhận được thông tin “host unreachable” hoặc có một entry nhưng NAT-IPs là không biết.
+ Biết được IP của một kết nối bởi vì có một kết nối từ host bên trong ra ngoài mạng.Tuy nhiên đó chỉ là NAT-IPs và không phải là IP thật của host.Và thông tin này sẽ bị mất sau một thờii gian timeout của entry này trong bảng NAT router.
Ví dụ về một rule cho NAT động:
Dịch toàn bộ những IP trong class B ,địa chỉ mạng 138.201.0.0 đến IP trong class C 178.201.112.0.Mỗi kết nối mới từ bên trong sẽ được liên kết với tập IP của class C khi mà IP đó không được sử dụng.
– Xem thêm hình vẽ mô tả trong tài liệu NAT của SuSe –
*Masquerading(NAPT)
Yêu cầu m>=1 và n=1
Đây là một trường hợp đặc biệt của NAT động.Thuật ngữ Masquerading trở nên nổi tiếng bởi vì nó được hiện thực trong thế giới Linux .Nó là loại NAT được sử dụng hầu hết vào thời điểm đó.Với cơ chế này nhiều địa chỉ IP được ẩn đi dưới một địa chỉ duy nhất.Nó tương phản với NAT động ,rằng chỉ có một kết nối cho một IP duy nhất tại một thời điểm .Trong masquerading nhiều kết nối đến cùng một IP sẽ được phân chia thông qua TCP Port.Vấn đề đặc biệt của Masquerading là một số service trên host chỉ định chỉ chấp nhận kết nối từ những port đặc quyền để đảm bảo rằng kết nối đi vào không phải là từ một user bình thường.Có lẽ chỉ superuser có thể xử lý những port này.Vì trên DOS hoặc Window mọi người đều có thể sử dụng chúng nên một số chương trình không thể sử dụng kết nối masquerading.Masquerading thường sử dụng những port ở một tầm vực cao.Trong Linux ,bắt đầu là 61000 và kết thúc là 61000+4096.Mặc định này có thể thay đổi bằng cách edit /linux/include/net/ip_masq.h
Điều này cũng chỉ ra rằng Linux hiện thực masquerading chỉ cho đồng thời 4096 kết nốI masquerading .Kết nối masquerading cần phải lưu giữ nhiều thông tin về trạng thái kêt nối.Ví dụ trên Linux, nó xem như tất cả các packet với Destination IP= Local IP và Destination port nằm trong tầm port cho phép của Masquerading khi phải demasqueraded(phân giải những packet đã được masqueraded) Thực chất là việc thay đổi destination address và source address trong header packet.
Rõ ràng Masquerading chỉ có một chiều . Những kết nối vào thì không thể Masquerading .Vì thậm chí khi một host có một entry trong masquerading table của NAT device thì entry này chỉ hợp lệ khi một kết nối đang được active.Ngay cả một ICMP-Reply liên quan đến kết nối (host/port unreachable) cũng phải được filter và relay bởi NAT router.
Trong khi thật sự kết nối vào không thể Masquerading nhưng chúng ta có thể thêm vào để cho phép điều đó tuy nhiên chúng không phải là một phần thuộc về Masquerading .Chúng ta có thể làm điều đó ví dụ setup một NAT device để nó relay tất cả các kết nối từ bên ngoài đến port telnet của một host bên trong Tuy nhiên vì chúng ta chỉ có một IP được thấy từ bên ngoài cho phép kết nối vào cho cùng một service nhưng cho các host khác nhau bên trong mạng .Chúng ta phải cho lắng nghe trên một port khác Vì nhiều service trên những well-known port thì không thể thay đổi hoặc việc thay đổi là bất tiện đặc biệt trên những pulic server.Ví dụ 80 cho HTTP , 23 cho TELNET. Chỉ có một cách giải quyết là phải có nhiều IP đích khi các service này tăng lên.Một IP đích có thể vẫn đuợc chia sẻ bởi những service khác nhau và rồi được remap với những IP nguồn khác bên trong mạng .Nhưng đây không phải là Masquerading.
Ví dụ cho một rule của Masquerading
- Masquerading cho mạng 138.201.0.0 dùng NAT đến IP local
- Cho mỗi packet IP đi ra source IP sẽ được thay bởi IP của NAT router.Source port sẽ được đổi thành một port nằm trong tầm của Masquerading.
– Xem thêm hình vẽ mô tả trong tài liệu NAT của SuSe –
Lợi ích lớn nhất của Masquerading là chỉ cần một IP được cấp mà toàn mạng vẫn có thể kết nối trực tiếp đến Internet ,điều này là quan trọng vì địa chỉ IP thì qúa mắc.Mặc dù đối với những ứng dụng mức gateway chúng ta không cần thêm bất kỳ IP và bất kỳ loại NAT nào và một IP thì vẫn đủ nhưng cho một số giao thức thí dụ tất cả UDP based service nó thì không chỉ là mức gateway mà cần phải kết nối IP trực tiếp. Tham khảo thêm RFC 1631(NAT) được đề cập là Network Address Port Translation (NAPT)
3)Các kỹ thuật NAT khác
*Virtual Server (Loadbalancing)
NAT router đóng vai trò là một virtual server và các kết nối vào sẽ được chuyển đến 2 hay nhiều server thật .Phụ thuộc vào giải thuật được xây dựng mà kết nối này sẽ đi vào server nào ở bên trong.
Ví dụ một NAT rule như sau:
- Tạo một virtual server với IP là 138.201.14.100
- Sử dụng 2 host là 138.201.14.111 và 148.201.14.112 là những real server cho virtual server.
- Một kết nối từ bên ngoài sẽ được remap bởi NAT router để sử dụng một trong 2 host (realserver)
– Xem thêm hình vẽ mô tả trong tài liệu NAT của SuSe –
+ Load Balancing
Giải thuật để quyết định real server nào được kết nối. Cho ví dụ kiểm tra tải trên những realserver dựa trên việc đếm số packet trên mỗi giây đi qua NAT device đến real server sau đó sẽ chọn ra realserver có hiệu năng nhất.Bằng cách ấy sẽ điều chỉnh được traffic trên mạng và giảm tải cho các server.Số giải thuật được sử dụng ở đây thì không thể đếm được và dựa trên những cách tính toán khác nhau nhưng tất cả đều có chung mục đích là giảm tải cho server.Khái niệm “tải” ở đây thì không rõ ràng và không được đĩnh nghĩa duy nhất.
Cho ví dụ về loadbalancing:
Chạy một deamon trên mỗi server cung cấp thông tin cho NAT router về tải (load) trên máy này và remap những kết nối mới đến hệ thống nơi mà số này là thấp nhất.
Điều này đòi hỏi sự liên lạc giữa những host(real server) và NAT router vì thế chúng ta nên sử dụng những thông tin có trên NAT router như là số kết nối hiện tại đang được remap đến một host hoặc ta phải sử dụng những thông tin vốn không có trên server nhưng có thể dễ dàng được tìm thấy như là số byte hoặc packet mỗi giây của một host hiện tại handle.Yếu tố được đề cập ở đây sẽ là một vài ý niệm để quyết định việc đạt được sự cân bằng trong việc phân bố tải Chính xác hơn là chúng ta cố gắng đo lường và tính toán tải cho mỗi host.Có một số giải thuật ví dụ như giải thuật dựa trên học thuyết về nguyên lý không chắc chắn trong định lượng của Heisenberg.
Vì thế chúng ta phải tìm cách làm tối thiểu chi phí của host để quyết định tải và host sẽ được kết nối.
Ngay cả khi chúng ta giả sử đã tìm ra một phương thức chính xác và tốt để quyết định tải được sử dụng dựa trên việc định nghĩa “tải” là gì thì thực tiễn vẫn chưa phải là giải pháp tốt nhất vì một IP packet có kích thước nhỏ nhất chỉ được xác định bằng cách định lượng vật lý.Chúng ta có thể chỉ mới chọn được host nào chúng ta cần gửi kết nối đến khi một kết nối mới được mở mà chưa thật sự tối ưu.Tuy nhiên dù sao đi nữa các phương thức đề cập ở trên cũng có thể được áp dụng vào thực tiễn cho việc xác định cân bằng tải ngoài ra có thể có một cách tính toán nào đó tốt nhất mà chúng ta chưa tìm ra.
Có nhiều cách tiếp cận để giải quyết cho bài toán Load balancing ,hầu hết trong số chúng đều ở mức application.Một ví dụ được mô tả trong RFC 1794 đó là dùng DNS support cho Load balancing.Trong tài liệu này đề cập đến việc dùng DNS cho việc điều khiển tải của máy bằng cách tìm ra IP của máy ít bận rộn nhất khi được chất vấn (queried) Vì DNS-queries sẽ được cache bởi liên tiếp các DNS-server với việc điều khiển các giới hạn một cách khắt khe.Nó làm việc hoàn toàn tốt khi có nhiều chất vấn và ngay cả khi chúng đến từ nhiều máy client.Tuy nhiên dù cho Load balancing có làm việc trong trạng thái tốt thì cách tiếp cận này sẽ không giúp được gì một khi server bị fail vì thậm chí ngay cả khi các IP được phân chia riêng biệt trong việc chất vấn thì nó vẫn còn được cache do đó khi server bị fail thì có thể server này là hiệu năng nhất và cơ chế load balancing hoàn toàn bị phá vỡ .Một ví dụ cho chương trình cache nổi tiếng là Squid nó sử dụng giải thuật phức tạp để tìm ra một mục tiêu tốt nhất.Giải quyết này chưa hẳn đã giống trên NAT nhưng mục tiêu của nó là như nhau.Với NAT chúng ta có thể phân bố tải cho những service lớn và đa dạng dựa trên IP còn Squid phục vụ cho một mục đích khác và sự so sánh này chưa hẳn đã hoàn toàn hợp lý.Người viết chọn squid là một ví dụ vì trong squid thực hiện việc load balancing để tìm ra một dữ liệu sao cho tối ưu một cách thông minh.
+ Backup Systems
Virtual server cũng có thể được sử dụng để đạt được khả năng phục vụ tốt nhất nếu giải quyết được bài toán một real server bất kỳ bị fail ở trên.Vì các service được cung cấp bởi Virtual server thì có khả năng trên bất kỳ real server . Đặt trường hợp một real server bị fail có xác suất là p thì một virtual server sử dụng N real server trong trường hợp bị fail có thể được tính toán như sau:
Đặt
+ p1..pn là khả năng xảy ra lỗi của server n trên N (N là số server được cung cấp cho virtual server)
+ pNAT: khả năng xảy ra lỗi của NAT router,lỗi này không phụ thuộc vào thiết bị khác
+ pvirt: khả năng xảy ra lỗi của virtual server khi một realserver bị fail
Công thức được tính toán là:
Pvirt=1-((1- [tích(pi) chạy từ 1->n]) X (1-pNAT))
Dĩ nhiên setup hệ thống sử dụng công thức trên cho việc tính toán load balancing phải thay đổi danh sách server được sử dụng bởi NAT router ngay khi một real server bị fail . Điều này không thuộc về NAT-code nhưng có thể thực hiện tốt ở mức cao ,thậm chí từ shell scripts.Quan trọng là phải có cơ chế remove server bị fail từ bảng virtual server vì thế phải xây dựng bảng virtual server có khả năng thay đổi dễ dàng
để những IP có thể thêm vào hoặc loại bỏ trong thời gian thực thi (runtime)
Như vậy với cách làm này chúng ta đã có một liên kết giữa 2 khả năng là load balancing và high availability dùng virtual server.Nó thì hoàn toàn trong suốt đốI với tất cả các host ,người sử dụng và những chương trình dùng virtual service.
*Multiple routers per Destination
Như ở trên chúng ta thấy chúng ta có thể dùng NAT để phân bố tải qua nhiều host và đạt được khả năng sẵn dùng cao (high availability) .Chúng ta có thể sử dụng NAT để làm điều này cho nhiều mạng không? Vâng chúng ta có thể. Ở phần trên chúng ta thấy chúng ta đã sử dụng virtual server thay thế cho nhiều host thật sự (real server)
Chúng ta cũng có thể tạo ra kết nối mạng ảo (virtual network) gồm nhiều mạch thật sự (real wire) dùng kỹ thuật virtual server.
Chúng ta có thể làm điều này với NAT như thế nào? Hãy tưởng tượng chúng ta có 2 nguồn cung cấp Internet (Internet provider).Chọn 2 bởi vì chúng ta không muốn xảy ra lỗi khi một nguồn bị hỏng.Mỗi host cần kết nối Internet phải có một IP duy nhất vì thế chúng ta mua cho mỗi host một IP từ 2 nhà cung cấp khác nhau.Như vậy chúng ta có thể sử dụng một trong 2 host để gửi packet đến cùng một vị trí.Bây giờ chúng ta sẽ setup cho hệ thống mô tả ở trên,chúng ta sẽ phân bố tải bằng cách sử dụng một ít host thông qua provider 1 và một vài cái khác thông qua provider 2 và chúng ta có “higher availibility” của kết nối đến Internet .Tuy nhiên chúng ta cũng có thể hình dung ra rằng rất khó thực hiện load balancing khi mỗi host quyết định gửi packet đi. Chúng ta không đề cập đến làm thế nào để một mạng dùng IP này hay IP khác. Ở đây vấn đề là sẽ sử dụng một “central authority” để quyết định host nào sẽ sử dụng provider nào dĩ nhiên thông qua một special NAT router.Sử dụng Nat máy tính Local của chúng ta chỉ cần một IP.Nếu chúng ta có một provider tin cậy chúng ta có thể sử dụng IP của provider này cung cấp đồng thời vẫn có thể sử dụng các IP bên trong mạng.Bây giờ nếu một host bên trong mạng muốn thiết lập một kết nối mới tới Internet nó chỉ cần gửi packet đến default router (NAT-router) với source IP là IP của host này.Do NAT-router biết được tất cả những kết nối đi ra,nó sẽ quyết định provider để gửi packet đi sao cho tối ưu.Nó sẽ thay source IP là IP của provider đã chọn và gửi packet đến router của provider này.Vì source IP là IP của provider cung cấp nên con đường đi tiếp theo của packet sẽ do provider quyết định thông qua provider router .Host gửi packet đi sẽ không bao giờ biết provider nào được chọn bởI NAT router vì thế xử lý là trong suốt.
Chúng ta có thể sử dụng cùng một giải thuật đã sử dụng cho Virtual server. Điểm khác nhau giữa ứng dụng là ở ứng dụng này chúng ta đã can thiệp vào xử lý routing.

4) Các vấn đề cần giải quyết cho kỹ thuật NAT
Có 5 khái niệm liên quan đến một connection cho NAT đó là:protocol,source IP và port ,Destination IP và port.Vì cơ chê NAT thay đổi các thông tin trong một packet nên ta có thể tạm chia thành 3 section:
-section 1: tiến trình packet đi từ source đến NAT-router
-section 2: tiến trình packet đi từ NAT-router đến Destination
-section 3: hoạt động diễn ra trong NAT-router,NAT router phải biết cả 2 section 1 và 2
Như vậy chỉ có NAT-router biết những gì thật sự xảy ra cho một packet. Điều đó cũng có nghĩa là NAT-device phải lưu giữ hầu hết thông tin về một kết nối để quyết định con đường đi của packet.
Chúng ta thấy NAT-router phần nào đó giống như một firewall bởi vì nó không chỉ relay packet từ nơi này đến nơi khác ,mà nó còn điều khiển luồng dữ liệu.NAT-router biết nhiều về mỗi kết nối như thể các thiết bị mạng biết về kết nối của nó.Nghĩa là chúng phải lưu giữ thông tin trạng thái .Chúng có thể đọc thông tin từ các packet ,so sánh và thay đổi nó.
* Lưu giữ thông tin trạng thái
Ngoại trừ NAT tĩnh,các cái còn lạI đòi hỏi chúng ta cần phảI lưu trữ và quản lý thông tin động từ client đang sử dụng hệ thống là một router.Thông tin này phảI được mất đi sau một thời gian timeout để NAT-IP được gắn cho một host còn có thể được sử dụng lại.Thời gian timeout cũng là một lý do tạI sao phảI đọc thông tin TCP-header.Timeout có thể ngắn cho một TCP-connection vừa được đóng và cao cho TCP-connection vẫn còn được thiết lập.Ví dụ nhiều telnet session có thể treo trong một thờI gian dài không có sự trao đổI bất kỳ packet nào .Trong trường hợp này,nếu chúng ta có đủ NAT-IP chúng ta không cần ngắt kết nốI này ,nhưng giả sử trong trường hợp nhiều kết nốI mớI được yêu cầu và NAT-IP cần có thêm IP thì chúng ta sẽ cho telnet session này bị chết để lấy lạI IP.
Một cách khác là chúng ta không giữ thông tin trạng thái mà chỉ cần tìm IP chỉ định (NAT-ip) Nó thì đơn giản hơn cho việc hiện thực NAT và trong nhiều trường hợp sẽ làm việc tốt cho các giải quyết ở trên.Khi luôn có đủ NAT-IP còn dư cho việc sử dụng chúng ta không chú ý tới chi tiết khác nhau của 2 cách ,ngoại trừ trong một telnet session hoặc các chương trình liên quan chẳng hạn như ssh.Chỉ khi số NAT-IP không nhiều và không đủ ,chúng ta mới cần lưu giữ thông tin trạng thái vì chúng ta có thể nhận ra ngay chính xác một kết nối vừa mới đóng và có thể lấy lại ngay IP đã cấp phát mà không cần hết thời gian timeout.Việc lưu giữ dấu vết của các kết nối khác nhau phục vụ cho mục đích bảo mật nếu nó được sử dụng bởI firewall, đây không hẳn chỉ là NAT.
Có một số trường hợp việc NAT chỉ truy tìm chỉ IP thì hoàn toàn không hiệu qủa. Đó là trong các ứng dụng virtual server và virtual network bởI vì traffic được sinh ra bởI một IP thì không thể nào phân chia được nữa.Khi chúng ta yêu cầu NAT truy tìm thêm cả TCP/UDP port thì chúng ta có thể cân bằng tảI và giảm traffic tốt hơn bằng cách remap các kết nốI đến một IP thích hợp
– Xem thêm hình vẽ mô tả trong tài liệu NAT của SuSe –
* Phân chia (fragmentation)
Quan hệ mật thiết vớI việc lưu giữ thông tin trạng thái về TCP và có thể là UDP là vấn đề IP fragment.Nó quyết định việc thay đổI không phảI chỉ IP address mà còn TCP/UDP port.Telnet packet có thể được đốI xử khác vớI HTTP packet.Cho một ví dụ chỉ sử dụng một virtual server hoặc DNS cho tất cả các service nó được map tới các host cung cấp service thực sự ,nhiều service thậm chí được cung cấp bởI virtual host.Một firewall là gateway mức application có thể làm được điều này nhưng gateway thì hầu như là không trong suốt.
Vấn đề là ngay khi một packet được fragment đến NAT-router ,nó không thể cung cấp thông tin về port ngoạI trừ fragment đầu tiên chứa TCP-header. Đó là lý do tạI sao chúng ta phảI lưu giữ những thông tin trạng thái về mỗI fragment.Chúng ta phảI lưu giữ tất cả thông dữ liệu của fragment đầu tiên gồm TCP/UDP port của nó để mà chúng ta có thể biết port của những fragment khác đang hoạt động.Nhiều khi phương pháp này không thích đáng vì IP layer không đảm bảo packet tới với đúng số thứ tự (sequence) Ví dụ fragment thứ 3 của packet đã được fragment có thể đi qua NAT router đầu tiên trước khi fragment đầu tiên vẫn còn lưu giữ thông tin port .Trong trường hợp này chúng ta sẽ ngăn lạI các fragment không phảI là fragment số 1 đến khi fragment số 1 đã tớI đích để chúng ta biết chúng ta có cần phảI thay đổI thông tin của packet hay không .Xem thêm về “IP fragment” ở các tài liệu khác.Việc thay đổI không chỉ IP mà còn TCP/UDP port thì không quan trọng nhưng chắc chắn hữu ích.
Ví dụ chúng ta sử dụng một virtual server .Giả sử chúng ta muốn tạo một virtual webserver và deamon của webserver thật sự đang chạy trên những máy khác nhau và lắng nghe trên những port khác nhau vì một số lý do.Khi đó nếu chúng ta không ghi nhận lạI destination port trong packet , default là port 80 đến virtual server và thay destination port là port mà real webserver đang lắng nghe vào packet reply thì chúng ta không thể có được những gì chúng ta mong muốn.Khi đó tất cả các real webserver phảI lắng nghe trên cùng một port mà virtual server cung cấp dịch vụ web (default là port 80).Xin nói thêm là một TCP connection thực hiện cơ chế handshaking 3 lần như vậy nếu packet reply không chỉ ra đúng port để kết nốI tớI thì kết nốI sẽ không được thiết lập.
* Định ra giao thức (protocol) cụ thể
NAT không phảI luôn luôn trong suốt như đã nói ,nó chỉ hoàn toàn trong suốt khi mà IP là giao thức nắm giữ thông tin về IP của một packet.Có một số giao thức chúng gửI IP là một phần của dữ liệu truyền đi.Như vậy nếu IP này đã được thay đổI vớI NAT router thì chúng ta sẽ gặp nhiều vấn đề trục trặc khi gửI tớI ngườI nhận .Nó không thể đúng IP đã được truyền đi.Một cách giảI quyết cho vấn đề này là tìm thông tin data truyền đi dựa trên một giao thức nào đó để biết được thông tin về IP đã được thêm vào.Qúa trình này chỉ làm thêm overhead và phức tạp hơn.

*Một số ví dụ cho những Protocol làm việc vớI NAT
FTP
FTP command PORT và response PASV cả 2 đều send một IP và port cho đầu kết nốI bên kia .Cho FTP để làm việc vớI một kết nốI đã bị thay đổI chúng ta phảI thay thế IP trong message . Điều này rất phức tạp vì IP và port được truyền đi dướI dạng mã ASSCII mô tả cho một số thập phân.Tức là mỗI số thập phân đơn lẻ được mô tả là một byte trong packet .Vì lý do này IP thì không có một chiều dài cố định trong một FTP-packet, bây giờ chúng ta thay thế IP hiện tạI bởI một IP khác ít hoặc nhiều số hơn ,packet sẽ lớn hoặc nhỏ đi điều này buộc phảI chỉnh lạI TCP –sequence number vì thế chúng ta phảI giữ một số thông tin về những kết nốI này để điều chỉnh các sequence number thích hợp trong mỗI packet . Đây không chỉ là vấn đề cho giao thức FTP mà còn cho nhiều giao thức khác mà khi thay đổI IP thì nó làm thay đổI chiều dài packet
ICMP
Một số ICMP message phụ thuộc vào loạI message ,nếu thêm vào header của packet có thể gây ra những vấn đề .Nếu packet này được thay đổI thì header này sẽ chứa NAT-Ip chứ không phảI IP của host sẽ nhận message ICMP này .Dựa trên điều này nếu bây giờ chúng ta không thay local IP mà là thêm vào NAT-Ip vào header thì điều này sẽ được giảI quyết.
DNS
Dễ thấy vấn đề ở đây là nếu một name service của một IP bên trong muốn cung cấp ra ngoài NAT-domain.Một cách giảI quyết là sẽ dùng 2 DNS service .Một cho việc giảI đáp cho các IP bên trong và một cái khác giảI đáp cho các IP ngoài mạng .Dĩ nhiên các IP được giảI đáp bởI DNS server thứ 2 không được đưa vào danh sách nhóm IP động cho NAT.NAT router thì hầu hết được đặt trên ranh giới giữa các mạng
phân chia internal DNS và external DNS và được mở rộng sử dụng cho lý do bảo mật
Nếu sử dụng một cách tiếp cận phức tạp hơn là ghi lại tất cả các DNS data đã được relay bởI NAT router chúng ta nên sử dụng một gateway mức ứng dụng hơn là hiện thực một NAT bởI vì DNS thích hợp vớI mức gateway hơn và chúng ta chỉ nên tác động tớI kernel khi thật sự cần thiết(xây dựng NAT)
BOOTP
Giao thức này không có vấn đề gì vớI NAT vì nó không đi ra khỏI ranh giớI của một NAT-domain.
Routing Protocol (RIP,EGP…)
Không cần phảI giảI thích tạI sao routing protocol gặp rất nhiều vấn đề vớI NAT .Có nhiều giao thức tìm đường khác nhau và làm việc vớI nó thì không dễ dàng chút nào
Có 3 cách giảI quyết là:
- Không sử dụng những giao thức này ,chỉ sử dụng static routing. Đây là cách chọn lựa tốt cho phần lớn các kết nốI từ mạng chúng ta ra bên ngoài thông qua NAT router
- Sử dụng một gateway mức ứng dụng
- Ghi lạI thông tin của packet

Thứ Tư, 4 tháng 2, 2009

Ghost Winxp trên nhiều cấu hình !


XHTTWebsite: Trước đây khá lâu, có bài báo bàn về ghost XP cho nhiều máy có cấu hình khác nhau. Bài ấy khá hay do có nhiều bạn đọc quan tâm nhưng lại ít có điều kiện thí nghiệm lại ở nhiều máy khác nhau nên đã có quá ít phản hồi về đúng, sai của bài báo đó.

Nay vấn đề hâm nóng lại do có tác giả đã làm GhostXP mini 250MB, khi restore lại khá tốt không bị xung đột ngay. Nhưng khi cần cài đặt thêm nhiều chương trình khác sẽ không chạy như kết nối modem, các công cụ của Creative.

Tôi bắt đầu tìm đọc lại qua rất nhiền website trên mạng, thử nghiệm lại mới viết lại toàn bộ bài ấy cho thật đúng hơn khi bạn đọc có nhu cầu ( nhất là ở nhà có mở internet công cộng).

Những điểm chưa đúng ở bài cũ trước đây:

A) Điểm đầu tiên chưa thật chính xác ở bài cũ là tác giả khuyên dùng ngay sysprep ở trên bất cứ máy tính đang chạy XP. Trong trường hợp máy này có sẵn card sound, modem, card màn hình đều riêng và nếu làm Sysprep để chạy trên các máy khác sound on board sẽ tạo ra quá nhiều bị rác rến do driver thừa thãi quá nhiều, hay khác nhau như chipset Sis hay Intel .. trong WinXP này dù là không cần đến, đều có thể gây xung đột sau này.

Do vậy, muốn làm Ghost XP chạy cho nhiều máy cấu hình khác nhau, bạn phải chuẩn bị trước: Không phải làm trên bất kỳ máy nào mà tốt là nên làm Sys prep trên máy chưa gắn bất cứ card PCI nào ( sound modem , TV card.. ) . Như thế, khi reboot máy lại nó sẽ cập nhật lại dễ dàng các driver thêm vào ở các Slot PCI như card sound hay card màn hình

B) Điểm sai thứ hai là trong các mục License agreement khi chạy file setupmgr.exe , tác giả lại nói chọn yes , fully automate là sai, phải chọn là not, not fully automate.
Vì như thế khi phần đặt tên name mới để trống, dành riêng cho Sysprep làm việc được . Nếu không, tên này khó thay đồi tuỳ theo máy khác nhau được .

C) Điểm sai thứ ba trong bài ấy mục 3 là nói phải để đĩa CD sẵn có chương trình ghost vào và mới chạy sysprep.exe.

Điều này khiến nhiều người hiểu sai, là có thể chạy sysprep.exe ngay trong DOS được, mà thật ra nó chỉ chay được trong windows mà thôi.

Do vậy phải chỉnh lại bước làm việc thật đúng như sau: Phải chạy file sysprep.exe ngay trong XP rồi sau khi xong, mới để đĩa CD có Ghost như Hiren bootCD 80 có ghost để sao lưu lại ổ C.

Cách làm thật đúng ra file ghost để cho nhiều máy có cấu hình khác nhau :

Do có 3 điểm sai khá quan trọng như đã nêu trên, tôi thấy cần phải lập lại từng bước thật chính xác cho việc làm ra file ghost XP chạy trên nhiều máy có cấu hình khác nhau như sau:

A) Bước 1 : bạn phải chuẩn bị cho bước này thật đúng như sau:

1) Bạn phải chuẩn bị làm ở trên máy đơn giản chỉ xài sound và card màn hình on board. Cài XP fresh với CD installed XPSP2 trên một ổ C format qua NTFS( cần bảo vệ mật nhưng thường không cần thiết ) hay FAT 32 tuỳ ý( nhưng dùng FAT 32 cứu hộ sau này bằng ghost sau này ở môi trường DOS rõ ràng dễ hơn.

2) Sau khi cài xong XP( chưa cài đặt thêm driver nào cả) , vào trong XP đầu tiên mới dùng đĩa cài đặt XP tìm ra thư mục SUPPORT\TOOLS để ồ giải nén toàn bộ file deploy.cab ra thư mục SYSPREP ở C có XP.

3) Trong thư mục Sysprep này, ta sẽ tìm ra file setupmgr.exe chạy nhằm tạo ra tạo ra tập tin giúp cài XP tự động sau này ( unattended ) . ấn next và ở mục Create a new answer file, chúng ta sẽ chọn mục 2 Sysprep setup.

ở product , chọn bản XP professional và ở phần License Agreement screen chọn No, do not fully automate the installation, ấn next..

4) Bây giờ nó yêu cầu bạn điền mọi thông tin cho nó biết. Lưu ý ở các phần:
a) General settings :
- Name and organization, phần name để trống( dành cho Sysprep làm việc sau này),
- Organization: home. Aán next.
- ở Display settings: chọn 3 mục vào Use windows defaults,
- Time zone: nên chọn vào GMT+7 Hanoi Djakarta.
- Product Key: Điền các ô CD key hợp lệ cho XPSP2 .

b) ở Network settings :

- Computer Name chọn nút kiểm Automatically generated computer name
- Administrator: chọn nút kiểm prompt the end user for administrator password
- Networks components chọn vào Typical settings
- Workgroup : chọn vào Workgroup .

c) Advanced settings:

- Telephone: Country Vietnam, các ô khác để trống.
- Regional setting: Chọn vào use the default regional setting
- Các mục còn lại của Advanced settings như install printer, run one, Additional commands và Indentification string, ấn next để bỏ ra

5) Một cửa sổ sau cùng hiện ra, hỏi chúng ta muốn lưu ở đâu: file sysprep.inf ở ổồ C :\SYSPREP và ấn OK.

6) ở cửa sổ setup manager, chọn file và exit. Thoát khỏi chương trình.

B ) Bước 2 : Không phải là để đĩa CD có Ghost vào mà bắt đầu trong XP chạy sysprep.exe trong thư mục C:\SYSPREP

1) ở cứa sổ đầu tiên System Preparation Tool, chọn vào nút kiểm Minisetup, Don?t regenerate security indentifier và Detect non plug and play . Trong mục shutdown mode chọn Reboot và ấn vào bên phải nút Reseal .

b) Sysprep bắt đầu chuẩn bị mọi thứ cho việc chạy minisetup và cập nhật driver sau này. Reboot máy lại.

3) Bước 3: Bây giờ mới chọn first boot device CDROM và để đĩa CD có ghost như Hiren 80 vào mà bắt đầu làm file ghost để chạy cho nhiều máy. Khi để vào máy khác bằng ghost này nhờ có Syspsprep.inf và cấu hình chạy minisetup sẳn nó sẽ tạo lập XP theo cấu hình mới theo như mong muốn. Có điều bạn phải thủ sẳn đĩa cài đặt WìnXPSP vì chắc chắn nó sẽ hỏi đĩa này ở đâu để cập nhật lại mọi driver của phần cứng.

IV) Kết luận: Dù là chúng ta có thể làm file ghost XP cho nhiều máy cấu hình khác nhau nhưng cũng không thể quá khác nhau như dùng mainboard PentiumIII và Pentium IV nhằm tránh xung đột vẫn có .

Các bạn cũng không nên thu nhỏ XP bằng Nlite như thế sau khi restore lại bằng Ghost sẽ không cài được nhiều chương trình khác nhau trong máy mới.

Làm sao Ghost nguyên XP Pro và các ứng dụng khác có kích thước nhỏ nhất?

XHTTOnline: Khi bạn cài Win XP pro và các phần mềm kèm theo nếu không có chuẩn bị và sắp xếp trước, đến lúc cần ghost backup lại để dành gặp có gì trục trặc phải restore lại, kích thước sẽ quá lớn :

Chỉ có ghost vào đĩa CD \DVD là an toàn nhất nhưng làm sao thật gọn nhẹ, chỉ vào đúng khoảng 2 đĩa CD đây? Nếu phải WinMe, Win98 là chuyện quá dễ : file gho ME, 98 trong 1 đĩa CD còn dư hàng 200MB.

Nhưng lại không phải đơn giản, nhất là khi bạn chọn dùng XP pro với quá nhiều chức năng kèm nối mạng, thì khó lòng vừa đủ 2 đĩa CD theo mong muốn.
Tuy vậy, nếu bạn biết sắp xếp thật khéo, Ghost XP backup vẫn được tối đa chỉ là 2 đĩa CD thôi. Với bản XP home bao giờ cũng gọn nhẹ và cũng dễ làm hơn nếu bạn lưu ý các giai đoạn phải làm như sau đây:

1) Đầu tiên bạn phải di chuyển My Documents tới chỗ khác, không bao giờ để trong ổ C :

Ngoài chuyện chiếm quá nhiều đất trong ổ C, còn bị mất tư liệu quí mới vừa save (lưu lại) xong; một khi bạn quên đi lúc ghost restore lại cái cũ: Do đó ghost cũ sẽ đè lên các file doc bạn mới vừa làm gây mất dữ liệu.

Bạn nên click nút phải vào My Documents, chọn move (di chuyển) đến nơi khác như ở ổ E, F.. tuỳ ý mình.

2) Di chuyển sớm các thư mục lưu trữ mail (thư) của Microsoft Outlook hoặc Outlook Express để khỏi bị mất thư mới một khi quên làm restore ghost cái cũ lại.
Bạn cứ vào trong Microsoft Outlook Tools/Options/ Autoarchive chọn Browse để di chuyển sang nơi khác E, F…

Trong Outlook Express, phải vào Tools/Options/ Maintenance/ Store Folders cũng để di chuyển thư mục thư sang nơi khác.

3) Bạn chỉ nên cài ở ổ C riêng 2 phần mềm là Office 2003 và Norton Antivirus 2007 thôi dù có chiếm khá lớn.

Riêng các softwares khổng lỗ khác, dùng ghi đĩa như Easy CD/DVD platinum 90 , WinonCD 6.03, Nero 7951 .. bạn nên để cài ở ổ khác như E, F chứ không nên để chung trong C: chúng sẽ chiếm quá nhiều chỗ.

Webshot30 chứa nhiều thư mục có file hình ảnh quá lớn, bạn cũng nên cài nó ngoài ổ C .

Một vài chương trình: Teleport 147, Super cleaner37 , Registry Cleaner43 ..bạn có thể dùng một shortcut từ trong Me, 2000, vẫn xài được tốt trong WinXP .

4) Muốn cho WinXP thật gọn nhẹ, bắt buộc bạn phải biết những file, thư mục nào không cần thiết trong Windows, nên xoá bớt để cho đĩa cứng rộng thêm.

Bài này sẽ điểm qua một số file, thư mục rõ ràng là vô bổ, bạn có thể xoá đi bớt mà không sao cả. Các file lưu tạm như temporary download, bak.. bạn có thể dùng Disk cleanup của Windows hoặc những chương trình xoá nhanh và tiện lợi cho các file tạm là Emptemp 2.84, Super Cleaner 3.7, Windows Washer 6.05 (xoá nhanh và tiện nhất).

5) WinXP giống như WinMe đều có một tiện ích System restore phục hồi hệ thống bạn khi gặp trục trặc. Có bạn cho là cần, tôi thì ngược lại: nên bỏ ( disable) System restore cũng chả sao cả. Bạn đỡ tốn cả trên hơn cả trăm MB nhằm để dành cho bản ghost XP vào CD thật gọn nhẹ.

Hai tiện ích khác cứu hộ khá tốt, ngoài Ghost mỗi khi máy gặp quờ quạng, đứng máy, chỉ thấy có WinRescue 10834 ( có 5 bản cho từng Windows ) và phần System saver nằm trong System Suite 7.1 là quá đủ. Chỉ cần khoảng 5 MB, là Winrescue sao lưu registry của mọi windows giúp bạn phục hồi registry cũ rất hiệu quả.


Tôi vọc máy cũng quá nhiều nên gặp tai biến không ít, phải nói là đủ loại. Một thời tôi cũng đã tin vào Last good configuration của Windows 2000 và Xp ( nhấn F8 khi khởi động để phục hồi ). Sau mới thấy những chuyện đơn giản, nó còn làm chả gì được như lúc khởi động: đột nhiên biến đi chức năng auto protect của Norton Antivirus 2007, modem tự nhiên không kết nối được.

Với WinRescue và System saver của System Suite 71 đấy chỉ là chuyện nhỏ, trong tích tắc một khi restore, boot máy lại là autoprotect, modem trở về tốt lại ngay.
Hơn nữa, bạn có Ghost 11.01 đã sao lưu toàn bộ windows, khi cần phục hồi lại cực nhanh ( 4 phút thay vì 7 phút trước đây ), việc giữ lại System restore để làm gì phí phạm: chỉ tổ chật thêm ổ cứng của bạn ?

6 ) Bạn nên disable (vô hiệu hóa) luôn phần Hibernate trong WinXp cũng chiếm tương tự cả trăm MB. Vào Display Properties, Screensaver, Power, bỏ chọn nút Enable Hibernate (giúp khởi dộng lại khá nhanh nhưng lại chiếm quá nhiều đất trong ổ cứng).
.
7) Bạn có thể di chuyển thư mục driver cache trong thư mục Windows (Xp ) ra nơi khác như ổ là E, F và cũng phải sửa lại đường dẫn trong registry Windows (HKEY_LOCAL_MACHINE\ Softwares\ Microsoft\Windows\ Current Version\ Setup) để nó biết nơi tìm đến khi cần đến.
8) Đặc biệt 2 thư mục nằm trong System 32 của Win Xp, bạn có thể xoá chúng mà không sao cả: chiếm gần 300-400MB là dllcache và Reinstall backup.

Trong bản XP home, bạn có thể có thể gặp báo lỗi khi xoá xong thư mục dllcache( hidden ) nhưng nó chép một vài file lại không đầy 10MB. Nếu bạn vẫn còn sợ trục trặc sau này, có thể chép vào 1 nơi khác và nén lại để dành đó khi cần thiết.

Tôi đã thừ xoá dllcache, đỡ hơn 300MB lúc đầu cũng hơi ngán nhưng sau không thấy gì. Hai bản WinXp vẫn chạy tốt thôi suốt cả 2 tháng nay.

9) Một vài thư mục nếu bạn không thích, cũng nên xoá bớt như Tour guide của WinMe, WinXp nằm trong thư mục Windows\help\tours, cũng đỡ thêm vài chục MB .

10) Bạn cũng có thể xoá không chính quy từ Me, 2000, các thư mục không thích nằm trong WinXp như Net meeting, Movie maker, Windows messenger.. Trò chơi Pinball ( Program files\Windows NT\Pinball ), một số file Media quá nhiều trong thư mục Windows\Media.

11) Bạn nên xoá những gì có trong thư mục Prefetch của Windows XP hàng tháng, đỡ được cả chục MB nữa và XP cũng tạo ra cái khác lại sau đó.
Xoá contents thư mục này tháng một lần cũng không sao cả để tránh các link trong windows quá nhiều sẽ không còn đúng nữa .

12) Khi xài Xp cần vào System Properties\ Advanced\Start up and Recovery, đến phần Write Debbugging Information, bạn nên chọn là none. Nếu không làm vậy, khi máy gặp trục trặc, WinXp sẽ lưu một file memory. dmp đôi lúc đến cả trăm MB vô bổ trong Windows mà chính bạn cũng không ngờ đến.

13) Một khi cài Windows Media player 10, 11 vào Windows, bạn nên xoá phần nguyên install trong thư mục install có lưu giữ để dành file cài đặt chiếm đến 8MB . Bạn sẽ còn độ hơn 3MB cho cài Windows Media Player, t hay vì hơn 10MB nếu bạn không biết xoá bớt.

Riêng Win 2000, bạn cũng nên vào All User / Application data / Dr Watson/ xoá file hay tạo ra không dùng là user.dmp có khi lên đến vài chục hay cả trăm MB là chuyện thường khiến kích thước Win2000 phình ra phi lý khi cần sao lưu.

14) Khi bạn cài đặt bất cứ Driver update Nvidia nào mới , bạn nên nhớ bao giờ trong Windows XP sẽ phình ra đến thêm 40MB . Đó là các thư mục Last Good temp và System32 / Reinstalbackup. Bạn có thể xoá thư mục ấy với điều kiện phải ghost sao lưu XP trtước, để đỡ được trong ổ cứng khoảng 40MB

Phần cứng máy tính những kiến thức chưa biết

Máy tính chạy không ổn, chậm hay bị treo, Nói chung là rất khó chịu !

1. Do phần mềm: - Đã có rất nhiều bài viết trên các báo, forum… hướng dẫn cách “tăng tốc máy” như: chống phân mãnh, dọn rác, bỏ cài đặt những chương trình không hoặc chưa cần thiết, gở bỏ bớt các chương trình luôn chạy khi khởi động… chung quy các thao tác vừa nêu chỉ trị được bệnh chạy...

March 31st, 2007 đăng bởi lqv77

Hướng dẫn sử dụng card test Mainboard

Hiện nay, trên thị trường có bán loại card test mainboard có nguồn gốc xuất xứ từ Trung Quốc, sách hướng dẫn toàn tiếng Hoa nên có nhiều bạn thắc mắc về cách sử dụng. Qua bài viết này rất mong các bạn có được một vài kiến thức cơ bản để sử dụng. Về cấu tạo: Card test main thường có 02 (hoặc 04) LED 7 đoạn...

March 29th, 2007 đăng bởi lqv77

Kinh nghiệm chọn mua linh kiện vi tính củ

Hiện nay, giá cả linh kiện vi tính đã hạ rất nhiều so với các năm trước. Với số tiền hạn chế 4-5 triệu đồng, bạn cũng có thể “tậu” cho mình một dàn máy với linh kiện mới 100% bảo hành từ 1-3 năm. Dĩ nhiên, nếu bạn có ít hơn số tiền trên, hoặc máy bạn đã mua từ lâu và muốn “nâng cấp” vài món nhưng...

December 24th, 2006 đăng bởi lqv77

Biểu mẫu liên hệ

Tên

Email *

Thông báo *