Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

VPN TRONG MẠNG MPLS (VPN-based MPLS)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • VPN TRONG MẠNG MPLS (VPN-based MPLS)

    Tác giả:

    + Nguyễn Thị Băng Tâm

    3.1. Giới thiệu giao thức BGP-4

    Sau đây ta sẽ sơ lược về BGP và phân tích lý do tại sao giao thức này lại được dùng để vận chuyển các route VPN trong mạng MPLS.
    Internet là tập hợp một số lượng lớn các hệ thống tự trị AS (có thể nằm ở nhiều vị trí địa lý cách xa nhau) bao gồm nhiều router kết nối với nhau, các router này được quản lý bởi nhà quản trị. Do đó cần phải có một giao thức định tuyến dùng để trao đổi thông tin giữa các AS mà vẫn đảm bảo được đường đi không có loop trong mạng. BGP ra đời để thực hiện nhiệm vụ đó. Phiên bản hiện tại của BGP là BGP-4, BGP-4 được giới thiệu vào năm 1995 và được định nghĩa trong RFC 1772.
    Cập nhật định tuyến là đặc điểm quan trong khiến BPG-4 thích hợp trong môi trường kết nối nhiều mạng cực kì lớn. Nó không quan tâm đến việc phải hiểu đầy đủ chi tiết đến từng subnet trong một tổ chức, thay vì đó, nó thực hiện thu gọn các route đó lại. Cập nhật định tuyến mang một danh sách các AS và địa chỉ prefix được thu gọn lại, cũng như một vài thông tin về chính sách định tuyến. Không như các giao thức IGP sử dụng metric để thực hiện các quyết định định tuyến, thì BGP sử dụng các quy tắc hay các chính sách định tuyến để thực hiện quyết định này. Do đó, đối với các giao thức IGP, quyết định định tuyến chỉ có thể áp đặt lên với route nào đó, còn BGP thì có thể áp đặt lên cả đường đi (path).

    3.1.1. Đặc điểm của BGP-4

    o BGP-4 là giao thức path vector: BGP mang các đặc điểm của giao thức distance vector trong đó mỗi node BGP phụ thuộc vào láng giềng downstream để phổ biến các route trong bảng định tuyến của chúng, tức là node đó phải tự tính toán cho các route và chuyển kết quả đó đến láng giềng upstream. Tuy nhiên, các giao thức định tuyến distance vector xác định khoảng cách bằng một đại lượng cụ thể, như hop count dành cho RIP hay tổng độ trễ trên các interface với băng thông nhỏ nhất cho IGRP và EIGRP. BGP lại sử dụng khái niệm AS để vận chuyển gói tin đến đích, tức là sử dụng đường đi từ AS này đến AS kia để vận chuyển gói tin, do đó BGP được gọi là giao thức định tuyến path vector để phân biệt với các giao thức distance vector.
    o Việc trao đổi định tuyến xảy ra theo hai pha: bulk và incremental. Bulk có nghĩa là cập nhật định tuyến đầy đủ, pha này được thực hiện ngay sau khi phiên BGP được thiết lập, hai BGP ngang cấp sẽ trao đổi toàn bộ bảng định tuyến cho nhau. Incremental nghĩa là các cập nhật được gửi đi khi có một sự thay đổi nào đó trong mạng (chẳng hạn như một route mới được thêm vào hay một route nào đó không còn hợp lệ nữa), cập nhật này chỉ mang thông tin về sự thay đổi đó.
    o Tạo và duy trì kết nối giữa các router ngang cấp, sử dụng TCP port 179.
    o Kết nối được duy trì bằng cách trao đổi tuần hoàn bản tin keepalive giữa các router BGP ngang cấp.
    o BGP-4 sử dụng khái niệm attribute (thuộc tính) để lựa chọn đường đi cho gói tin.
    o Khả năng sử dụng địa chỉ phân tầng và điều khiển dòng lưu lượng làm tăng khả năng mở rộng mạng.
    o Mang bảng định tuyến riêng, bên cạnh bảng định tuyến IP.
    o Có khả năng thực hiện định tuyến dựa trên chính sách được thiết lập và nó được thực hiện dựa trên chặng-chặng (hop-by-hop), có nghĩa là không có router nào có thể gửi lưu lượng đi nếu router kế tiếp không cho phép thực hiện điều đó.

    3.1.2. Các loại bản tin BGP

    Ta thấy BGP-4 là giao thức kết nối có hướng (connection-oriented). Do đó trước khi thiết lập kết nối với BGP ngang cấp, hai láng giềng phải thực hiện bắt tay 3 bước theo TCP, và mở kết nối TCP đến port 179. Tất cả bản tin BGP được unicast đến láng giềng qua kết nối TCP. Mỗi loại bản tin khác nhau đóng vai trò quan trọng trong hoạt động của BGP.
    Mỗi loại bản tin bao gồm có mào đầu bản tin trong đó. Mào đầu bản tin có 3 trường. Đó là trường Marker 16 byte, trường Length 2 byte, và trường Type 1 byte.
    Trường Marker được sử dụng hoặc là để xác thực các bản tin BGP ngõ vào hoặc để phát hiện việc mất đồng bộ của hai BGP ngang cấp.
    Trường Length cho biết tổng chiều dài của bản tin BGP trong đó có cả mào đầu. Bản tin BGP nhỏ nhất là 19 byte (16 + 2 + 1) và bản tin lớn nhất có thể là 4096 byte.
    Trường Type có thể có 4 giá trị (từ 1 đến 4). Mỗi giá trị trong trường này tương ứng với một trong 4 bản tin BGP: bản tin Open, bản tin Keepalive, bản tin Update, và bản tin Notification.

    Vai trò của các bản tin cụ thể như sau:

    • Bản tin Open (mang code 1): sau khi phiên TCP được thiết lập, cả hai láng giềng gửi các bản tin Open. Mỗi láng giềng sử dụng bản tin này để định nghĩa bản thân nó và để chỉ ra các tham số hoạt động BGP của nó.
    • Bản tin Update (mang code 2) : Bản tin này quảng bá các route khả thi, các route không khả thi hoặc là cả hai. Bản tin này bao gồm các trường quan trọng sau :

    1. NLRI: dùng để quảng bá prefix và chiều dài prefix, có chiều dài thay đổi. Được viết dưới dạng <length, prefix>. Length chỉ ra chiều dài của prefix, Prefix là địa chỉ IP của NLRI. Giá trị Length bằng 0 nghĩa là Prefix đó đúng với tất cả các địa chỉ IP.
    2. Path Attribute: có giá trị thay đổi, chỉ ra các đặc điểm của NLRI được quảng bá. Nó cung cấp nhiều thông tin cho phép BGP lựa chọn đường đi ngắn nhất, phát hiện loop và quyết định chính sách định tuyến.

    Chú ý rằng, mặc dù có thể có nhiều prefixes trong trường NLRI, nhưng mỗi bản tin Update chỉ có thể có một route BGP trong đó mà thôi, vì các path attribute chỉ mô tả một đường đi, nhưng đường đi đó có thể dẫn đến nhiều đích khác nhau (khác với IGP).

    • Bản tin Keepalive : khi một router chấp nhận các tham số trong bản tin Open mà láng giềng gửi đến, nó đáp ứng bằng bản tin Keepalive.
    • Bản tin Notification: được gửi đi bất kì khi nào phát hiện được lỗi và luôn luôn đóng kết nối BGP

    3.1.3. Thuộc tính đường đi (path attribute)

    Thuộc tính đường đi là một đặc điểm của route BGP được quảng bá. Thuộc tính đó được mang trong các cập nhật định tuyến mà một router BGP sử dụng nó để chọn đường đi tốt nhất cho gói tin đến đích. Ngoài ra thuộc tính đường đi còn cho phép BGP thiết lập các chính sách định tuyến.
    Mỗi thuộc tính đường đi sẽ thuộc một trong 4 loại sau:

    • Well-known mandatory
    • Well-known discretionary
    • Optional transitive
    • Optional nontransitive

    Well-known có nghĩa là thuộc tính đường đi đó phải được tất cả các thao tác BGP nhận ra. Optional (lựa chọn) có nghĩa là thao tác BGP không cần thiết phải hỗ trợ thuộc tính đó.
    Thuộc tính well-known có thể là mandatory (duy trì), nghĩa là các thuộc tính đó phải có mặt trong tất cả các bản tin cập nhật của BGP. Hoặc là discretionary, nghĩa là chúng có thể có hoặc không cần phải được gửi đi trong bản tin Update.
    Nếu một thuộc tính lựa chọn (optional attribute) là transitive thì tiến trình BGP sẽ chấp nhận đường đi mà có thuộc tính đó, ngay cả nếu nó không hỗ trợ.
    Nếu một thuộc tính lựa chọn là nontransitive, thì tiến trình BGP không nhận ra được thuộc tính đó sẽ loại bỏ cập nhật và không quảng bá đường đi đến BGP ngang cấp khác.

    Các thuộc tính được sử dụng trong tiến trình quyết định của BGP bao gồm:

    • Thuộc tính Next_hop

    Next_hop là thuộc tính well-known mandatory, mang code 3. Thuộc tính này cho biết địa chỉ IP của router kế tiếp trên đường đi được quảng bá đến đích. Địa chỉ này không nhất thiết là địa chỉ IP của láng giềng. Nó phải tuân theo các quy tắc sau:
    o Nếu router quảng bá và router nhận thuộc về AS khác nhau (là phiên EBGP), thì next_hop sẽ là địa chỉ IP của interface của router quảng bá.
    o Nếu router quảng bá và router nhận nằm trong cùng một AS (internal peer), tức là route được khởi tạo trong AS. Và NLRI của cập nhật thuộc về cùng AS, thì next_hop là địa chỉ IP của láng giềng đã quảng bá route.
    o Nếu router quảng bá và router nhận là internal peer, và NLRI của cập nhật lại thuộc về AS khác, thì next_hop là địa chỉ IP của external peer, nơi đã quảng bá route.

    Đối với trường hợp 3 ta xét ví dụ sau đây: Xem hình 3.1

    Trong hình 3.1 ta thấy rằng mạng 192.168.5.0 là mạng có chứa next-hop, nhưng địa chỉ next-hop không phải nằm trong AS 509. Do đó các router nằm trong AS 509 (trừ router biên ASBR) sẽ không biết về mạng này. Và nếu mạng đó không có trong bảng định tuyến, thì địa chỉ next-hop cho mạng 207.135.64.0/19 là unreachable, và gói tin cho đích đó sẽ bị drop. Mặc dù route đến mạng 207.135.64.0/19 được cập nhật vào trong bảng BGP của router ngang cấp trong một AS (internal peer) nhưng nó lại không được cập nhật trong bảng định tuyến IGP vì địa chỉ next-hop không hợp lệ đối với router đó. Giải pháp là cấu hình trên router biên ASBR thiết lập địa chỉ của nó chính là next-hop bằng câu lệnh next-hop-self. Lúc đó router ngang cấp IBGP với router biên sẽ hiểu về mạng được router external quảng bá đến.



    • Thuộc tính AS_path

    AS_Path là thuộc tính well-known mandatory, mang code 2. AS_Path là một chuỗi thứ tự AS_number có route đi đến đích. AS khởi tạo route sẽ thêm AS-number của nó vào route khi gửi route đến router ngang cấp EBGP (external router). Sau đó, mỗi AS nhận route và chuyển nó đến BGP ngang cấp khác sẽ thêm vào trước (prepend) danh sách đó AS-number của nó. Danh sách cuối cùng có tất cả AS mà route đã đi qua trong đó AS nơi mà route xuất phát sẽ ở cuối cùng của danh sách. Loại AS_Path này được gọi là AS Sequence vì tất cả AS trong danh sách được sắp xếp theo một thứ tự nhất định.
    BGP sử dụng thuộc tính AS_Path trong các cập nhật định tuyến để đảm bảo chống loop trong Internet. Vì khi route được chuyển đi giữa các BGP ngang cấp, nếu đi qua một AS khác, nó sẽ thêm AS đó vào danh sách, do đó khi một AS nhận được một route, nó thấy có AS_number của nó trong thuộc tính AS_Path, nó sẽ loại bỏ route đó. Các BGP speaker không sử dụng thuộc tính AS_Path nếu chúng cùng thuộc về một AS.

    Ví dụ: Xem hình 3.2

    Trong hình 3.2 là trường hợp ví dụ về thuộc tính AS_Path đối với route 172.1610.0/24. Route này khởi tạo từ AS1 và chuyển đến AS2, AS3, AS4 và trở về lại AS1. Khi route đó đi qua mỗi AS, nó sẽ thêm AS_number của AS đó vào trong danh sách, AS 1 sẽ ở cuối cùng của danh sách. Do đó khi AS 1 nhận được route, nó thấy có số 1 xuất hiện trong danh sách, và loại bỏ route.

    Email : vnpro@vnpro.org
    ---------------------------------------------------------------------------------------------------------------
    Trung Tâm Tin Học VnPro
    149/1D Ung Văn Khiêm P25 Q.Bình thạnh TPHCM
    Tel : (08) 35124257 (5 lines)
    Fax: (08) 35124314

    Home page: http://www.vnpro.vn
    Support Forum: http://www.vnpro.org
    - Chuyên đào tạo quản trị mạng và hạ tầng Internet
    - Phát hành sách chuyên môn
    - Tư vấn và tuyển dụng nhân sự IT
    - Tư vấn thiết kế và hỗ trợ kỹ thuật hệ thống mạng

    Network channel: http://www.dancisco.com
    Blog: http://www.vnpro.org/blog

  • #2
    Thông tin AS_path là một trong những thuộc tính mà BGP kiểm tra để xác định route tốt nhất đến đích. Route nào có đường đi ngắn hơn sẽ được ưu tiên hơn. Nếu hai route có chiều dài AS_path như nhau thì sẽ sử dụng thêm nhiều thuộc tính khác (phần này nằm trong tiến trình quyết định của BGP).

    • Thuộc tính Community

    Community là thuộc tính optional transitive, mang code 8, được thiết kế để áp đặt các chính sách. Thuộc tính này ban đầu là do Cisco tạo ra, nhưng sau đó được chuẩn hóa trong RFC 1997.
    Thuộc tính Community dùng để nhận diện đích là thành viên của một cộng đồng có nhiều địa chỉ đích trong đó. Cộng đồng cùng chia sẽ một hay nhiều tính chất chung. Ví dụ, ISP có thể đăng kí thuộc tính Community nào đó đến tất cả các route của khách hàng. Sau đó ISP có thể thiết lập các thuộc tính khác dựa trên giá trị Community này cho toàn bộ các route thay vì phải làm việc đó trên từng route đơn lẻ.
    Thuộc tính Community là giá trị gồm 4 octet. Trong RFC chỉ ra rằng hai octet đầu tiên là Autonomous system, và hai octet cuối cùng là bộ nhận diện (Identifier) được định nghĩa bởi nhà quản trị. Nó có format là AA : NN.
    Ví dụ một route từ AS 625 có Community Identifier là 70. Vậy giá trị thuộc tính Community là 625:70, nếu được biểu diễn bằng số hexa là 0x02710046, với 625 = 0x0271 và 70 = 0x0046. Trong RFC sử dụng biểu diễn thuộc tính này bằng số Hexa nhưng trong các Cisco router lại sử dụng số thập phân.

    Giá trị community nằm trong dãy từ 0 (0x00000000) đến 65535 (0x0000FFFF) và từ 42490176 (0xFFFF0000) đến 429697295 (0xFFFFFFFF) được dành trước. Có nhiều Community được định nghĩa :

    o Internet: Internet community không có giá trị, mặc định tất cả các route thuộc về community này và sẽ được quảng bá tự do.
    o No_export (4294967041, hoặc 0xFFFFFF01): các route mang giá trị này không được quảng bá đến EBGP ngang cấp, hoặc nếu có Confederation được cấu hình thì các route không thể được quảng bá ra ngoài Confederation đó.
    o No-advertise (4294967042, hoặc 0xFFFFFF02): các route mang giá trị no-advertise không được quảng bá cho BGP ngang cấp nào hết (EBGP cũng như IBGP).
    o No_export_subconfed (4294967043, hoặc 0xFFFFFF03): Các route mang giá trị này không thể được quảng bá đến EBGP ngang cấp, kể cả các router trong AS khác thuộc về cùng một Confederation.

    • Thuộc tính Atomic Aggregate

    Là một thuôc tính well-known discretionary. Nó được thiết lập giá trị hoặc là True hoặc là False. Nếu là True, thì thuộc tính này sẽ cảnh báo cho router BGP biết rằng có nhiều đích đã được nhóm lại trong một cập nhật duy nhất và do đó việc mất thông tin đã xảy ra. Tức là khi router BGP gửi một route đã được nhóm lại đến cho router láng giềng của nó, nó phải kèm theo thuộc tính Atomic Aggregate vào route đó. Bất kì router BGP downstream nào nhận route với attribute Atomic Aggregate không thể có được chi tiết thông tin NLRI về route (các route trước khi được tóm gọn), và khi quảng bá route đã được tóm gọn đến router ngang cấp khác, nó cũng gửi kèm theo attribute Atomic Aggregate.

    • Thuộc tính Origin

    Origin là thuộc tính well-known mandatory. Nó chỉ ra nguồn của cập nhật định tuyến. BGP cho phép 3 loại origin sau:
    o IGP được khởi tạo nội bộ trong AS
    o EGP được học từ router BGP khác AS
    o Incomplete học đựơc từ một số cách khác như redistribution…

    BGP xem xét các thuộc tính Origin trong tiến trình quyết định để xem route nào tối ưu hơn route nào. BGP chọn loại origin thấp nhất. IGP thấp hơn EGP, EGP thấp hơn Incomplete.

    • Thuộc tính Local_Preference

    Là thuôc tính well-known discretionary. Local-Preference là thuộc tính dùng để so sánh các route đến cùng một đích route nào có độ ưu tiên cao hơn. Nếu route có thuộc tính Local_Preference cao hơn sẽ được chọn làm đường đi tối ưu. Cũng như tên thuộc tính này, nó chỉ chuyển đổi nội bộ giữa các router IBGP ngang cấp, không được quảng bá sang router EBGP ngang cấp khác.

    • Thuộc tính Weight

    Tương tự như Local_Preference, nó sẽ ưu tiên sử dụng route có giá trị Weight cao hơn. Nhưng khác với Local_Preference là thuộc tính Weight chỉ có ý nghĩa nội bộ trong router mà thôi, nó không trao đổi thuộc tính này với router khác. Thuộc tính Weight ảnh hưởng đến các route đến từ nhiều nhà cung cấp khác nhau tới một router, một router có nhiều kết nối tới hai hay nhiều nhà cung cấp.

    • Thuộc tính MED (Multiple Exit Discriminatior)

    MED là thuộc tính optional nontransitive. MED chỉ cho láng giềng EBGP về đường đi nào tối ưu hơn để vào trong một AS có nhiều điểm nào. MED có giá trị càng thấp càng được ưu tiên, do đó nó được xem là metric của BGP.
    Không giống như Local_Preference, MED được trao đổi giữa các AS, nhưng MED vào trong một AS sẽ không đi ra khỏi AS này. Khi có một cập nhật đến một AS với giá trị MED được thiết lập, giá trị này được sử dụng để quyết định chỉ trong nội bộ AS đó thôi. Khi BGP chuyển cập nhật cho một AS khác thì giá trị của MED được thiết lập về 0.
    Khi một route được khởi tạo bởi một AS, thì giá trị của MED thông thường là tuỳ theo metric IGP của route. Điều này trở nên hữu dụng khi một khách hàng có nhiều kết nối đến cùng một nhà cung cấp. Metric IGP chỉ ra chi phí đến một mạng để xác định điểm truyền.

    3.1.4. Tiến trình quyết định trong BGP

    BGP dựa trên giá trị của các thuộc tính để quyết định chọn route. Khi gặp nhiều route đến cùng một đích, thì BGP sẽ chọn route tốt nhất để truyền tải đến đích. Quá trình chọn route như sau:

    • Next-hop không đến được, route sẽ bị loại bỏ.

    • Router BGP sẽ ưu tiên đường đi với thuộc tính Weight lớn nhất.
    • Nếu Weight bằng nhau, router BGP sẽ ưu tiên route với thuộc tính Local_preference lớn nhất.
    • Nếu route có cùng giá trị Local_preference, router BGP sẽ ưu tiên route với AS_Path ngắn nhất.
    • Nếu chiều dài AS_path là như nhau, router BGP sẽ ưu tiên route có thuộc tính Origin nhỏ nhất.
    • Nếu loại origin là như nhau, router BGP sẽ ưu tiên route với MED thấp nhất.
    • Nếu route có cùng giá trị MED, router BGP sẽ ưu tiên route EBGP trước, sau đó là AS khác trong cùng một Confederation, và cuối cùng là IBGP.
    • Nếu tất cả các trường hợp trên là như nhau thì router BGP sẽ ưu tiên route đến từ IGP láng giềng gần nhất.
    • Nếu đường đi trong một AS là như nhau, ID của router BGP sẽ được xem xét. Route đến từ router có ID thấp nhất sẽ được chọn.

    3.2. VPN trong mạng MPLS

    MPLS VPN sử dụng mô hình VPN ngang cấp nhưng có kết hợp các đặc điểm tốt nhất của mô hình overlay VPN (hỗ trợ giải quyết vấn đề trùng không gian địa chỉ khách hàng) và các đặc điểm tốt nhất của mô hình VPN ngang cấp.
    Router biên của mạng nhà cung cấp tham gia vào định tuyến khách hàng, đảm bảo định tuyến tối ưu giữa các site khách hàng. Router sẽ mang các route riêng cho mỗi khách hàng, tạo ra sự cách ly hoàn hảo giữa họ.

    3.2.1. Khái niệm VPN trong mạng MPLS

    VPN MPLS đưa ra khái niệm site. Một VPN là tập hợp gồm nhiều site chia sẽ cùng thông tin định tuyến chung. Có nghĩa là một site thuộc về nhiều hơn một VPN nếu nó đó nắm giữ các route từ mỗi VPN riêng. Điều này cung cấp khả năng xây dựng các VPN intranet và extranet cũng như các mô hình mạng khác. Nếu các site của một VPN thuộc về một doanh nghiệp (Enterprise), VPN đó được gọi là intranet VPN. Nếu các site của VPN thuộc về những doanh nghiệp khác nhau thì các site đó gọi là extranet VPN. Do đó, một VPN trong khối kiến trúc MPLS/VPN có thể được xem như là một nhóm người dùng gần nhau (closed user group - CUG).

    Ưu điểm của mạng MPLS/VPN:

    • Định tuyến tối ưu giữa các site khách hàng.
    • Cung cấp dễ dàng.
    • Cho phép trùng địa chỉ giữa các khách hàng bằng cách sử dụng route distinguisher.
    • Với việc sử dụng route target cho phép xây dựng các mô hình VPN phức tạp.

    3.2.2. Các thành phần trong mạng MPLS VPN

    Có nhiều thành phần mạng được định nghĩa trong cấu trúc MPLS VPN. Các thành phần này thực hiện những chức năng khác nhau nhưng kết hợp với nhau để cấu thành mạng MPLS VPN. Bao gồm:
    • Provider network (P-network): mạng nhà cung cấp, mạng lõi MPLS/IP được quản trị bởi nhà cung cấp dịch vụ.
    • Provider router (P-router): là router chạy trong mạng lõi của nhà cung cấp, cung cấp việc vận chuyển dọc mạng backbone và không mang các route của khách hàng.
    • Provider edge router (PE-router): Router biên của mạng backbone, nó cung cấp phân phối các route của khách hàng và thực hiện đáp ứng các dịch vụ cho khách hàng từ phía nhà cung cấp.
    • Autonomous system boundary router (ASBR-router) : router biên trong một AS nào đó, nó thực hiện vai trò kết nối với một AS khác. AS này có thể có cùng hoặc khác nhà điều hành.
    • Customer network (C-network): đây là phần được khách hàng điều khiển.
    • Customer edge router (CE-router): router khách hàng đóng vai trò như là gateway giữa mạng C và mạng P. Router CE được quản trị bởi khách hàng hoặc có thể được nhà cung cấp dịch vụ quản lý. Các phần liên tục của mạng C được gọi là site và được nối với mạng P thông qua router CE.

    Hình dưới đây là mô hình cơ bản mạng MPLS VPN:



    Hình 3.3: Mô hình mạng MPLS VPN cơ bản
    Email : vnpro@vnpro.org
    ---------------------------------------------------------------------------------------------------------------
    Trung Tâm Tin Học VnPro
    149/1D Ung Văn Khiêm P25 Q.Bình thạnh TPHCM
    Tel : (08) 35124257 (5 lines)
    Fax: (08) 35124314

    Home page: http://www.vnpro.vn
    Support Forum: http://www.vnpro.org
    - Chuyên đào tạo quản trị mạng và hạ tầng Internet
    - Phát hành sách chuyên môn
    - Tư vấn và tuyển dụng nhân sự IT
    - Tư vấn thiết kế và hỗ trợ kỹ thuật hệ thống mạng

    Network channel: http://www.dancisco.com
    Blog: http://www.vnpro.org/blog

    Comment


    • #3
      admin mà sao post toàn không có hình vậy ?

      Comment


      • #4
        Viet Professionals Co. Ltd. VnPro ®


        Comment

        Working...
        X