Link layer – ARP – RARP
Hoàng Vũ Tuấn Anh
Contents
Link layer ARP RARP
TCP/IP suite
An example
Link layer
Nhiệm vụ: Liên kết các kiến trúc mạng khác nhau: Ethernet,
Token ring, … Gửi / nhận frame Truy vấn / trả lời ARP Truy vấn / trả lời RARP
Ethernet Link layer
Ethernet 1982 by Digital Equipment Corp., Intel Corp., and
Xerox Corp. IEEE 802
1983 by IEEE (Institute of Electrical and Electronics Engineers)
IEEE 802
Chia thành 2 sub-layer Medium Access Control (MAC): 802.3
(CSMA/CD), 802.4 (Token bus), 802.5 (Token ring)
Logical Link Control (LLC): 802.2
Logical Link Control
Đơn vị trao đổi của LLC là PDU (Protocol Data Unit)
Khi mỗi PDU được gửi đi, máy nguồn chờ máy đích xác nhận là đã nhận. Sau đó PDU tiếp theo mới được tiếp tục gửi đi
Giả sử mất 2sec để gửi 1 PDU và 2 sec để đợi xác nhận 4sec. Nếu chuẩn 802.3 giới hạn PDU 1500 octets (8 x 1500 = 12Kbits) Tốc độ 3Kbits/sec (12Kbits/4sec)
Sliding Windows
Ethernet
Access Method: CSMA/CD (Carrier Sense, Multiple Access with Collision Detection – Đa truy nhập nhận biết sóng mang / Dò tìm xung đột)
Operates: 10 Mbits/sec và sử dụng địa chỉ 48-bit
Host Requirements
Mỗi máy tính kết nối vào mạng Internet bằng cáp Ethernet 10Mbits/sec phải thỏa mãn: Gửi / nhận được frame chuẩn Ethernet Nhận được frame chuẩn IEEE 802 (không bắt
buộc) Có thể gửi được frame chuẩn IEEE 802. Nếu
máy tính có thể gửi được cả 2 chuẩn frame thì cấu hình mặc định phải là frame chuẩn Ethernet
Ethernet & IEEE 802
Sử dụng địa chỉ phần cứng 48-bit (địa chỉ MAC – Media Access Control)
MAC: Do nhà sản xuất gán trong quá trình sản xuất, không thể thay đổi được
Có 248 = 281,474,976,710,656 địa chỉ MAC có thể có
3 byte đầu tiên đặc trưng cho nhà sản xuất. 3 byte còn lại do nhà sản xuất tự quy định
CRC
Cyclic Redundancy Check: một loại hàm băm (hash) dùng để kiểm tra tính toàn vẹn của một chuỗi bit, gói tin hoặc đoạn dữ liệu
Giá trị của CRC được tính toán và gửi kèm vào dữ liệu trước khi gửi đi. Nơi sử dụng sẽ sinh mã CRC để so sánh và phát hiện lỗi
CRC có rất nhiều thuật toán, ví dụ như “Bit chẵn lẻ” (xem thêm http://en.wikipedia.org/wiki/Cyclic_redundancy_check)
IEEE 802
Byte 1 ÷ 6: Địa chỉ phần cứng đích Byte 7 ÷ 12: Địa chỉ phần cứng nguồn Byte 13 ÷ 14: Tổng độ dài phần còn lại (tính
theo bytes) (46 ÷ 1500) (không tính CRC) Byte 15 ÷ 20:
15: DSAP (Dest. Service Access Point): 0xAA 16: SSAP (Source Services Access Point): 0xAA 17: Ctrl: 0x03 18 ÷ 20: Org code: 0x000000
IEEE 802
Byte 21 ÷ 22 : Kiểu dữ liệu mang 0x0800: IP datagram 0x0806: Truy vấn / trả lời ARP 0x8035: Truy vấn / trả lời RARP
Từ byte 23 (38 ÷ 1492): Dữ liệu 4 byte cuối cùng: CRC
Ethernet
Byte 1 ÷ 6: Địa chỉ Ethernet đích Byte 7 ÷ 12: Địa chỉ Ethernet nguồn Byte 13 ÷ 14: Kiểu dữ liệu mang
0x0800: IP datagram 0x0806: Truy vấn / trả lời ARP 0x8035: Truy vấn / trả lời RARP
Từ byte 15 (46 ÷ 1500): Dữ liệu 4 byte cuối cùng: CRC
Phân biệt Ethernet và IEEE 802
Byte 13 ÷ 14 của 2 chuẩn: Ethernet: type IEEE 802: length Không có giá trị nào của type và length ở 2
chuẩn trùng nhau Dễ dàng phân biệt packet của 2 chuẩn
Công cụ làm việc
Wireshark (http://www.wireshark.org) (bắt nguồn từ Ethereal) là một phần mềm miễn phí có khả năng capture các frame vào/ra qua card mạng chỉ định
Wireshark có thể nhận dạng được hơn 700 loại protocol khác nhau
Wireshark làm việc dựa trên thư viện WinPcap
Wireshark
Demo
Cách sử dụng Wireshark Sử dụng Wireshark để phân tích cấu trúc
của một frame
Loopback interface
Loopback interface
Địa chỉ mạng lớp A 127 được dành riêng cho loopback. Thường hệ thống sử dụng 127.0.0.1 (localhost)
Frame gửi đến loopback trở thành input Frame gửi đến broadcast hoặc multicast
được copy vào loopback rồi gửi ra ngoài Frame có địa chỉ IP đích = địa chỉ IP nguồn
được gửi vào loopback và không được phép gửi ra ngoài
MTU
Maximum Transmission Unit: kích thước lớn nhất của IP datagram trên đường truyền.
IEEE 802: 1492 byte Ethernet: 1500 byte Nếu một IP datagram được gửi đi có kích
thước lớn hơn MTU thì IP datagram đó sẽ bị chia thành các mảnh có kích thước nhỏ hơn MTU để có thể truyền đi được
Path MTU
Path MTU: Giá trị nhỏ nhất của MTU trên các kênh nối 2 máy
Path MTU không cố định, phụ thuộc vào IP routing
ARP
Address Resolution Protocol IPv4: Mỗi máy được gán một địa chỉ IP 32-bit (có
thể thay đổi được). Network layer và các lớp cao hơn sử dụng địa chỉ này để gửi/nhận packet
2 máy trên cùng mạng vật lý chỉ có thể gửi/nhận frame nếu biết địa chỉ Ethernet (địa chỉ MAC) của nhau
Nhiệm vụ ARP: Ánh xạ địa chỉ IP 32-bit thành chính xác địa chỉ Ethernet 48-bit
ARP operation
ARP packet format
ARP packet format
Tổng cộng: 28 byte hard type (2 bytes): 0x0001 cho Ethernet prot type (2 bytes): 0x0080 cho IP hard size (1 byte): Kích thước địa chỉ vật lý
(tính theo byte) (0x06) prot size (1 byte): Kích thước địa chỉ của
giao thức cần ánh xạ (tính theo byte) (0x04)
ARP packet format
op (2 byte): Định dạng packet (0x0001 cho ARP request, 0x0002 cho ARP reply)
4 trường tiếp theo: Địa chỉ Ethernet máy gửi (6 byte), địa chỉ IP máy gửi (4 byte), địa chỉ Ethernet máy nhận (6 byte), địa chỉ IP máy nhận (4 byte)
ARP
Trong ARP request, giá trị của trường op là 0x0001. Địa chỉ Ethernet máy nhận được để trống
Máy nhận điền địa chỉ Ethernet của nó vào trong gói ARP, đổi chỗ 2 địa chỉ máy gửi với 2 địa chỉ máy nhận, thay đổi giá trị của trường op thành 0x0002 và gửi trả lại
ARP Cache
Mỗi lần gửi 1 packet request ARP lãng phí và giảm tốc độ trao đổi dữ liệu
ARP sử dụng ARP cache để lưu trữ những ARP entry mới nhất
Khi một máy tính nhận được ARP reply tạo 1 ARP cache entry chứa thông tin về địa chỉ IP và địa chỉ MAC tương ứng
Sử dụng ARP cache trước khi gửi broadcast ARP request
Timeout: 20 phút
Proxy ARP
Khi một máy gửi packet đến một máy khác ngoài mạng, packet sẽ được gửi đến router
Đối với một số hệ thống cũ, các máy tính không hỗ trợ subnetting, vì vậy không phân biệt được máy nào cùng mạng, máy nào khác mạng
Proxy ARP là khả năng của router cho phép trả lời các truy vấn ARP đến một máy tính khác mạng
Proxy ARP
ARP request gửi đến các máy không cùng mạng sẽ cho kết quả trả về là địa chỉ Ethernet của router/gateway
Frame gửi đến các máy không cùng mạng sẽ có địa chỉ Ethernet đích là địa chỉ Ethernet của router/gateway
Gratuitous ARP
Một host gửi ARP request với địa chỉ IP máy đích là IP của chính nó
Mục đích Kiểm tra duplicate IP (2 máy trong cùng mạng
dùng chung địa chỉ IP) Cập nhật địa chỉ Ethernet (nếu máy đó vừa thay
card mạng)
Công cụ làm việc với ARP
arp -a: Hiển thị thông tin về ARP cache -d: Xóa một entry trong ARP cache -s: Thêm một entry trong ARP cache
Switch Sniffer “Man in the middle”
Switch Sniffer
Được phát triển bởi NextSecurity (http://www.nextsecurity.net)
Sử dụng cách tấn công “Man in the middle” Freeware nếu cài thêm Alexa Toolbar Không dùng được với WinPcap ver. > 3.0
Switch Sniffer
Nguyên tắc làm việc
Trước khi có Switch Sniffer
Sau khi có Switch Sniffer (trên máy B)
A Router/Gateway
A Router/Gateway
B
Demo
Cách sử dụng Switch Sniffer Sử dụng Switch Sniffer kết hợp với
Wireshark để lấy Username và Password khi victim sử dụng giao thức POP3 không mã hóa để nhận thư
RARP
Reverse Address Resolution Protocol Đối với các máy tính thông thường khi khởi
động, địa chỉ IP được lấy từ file cấu hình trên đĩa cứng. Nhưng với các máy tính không có đĩa cứng thì phải có một cách khác để lấy địa chỉ IP
Nhiệm vụ RARP: Ánh xạ địa chỉ Ethernet 48-bit thành chính xác địa chỉ IP 32-bit
RARP
Cấu trúc của một packet RARP cũng tương tự như ARP. Chỉ khác trường frame type của Ethernet header là 0x8035, trường op là 0x0003 đối với RARP request, 0x0004 đối với RARP reply
Trong mạng phải có một máy đóng vai trò RARP server để trả lời các truy vấn RARP
Sử dụng nhiều ARP server trong cùng mạng để khi một server bị hỏng có server khác thay thế
Kết luận
Link layer: Liên kết các kiến trúc mạng khác nhau,gửi / nhận IP datagram, truy vấn / trả lời ARP / RARP
ARP là một giao thức cấp thấp, cho phép các lớp cao hơn sử dụng địa chỉ IP để trao đổi dữ liệu, là một phần của hệ thống mạng vật lý
Tài liệu tham khảo
W. Richard Stevens. TCP/IP Illustrated, Volume 1: The Protocols, 1st Edition. Addison Wesley Dec 2003
Matt Naugle. Illustrated TCP/IP: A Graphic Guide to the Protocol Suite. John Wiley & Sons 1999
Libor Dostálek & Alena Kabelová. Understanding TCP/IP. Packt Publishing 2006
Tài liệu tham khảo
Wikipedia (http://www.wikipedia.org) The Linux Document Project
(http://www.tldp.org)
Top Related