Link layer – ARP – RARP

Hoàng Vũ Tuấn Anh

Contents
 Link  ARP  RARP

layer

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. 1983 by IEEE (Institute of Electrical and Electronics Engineers)

IEEE 802

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ỉ 48bit

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_che ck)

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
A Router/Gateway

Sau khi có Switch Sniffer (trên máy B)
B

A

Router/Gateway

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 48bit 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)

Sign up to vote on this title
UsefulNot useful