Nghiên cứu bảng địa chỉ mạng (MAC table) cho thiết kế thiết bị chuyển mạch lớp 2 trên nền tảng FPGA

8 15 0
Nghiên cứu bảng địa chỉ mạng (MAC table) cho thiết kế thiết bị chuyển mạch lớp 2 trên nền tảng FPGA

Đang tải... (xem toàn văn)

Thông tin tài liệu

Trong bài viết này tập trung nghiên cứu giới thiệu bảng địa chỉ mạng (MAC table), phương pháp xây dựng bảng địa chỉ mạng dựa trên bảng băm, phương pháp giảm xung đột và thực thi trên phần cứng FPGA. Bài viết đề xuất phương pháp giảm xung đột bảng MAC bằng cách sử dụng bảng phụ với kích thước bằng 1/16 bảng chính, và bảng chính được chia thành 16 đoạn.

Công nghệ thông tin NGHIÊN CỨU BẢNG ĐỊA CHỈ MẠNG (MAC TABLE) CHO THIẾT KẾ THIẾT BỊ CHUYỂN MẠCH LỚP TRÊN NỀN TẢNG FPGA Thái Trung Kiên1*, Hồng Đình Thắng1, Đào Xuân Ước1, Nguyễn Văn Thành2 Tóm tắt: Trong báo tập trung nghiên cứu giới thiệu bảng địa mạng (MAC table), phương pháp xây dựng bảng địa mạng dựa bảng băm, phương pháp giảm xung đột thực thi phần cứng FPGA Bài báo đề xuất phương pháp giảm xung đột bảng MAC cách sử dụng bảng phụ với kích thước 1/16 bảng chính, bảng chia thành 16 đoạn Kết thử nghiệm mô cho thấy xung đột xảy 1% Trên sở kết mô phỏng, phương pháp thực phần cứng FPGA Kết cho thấy rằng, với xung CLK độ trễ 5ns chip Artix7 200 MHz cho chế độ tìm kiếm bảng địa mạng Tốc độ tương đương với tốc độ xử lý thiết bị mạng 100 Gbps với gói tin Ethenet có kích thước 64 byte Từ khóa: Bảng MAC; Bảng băm; Hàm băm; Chuyển lớp ĐẶT VẤN ĐỀ Khi máy tính nối mạng thơng qua thiết bị mạng thiết bị chuyển mạch, hay định tuyến (switch, router), thơng tin máy tính nối mạng thu thập thiết bị Các thơng tin máy tính thu thập địa mạng (MAC Address), địa IP, … Địa IP thay đổi thơng qua cơng cụ cấu hình địa IP Cịn địa mạng (MAC) khơng thể thay đổi người sử dụng Trừ trường hợp hacker chuyên nghiệp sử dụng vào mục đích khơng sáng Địa mạng hình thành lớp thứ mơ hình lớp OSI, gán cho thiết bị truy cập vào mạng Thơng thường mạng LAN, máy tính kết nối chia sẻ tài nguyên với thơng qua thiết bị chuyển mạch (hình 1) Để máy A trao đổi với máy B thiết bị chuyển mạch thu thập địa mạng máy Địa mạng máy kết nối vào thiết bị chuyển mạch lưu trữ bảng địa mạng (hình 2) Hình Sơ đồ kết nối mạng sử dụng thiết bị chuyển mạch [2] Q trình bảng địa mạng cập nhật thơng qua q trình gửi thơng tin máy A máy B Cụ thể gói tin từ máy A gửi đi, địa mạng máy A lưu vào bảng MAC Thông tin lưu giữ bao gồm địa MAC, cổng kết nối mà máy A kết nối tới thiết bị chuyển mạch Tương tự vậy, thông tin địa máy B lưu trữ vào bảng MAC thiết bị chuyển mạch Khi thiết bị chuyển mạch bật lên, bảng MAC trống rỗng, thiết bị nối vào thiết bị chuyển mạch gửi thông tin tới Khi máy A muốn gửi thông tin đến máy B thiết bị chuyển mạch phân tích gói tin, tìm địa máy B cổng kết nối đến thiết bị chuyển mạch để chuyển gói tín đến B Trường hợp B khơng tồn switch chuyển gói tin đến tất cổng thiết bị chuyển mạch trừ cổng gắn với máy A 16 T T Kiên, …, N V Thành, “Nghiên cứu bảng địa mạng … tảng FPGA.” Nghiên cứu khoa học cơng nghệ Q trình tìm kiếm địa B bảng địa toán phức tạp, sử dụng nhiều phương pháp, kỹ thuật khác Xây dựng bảng địa chỉ, phương pháp sử dụng để tìm kiếm xử lý thiết bị chuyển mạch Tốc độ xử lý tìm kiếm địa mạng bảng MAC nhân tố quan trọng định xử lý chuyển tiếp gói tin thiết bị chuyển mạch Thơng dụng với thiết bị chuyển mạch lớp sử dụng cho mơ hình tổ chức vừa nhỏ, giá thành rẻ kỹ thuật bảng băm sử dụng Bởi báo này, phần thứ tập trung nghiên cứu giới thiệu bảng băm, hàm băm, kỹ thuật giải xung đột xảy ra, đề xuất phương pháp mô để tìm kiếm giải pháp tối ưu Trong phần thứ 3, báo tập trung mơ tả q trình thực nghiệm FPGA, đánh giá khả thực thi phần cứng Và cuối đánh giá nhận xét, kết luận BẢNG BĂM SỬ DỤNG TRONG BẢNG ĐỊA CHỈ MẠNG 2.1 Bảng băm, hàm băm Bảng băm, theo định nghĩa nhiều tài liệu [3, 4], cấu trúc liệu lưu trữ tập hợp sử dụng hàm băm (hash function) để ánh xạ từ giá trị xác định (gọi khóa) đến giá trị tương ứng Các cấu trúc liệu thường xun bắt gặp cho tốn tìm kiếm cây bằng, phép tìm kiếm thực thời gian O(logn) Có nghĩa thời gian tìm kiếm phụ thuộc vào độ lớn tập liệu Đối với toán tìm kiếm yêu cầu thời gian thực tức thời (chỉ tính vài nano giây) tồn tìm kiếm địa mạng đích thiết bị chuyển mạch, mong muốn thời gian tìm kiếm O(1) Gọi A[0,1,…,n−1] tập n phần tử lưu trữ bảng băm Các phần tử tập hợp mà lưu trữ thường từ tập lớn U gọi tập gốc Tập gốc tập phần tử hữu hạn lớn so với n m (m số phần tử bảng băm) Ví dụ tập gốc tập địa mạng tất thiết bị hỗ trợ kết nối mạng (hàng tỷ thiết bị) Nếu giả sử tập liệu bảng băm địa mạng lưu trữ thiết bị chuyển mạch, ví dụ thiết bị Cisco 2960, lượng địa lưu trữ 8000 Bảng băm mảng T[0,1,…,m−1] có kích thước m Để lưu trữ liệu vào bảng băm, hàm băm (hash function) sử dụng, biểu diễn dạng: h:U→{0,1,…,m−1} (1) ánh xạ gán cho phần tử tập U vị trí bảng T Cụ thể, phần tử x lưu ô T[h(x)] bảng, nghĩa x băm vào vị trí h(x), h(x) gọi mã băm (hash code) x (hình 3) Hai thao tác bảng băm là: đưa phần tử vào bảng băm (learning) tìm xem phần tử có nằm bảng băm hay không (lookup) LEARNING(key x, h): LOOKUP(key x, h): T[h(x)]←x if T[h(x)]=x return YES else return NO Do U lớn m, theo nguyên lí “nhốt chim”, nhiều phần tử tập U băm vào vị trí bảng Khi nhiều phần tử bặm vào vị trí bảng băm tượng gọi xung Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 04 - 2019 17 Công nghệ thông tin đột Do xung đột làm trình tìm kiếm trở nên phức tạp hơn, nên cần có phương pháp để đối phó gọi phương pháp giải xung đột Tập đia mạng Tập địa mạng tổ chức h(x) 001D.70AB.5D60 Fa0/2 001E.F724.A160 Fa0/3 Hình Minh họa bảng băm Trước thảo luận cách chiến lược này, ta thảo luận cách chọn hàm băm trước xung đột nhiều hay phụ thuộc vào hăm băm mà ta chọn Như mơ tả ví dụ tập thiết bị mạng giới, số lượng thiết bị tổ chức việc xảy xung đột địa mạng tránh khỏi Để giảm thiểu xung đột, phương pháp sử dụng lựa chọn hàm băm phù hợp với loại liệu Theo [5] nghiên cứu lựa chọn hàm băm việc tìm kiếm địa mạng rằng, dùng mã kiểm tra CRC cho kết rât tốt Ngoài dùng phương pháp mã kiểm tra CRC việc thực phần cứng dễ dàng Các nghiên cứu hãng Broadcom [6, 7] nghiên cứu sử dụng với CRC16 (CCITT) cho việc xây dựng cấu trúc lưu liệu địa MAC, địa internet 2.2 Giải xung đột Như nêu trên, việc xung đột địa hồn tồn xảy tính chất hàm băm Bởi để giải xung đột ngồi việc lựa chọn hàm băm có số phương pháp giới thiệu [4] Các phương pháp bao gồm: phương pháp xích ngăn (separate chaining), địa mở (open addressing), băm hoàn hảo (perfect hashing) Phương pháp xích ngăn phương pháp trực quan đơn giản Đó dùng danh sách liên kết, gọi xích ngăn để liên kết phần tử có mã băm h(x) Ở phương pháp có định sử dụng thêm hệ số tải (α), trường hợp xấu phải trả giá cho tìm kiếm O(logn) Phương pháp thứ sử dụng để giảm xung đột phương pháp địa mở (open addressing) Xuất phát từ việc sử dụng phương pháp xích ngăn tạo nhiều rỗng, khác chưa nhiều phần tử Bênh cạnh đó, kỹ thuật lập trình cần trì danh sách trỏ để liên kết phần tử với nhau, phương pháp xích ngăn cần nhiều nhớ Từ phương pháp địa mở ô lưu trữ phần tử Phương pháp băm hoàn hảo sử dụng hai bàm băm tốt (h(x), g(x)), bảng băm hai chiều: T[1,2,…,m][…] Mỗi hàng bảng băm T[i] coi bảng băm phụ, có kích thước phụ thuộc vào đầu vào Khi băm vào bảng, thực băm theo pha: Pha đầu tiên, sử dụng hàm h để băm x vào hàng h(x) bảng T Gọi C[i] số lượng phần tử băm vào hàng thứ i sau pha Trong pha thứ 2, với hàng i, cấp phát nhớ C[i]2 cho hàng T[i] Sau đó, 18 T T Kiên, …, N V Thành, “Nghiên cứu bảng địa mạng … tảng FPGA.” Nghiên cứu khoa học công nghệ coi hàng bảng băm dùng hàm g để băm phần tử x có mã băm i vào ô g(x) hàng Đụng độ lần giải sử dụng xích ngăn cách Ở phương pháp băm hồn hảo, bảng băm phụ có kích thước bình phương số phần tử lưu hàng nên xung đột băm lần O(1) Do tìm kiếm thực thời gian O(1) Nghiên cứu [7] chia bảng băm liệu thành hai bảng băm, gọi bảng thứ bảng thứ Bảng thứ sử dụng mã kiểm tra CRC32, bảng thứ dùng mã kiểm tra CRC16 Có thể xem phương pháp [7] phương pháp băm hoàn hảo CRC16-CCITT định nghĩa [7]: x16+x12+x5+1 (2) 2.3 Đề xuất phương pháp giải xung đột Dựa nghiên cứu [4, 5, 6, 7], giải pháp chống xung đột xây dựng thử nghiệm Labview Để đề xuất phương pháp chống xung đột địa mạng, bảng băm chia đoạn, với kích thước khác Đây ý tưởng xuất phát từ phương pháp băm hoàn hảo Đặc biệt phương pháp đề xuất sử dụng loại hàm băm tốt, hàm CRC16-CCITT, khác biệt với đề xuất [7] Tham số mô dựa tham số yêu cẩu đề tài mã số 18/2018/ĐTCT-KC.01/16-20 [8], với số phần tử địa mạng 8000 (tương đương 213) Sơ thử nghiệm thể hình Hình Sơ đồ thử nghiệm Labview Sơ đồ cấu trúc Labview thể hình 3, sơ đồ thuật tốn thể hình Để thực mơ thuật tốn, số giải thiết sau đưa ra: - Bảng băm bao gồm: bảng N đoạn, bảng phụ K đoạn - Bảng băm chứa địa MAC địa tương ứng với giá trị băm RAM Khi bắt đầu thiết bị chuyển mạch thêm địa MAC tìm kiếm địa MAC, hàm băm HASH thực tính tốn giá trị địa MAC để tính tốn địa RAM tương ứng Giá trị MAC lưu địa RAM tương ứng so sánh với địa MAC cần so sánh, va chạm xảy hai giá trị khác (trong trường hợp lookup) tồn giá trị địa trường hợp learning Việc so sánh thực tất đoạn bảng chính, xảy va chạm bảng q trình so sánh thực bảng phụ Quá trình so sánh kết thúc tìm kiếm giá trị (trong trường hợp lookup) tìm vị trí để ghi (trong trường hợp learning) Sơ đồ thuật tốn hình sử dụng để thực thi phần cứng mục Với liệu kích thước bảng 213, số địa mạng thử 213 nhỏ hơn, số lần thử nghiệm 100 lần Kích thước phụ sử dụng Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 04 - 2019 19 Công nghệ thông tin 1/8 1/16 bảng Các kịch thử nghiệm thể qua bước: - Có phân đoạn không sử dụng bảng phụ; - Sử dụng bảng phụ có kích thước 1/8 bảng chính, có phân đoạn; - Sử dụng bảng phu có kích thước 1/16 chính, có phân đoạn - Sử dụng liệu đầu vào khác (8000 địa chỉ, 5000 địa chỉ, 4000 địa chỉ) Kết thực nghiệm cho thấy phần trăm xung đột nhỏ sử dụng thêm bảng phụ có kích thước 1/16 bảng chính, bảng bảng băm phân thành 2, 4, 8, 16, 32 đoạn Địa đầu vào 212 Bắt đầu Tính giá trị hàm HASH i = 0, j = Đọc so sánh với giá trị MAC lưu tương ứng Hashtable đoạn i bảng Đọc so sánh với giá trị MAC lưu tương ứng Hashtable đoạn j bảng phụ Thơng báo khơng có va chạm Thơng báo có va chạm NO Có va chạm? NO Có va chạm? YES Kết thúc YES i = i +1 NO j = j +1 NO i=N-1 j=K-1 YES YES Hình Sơ đồ thuật tốn đề xuất để giảm tránh xung đột THỰC NGHIỆM THAO TÁC BẢNG ĐỊA CHỈ MẠNG TRÊN FPGA Để đánh giá phương pháp đề xuất giải xung đột, thuật tốn hình thử nghiệm với MAC table chip Artix – hãng Xilinx, với tần số xung CLK 200MHz Bảng địa dùng để lưu trữ thông tin liên quan cho thiết bị chuyển mạch lớp với 72 bit thông tin đưa bảng Cách tổ chức bảng địa MAC để tiết kiệm tài nguyên block RAM nội chip Xilinx FPGA (bao gồm khối Block RAM có cấu tạo 72x512, 36x1024 18x2048) Sơ đồ tổ chức bảng địa MAC đưa bảng 1, sơ đồ máy trạng thái hoạt động đưa hình Mỗi địa MAC sau Learning lưu trữ khoảng thời gian định khối BRAMs (kiểu Dynamic) Khi có địa MAC 20 T T Kiên, …, N V Thành, “Nghiên cứu bảng địa mạng … tảng FPGA.” Nghiên cứu khoa học công nghệ dựa vào để Learning, có BRAMs từ trước thời gian lưu trữ làm Khi Lookup, địa MAC đưa vào giống với địa MAC lưu BRAMs tồn thơng tin liên quan địa MAC lấy ra, với tín hiệu thông báo MATCH chuyển lên mức ‘1’ Hàm băm chuyển địa MAC thành giá trị băm tương ứng làm địa lưu trữ BRAMs, sử dụng phép toán mod giá trị địa MAC với CCITTCRC-16 BRAMs WRITING POSITION FSM BRAMs WE Priority Encoder WE Tìm kiếm ADDR Địa MAC Hàm băm ADDRESS S/D DI MUX BUS PORT VLAN Initiate aging propertiy DO DO AGING DO DI MATCH CHECKING DATAIN MATCH Hình Sơ đồ tổ chức MAC table Hình Sơ đồ máy trạng thái MAC table Các khối hình 5, bao gồm: - BRAMs - Bộ nhớ dùng để lưu trữ địa MAC thông số liên quan Là khối block RAM nội Xilinx tổ chức theo cấu trúc 72x512 - Aging - Bộ cộng dùng để cập nhật thời gian lưu trữ địa MAC (đối với kiểu Dynamic) - Match checking: So sánh địa MAC đầu vào với địa MAC lưu RAM, giống đưa tín hiệu MATCH - Các khối cịn lại: Khối Initiate Aging Property dùng để khởi tạo giá trị thời gian lưu trữ địa MAC Việc sử dụng 16 khối RAM song song có tác dụng làm giảm tượng trùng khoá (xung đột) địa MAC khác xuống tỉ lệ thấp Vì cần sử dụng 16 khối Aging tương ứng khối hỗ trợ BRAMs Writing Position để lựa chọn xác khối RAM dùng để lưu trữ, Priority Encoder để chọn lấy đầu phù hợp 16 đầu khối RAM song song, đồng thời khối Match Checking đảm nhận thêm nhiệm vụ vị trí match để đưa vào Priority Encoder Ngoài ra, khối FSM sử dụng thêm Timer để hỗ trợ việc tính thời gian timeout cho địa MAC kiểu Dynamic Bảng Các bit địa RAM MACtable MAC address Static/Dynamic Port VLAN Aging Prop Reserved bit 48 bit bit bit 12 bit bit bit Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 04 - 2019 21 Công nghệ thông tin Quá trình thêm địa mạng đưa hình 7, learning chu kì CLK, tính từ lúc WE chuyển từ mức lên mức (hình 7, 8) CLK CLK WE LOOKUP DATAIN MAC BUSY MATCH Hình Quá trình Learning Hình Quá trình Lookup BUSY : tín hiệu thơng báo hệ thống bận Learning MATCH : tín hiệu thơng báo MATCH Lookup Q trình Loockup đưa hình 8, cho kết chậm chu kì CLK so với tín hiệu LOOKUP đầu vào, LOOKUP liên tục Bảng Tài nguyên tính mạch Artix7, 213 phần tử So sánh với kết đưa hãng Xilinx [9] nhận thấy: - Tài nguyên sử dụng tương ứng Xilinx khoảng 10% - Số chu kỳ để ghi (learning) nhỏ Xilinx (4 chu kỳ so với 32 Xilinx trường hợp bảng gần đầy) - Tốc độ hoạt động hệ thống đáp ứng tương đương Xilinx KẾT LUẬN Qua trình nghiên cứu, kết hợp lý thuyết, mô phỏng, thực thi phần cứng FPGA, kết nghiên cứu rõ kết hợp hàm băm CRC16CCITT phân bảng băm 16 đoạn, với kích thước 1/16 bảng cho kết tốt Với số lượng 1000 địa MAC kết nối, với 100 lần thử thử số xung đột Phương pháp sử dụng xem phương pháp hàm băm hồn hảo Trong hàm CRC16-CCITT sử dụng xuyên suốt phân chia đoạn khác bảng băm Kết thể việc thực thành cơng thuật tốn phần cứng, từ tạo tảng để thiết kế chế tạo hồn chình thiết bị chuyển mạch lớp Kết thực nghiệm phần cứng so sánh với [9] hãng Xilinx cho thấy thuật toán đề xuất có ưu việt tài nguyên sử dụng số chu kỳ xung nhịp Đây kết ấn tượng thử nghiệm Lời cảm ơn: Bài báo phần kết nghiên cứu đề tài 18/2018/ĐTCTKC.01/16-20, ngày 15/11/2018 [3] Chúng trân trọng cảm ơn ban chủ nhiệm chương trình KC01/16-20, Văn phịng Các chương trình trọng điểm cấp nhà nước, Vụ Công nghệ cao, Vụ Kế hoạch tài Bộ Khoa học Cơng nghệ, Viện CNTT/ Viện KHCNQS hỗ trợ đề tài 22 T T Kiên, …, N V Thành, “Nghiên cứu bảng địa mạng … tảng FPGA.” Nghiên cứu khoa học công nghệ REFERENCES [1] Cisco, Configuring the MAC Address Table, https://www.cisco.com/c/en/ us/td/docs/switches/datacenter/nexus3000/sw/layer2/503_U2_1/b_Cisco_n3k_ layer2_config_guide_503_U2_1/b_Cisco_n3k_layer2_config_gd_503_U2_1_ chapter_01101.pdf, truy cập ngày 15/12/2018 [2] How switches learn MAC addresses, https://geek-university.com/ccna/howswitches-learn-mac-addresses/, truy cập ngày 15/12/2018 [3] Wikipedia, “Bảng băm”, https://vi.wikipedia.org/wiki/B%E1%BA%A3ng _b%C4%83m, truy cập ngày 15/1/2018 [4] Brad Miller and David Ranum, "Problem Solving with Algorithms and Data Structures using Python", Luther College, truy cập ngày 15/1/2018 [5] R Jain, “A Comparison of Hashing Schemes for Address Lookup in Computer Networks”, IEEE Transactions on Communications, Vol 40, No 3, October 1992, pp 1570-1573 [6] Brad Matthews, “Puneet Agarwal, Hash proposal, IEEE 802.1Qbp”, Broadcom, June 23, 2011 [7] Broadcom Corp, Method and apparatus for dual-hashing tables, US patent US20080229056A1, 12-3-2007 [8] Thái Trung Kiên cộng sự, “Thuyết minh đề tài: Nghiên cứu thiết kế, chế tạo thiết bị chuyển mạch (Switch) có tính an tồn, bảo mật thông tin tảng FPGA mã nguồn mở”, 18/2018/ĐTCT-KC.01/16-20, ngày 15/11/2018 [9] Xilinx, SmartCORE IP Product Guide www.xilinx.com/support/documentation/ ip_documentation/cam/pg189-cam.pdf, truy cập ngày 07/1/2019 ABSTRACT MAC TABLE IMPLEMENTATION AND ESTIMATION FOR DESIGNING SWITCH LAYER DEVICE BASED ON FPGA The paper focuses on introduces a method for building an MAC address table based on a hash table, a method for reducing collision, and an implement on FPGA hardware A new scheme of algorithm for reducing collision is proposed based on the perfect hashing method In this method, the main hash table is devided into 16 segments, and combining with second hash table The result of simulation on Labview shows that collision is bellow 1% The proposed method is implemented on Artix7 200 Mhz FPGA of Xinlix to test performence for learning and lookuping The result shows that the proposed method can be used to design a 100 Gbps layer switch device whih packet size is 64 bytes (the minimized Ethernet packet) Keywords: MAC table; Hash table; Hash function; Switch layer Nhận ngày 23 tháng 12 năm 2018 Hoàn thiện ngày 10 tháng năm 2019 Chấp nhận đăng ngày 25 tháng năm 2019 Địa chỉ: Viện CNTT/Viện KHCNQS; Công ty TNHH Đầu tư Phát triển sản phẩm Công nghệ cao HTP * Email: kienthaitrung@gmail.com Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 04 - 2019 23 ... bảng băm) Ví dụ tập gốc tập địa mạng tất thiết bị hỗ trợ kết nối mạng (hàng tỷ thiết bị) Nếu giả sử tập liệu bảng băm địa mạng lưu trữ thiết bị chuyển mạch, ví dụ thiết bị Cisco 29 60, lượng địa. .. thiết bị chuyển mạch Tốc độ xử lý tìm kiếm địa mạng bảng MAC nhân tố quan trọng định xử lý chuyển tiếp gói tin thiết bị chuyển mạch Thông dụng với thiết bị chuyển mạch lớp sử dụng cho mơ hình tổ... quan cho thiết bị chuyển mạch lớp với 72 bit thông tin đưa bảng Cách tổ chức bảng địa MAC để tiết kiệm tài nguyên block RAM nội chip Xilinx FPGA (bao gồm khối Block RAM có cấu tạo 72x5 12, 36x1 024

Ngày đăng: 21/05/2021, 15:07

Tài liệu cùng người dùng

Tài liệu liên quan