Định dạng của IP datagramver length 32 bits data chiều dài thay ñổi, thường là một TCP segment hay UDP segment 16-bit identifier header checksum time to live 32 bit source IP address Phi
Trang 1Chương 7
Trang 3Vị trí của IP
forwarding table
IP là giao thức thực hiện chức năng lớp mạng (lớp
Internet) trong mô hình TCP/IP
•Thông báo lỗi
• báo hiệu router
Transport layer: TCP, UDP
Link layer physical layer
Network
layer
Trang 5Định dạng của IP datagram
ver length
32 bits
data (chiều dài thay ñổi, thường là
một TCP segment hay
UDP segment)
16-bit identifier
header checksum
time to live
32 bit source IP address
Phiên bản của IP
header length
(x4bytes)
Số hop tối ña còn lại
(giảm 1 khi ñi qua
1 router)
Điều khiển phân mảnh và tái hợp
Tổng chiều dài của datagram (bytes), thường [576, 1500]
offset upper
layer
32 bit destination IP address
Tùy chọn (nếu cần) Ví dụ timestamp,
Ghi lại tuyến
ñã qua, chỉ ra danh sách các router ñã ñi qua.
Trang 6Sự phân mảnh và tái hợp (1)
(IP Fragmentation & Reassembly)
❒ Mỗi liên kết mạng có MTU
(maxi mum transfer unit)
-lượng data lớn nhất frame có
Trang 9❍ Router thường có nhiều interface
❍ host thường chỉ có một interface
❍ Các ñịa chỉ IP gắn liền với mỗi interface
Trang 10Địa chỉ IP
Phần Host và phần tiền tố (Prefix)
❍ Một IP address có phần prefix và phần host :
Trang 11Biểu diễn IP Addresses
❒ dotted decimal : nhóm các bit theo byte cách nhau bởi dấu
chấm, viết ra theo số thập phân
Trang 12223.1.1.1 223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2 223.1.2.1
223.1.3.2 223.1.3.1
223.1.3.27
223.1.1.1 = 11011111 00000001 00000001 00000001
Trang 13Hai cách viết mô tả Prefix (1)
• Có bao nhiêu host có thể ?
Thường dùng ñể cấu hình host
Trang 14Hai cách viết mô tả Prefix (2)
Trang 15128.178/16 biểu diễn mạng của A
❍ Được dùng giữa các router bởi các giải thuật ñịnh tuyến
❍ Cách này gọi là classless và ñược giới thiệu lần ñầu tiên trong
ñịnh tuyến liên domain CIDR (classless interdomain routing)
❒ Địa chỉ IP phân lớp (classful)
❍ Chia các ñịa chỉ IP thành các lớp (class)
❍ Phân lớp tuyệt ñối-hiện nay ít dùng
Trang 16Các lớp ñịa chỉ
A B C D E
0.0.0.0 to 127.255.255.255 128.0.0.0 to 191.255.255.255 192.0.0.0 to 223.255.255.255 224.0.0.0 to 239.255.255.255 240.0.0.0 to 247.255.255.255
❒ Các ñịa chỉ lớp B ñã cạn, các ñịa chỉ mới lấy từ lớp C, ñược cấp
class A class B class C class D class E
Host Id Subnet Id
Trang 17Cấp ñịa chỉ
❒ Phạm vi thế giới
❍ Âu châu và Trung ñông(RIPE NCC)
❍ Phi châu (ARIN & RIPE NCC)
❍ Bắc Mỹ (ARIN)
❍ Mỹ Latin và vùng Caribbean (ARIN)
❍ Á châu và Thái bình dương (APNIC)
❒ Các cấp phát hiện hành của lớp C
❍ 193-195/8, 212-213/8, 217/8 cho RIPE
❍ 199-201/8, 204-209/8, 216/8 cho ARIN
❍ 202-203/8, 210-211/8, 218/8 cho APNIC
Trang 18Các ñịa chỉ IP ñặc biệt
(tham khảo RFC 1918)
1,2: source IP; 3,4,5: destination IP
3 255.255.255.255 broadcast giới hạn (không chuyển
ñi bởi router)
4 subnetId.tất cả 1 broadcast trên subnet này
5 subnetId.tất cả 0 BSD dùng nó cho broadcast trên
subnet này (obsolate)
172.16/12
192.168/16
Trang 19223.1.1.4 223.1.2.9
223.1.2.2 223.1.2.1
223.1.3.2 223.1.3.1
223.1.3.27
network gồm 3 subnet
subnet
Trang 21223.1.3.2 223.1.3.1
223.1.3.27
223.1.1.2
223.1.7.0
223.1.7.1 223.1.8.0
223.1.8.1 223.1.9.1
223.1.9.2
Trang 22CIDR: C lassless I nter D omain R outing
❍ Phần subnet có chiều dài tùy ý
❍ Định dạng ñịa chỉ a.b.c.d/x, x là số bit phần subnet (prefix)
11001000 00010111 00010000 00000000
subnet part
host part
200.23.16.0/23
Trang 23Lấy ñịa chỉ IP
❒ Cấu hình tĩnh tại host và router
❍ Windows: control-panel->network->configuration-> tcp/ip->properties
❍ UNIX: /etc/rc.config
❒ DHCP (Dynamic Host Configuration Protocol)
❍ Lấy tự ñộng từ DHCP server
❍ “plug-and-play”
Trang 24Dynamic Host Configuration Protocol
❒ Cho phép host lấy ñịa chỉ tự ñộng từ server trên
mạng mỗi khi ñăng nhập mạng
❍ host gửi quảng bá “DHCP discover” message
❍ DHCP server ñáp ứng bằng “DHCP offer” message
❍ host yêu cầu IP address: “DHCP request” message
❍ DHCP server gửi IP address: “DHCP ack” message
Trang 25Kịch bản DHCP client/server (1)
223.1.1.1 223.1.1.2
Một DHCP client mới ñến cần
IP address trong mạng này
Trang 26transaction ID: 654
DHCP offer
src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddrr: 223.1.2.4
transaction ID: 654 Lifetime: 3600 secs
DHCP request
src: 0.0.0.0, 68 dest:: 255.255.255.255, 67 yiaddrr: 223.1.2.4
transaction ID: 655 Lifetime: 3600 secs
DHCP ACK
src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddrr: 223.1.2.4
transaction ID: 655 Lifetime: 3600 secs
Trang 27Lấy ñịa chỉ mạng con
❒ Làm thế nào mạng lấy phần subnet của IP
address?
- lấy phần ñược gán cho nhà cung cấp trong kho
ñịa chỉ của ISP
block của ISP 11001000 00010111 00010000 00000000 200.23.16.0/20
Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23 … … ….
Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23
Trang 28Địa chỉ phân cấp: gộp tuyến
“Hãy gửi bất cứ thông tin nào liên quan ñến các ñịa chỉ bắt ñầu 200.23.16.0/20”
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
ISP 1 Organization 0
Trang 29Địa chỉ phân cấp: nhiều tuyến ñặc biệt
ISP 2 có một tuyến ñến Organization 1
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
ISP 1 Organization 0
“Hãy gửi bất cứ thông tin nào liên quan ñến các ñịa chỉ bắt ñầu 199.31.0.0/16 hay 200.23.18.0/23”
Trang 30Lấy khối ñịa chỉ
❒ Làm sao ISP lấy khối ñịa chỉ?
ICANN : I nternet C orporation for A ssigned N ames and N umbers
❍ Cấp phát ñịa chỉ
❍ Quản lý DNS
❍ Gán domain name, giải quyết tranh chấp
Trang 31NAT: Network Address Translation
10.0.0.1 10.0.0.2
10.0.0.3
10.0.0.4 138.76.29.7
local network (ví dụ, home network)
10.0.0/24 Internet
Các datagrams với nguồn hay ñích trong
Trang 32NAT: Network Address Translation
❒ Lợi ích: mạng cục bộ chỉ dùng một ñịa chỉ IP ñể ñối ngoại với thế giới bên ngoài:
❍ Không cần dải ñịa chỉ từ ISP: chỉ một ñịa chỉ cho tất
❍ Từ bên ngoài không thể thấy ñược các thiết bị bên
trong mạng cục bộ vì các thiết bị bên trong không có ñịa chỉ tường minh ñối với thế giới bên ngoài
Trang 33NAT: Network Address Translation
Thực hiện: NAT router phải:
❍ Đối với các datagram truyền ñi: thay thế (source IP address, port #) bằng (NAT IP address, new port #) Các host bên ngoài sẽ ñáp ứng dùng (NAT IP address, new port #) như là ñịa chỉ ñích
❍ Ghi nhớ (trong NAT translation table) mỗi cặp (source
IP address, port #) ứng với (NAT IP address, new
Trang 34NAT: Network Address Translation
10.0.0.1 10.0.0.2
10.0.0.3
S: 10.0.0.1, 3345 D: 128.119.40.186, 80
1
10.0.0.4 138.76.29.7
1: host 10.0.0.1 gửi datagram ñến 128.119.40.186, 80
NAT translation table WAN side addr LAN side addr
138.76.29.7, 5001 10.0.0.1, 3345
S: 128.119.40.186, 80 D: 10.0.0.1, 3345 4
S: 138.76.29.7, 5001 D: 128.119.40.186, 80
138.76.29.7, 5001
4: NAT router Thay ñổi ñịa chỉ ñích của datagram
từ 138.76.29.7, 5001 sang 10.0.0.1, 3345
Trang 35NAT: Network Address Translation
❒ 16-bit port-number field:
❍ 60,000 kết nối ñồng thời với một ñịa chỉ phía
Trang 36Vấn ñể chuyển qua NAT
❒ client muốn kết nối ñến
server với ñịa chỉ 10.0.0.1
NAT ñể chuyển yêu cầu kết
nối port cho trước ñến
server
10.0.0.1
10.0.0.4
NAT router
138.76.29.7
Client
?
Trang 37Vấn ñể chuyển qua NAT
❒ Giải pháp 2: Universal Plug and
Play (UPnP) Internet Gateway
Device (IGD) Protocol Cho
phép các host ñược NAT:
138.76.29.7
IGD
Trang 38Vấn ñể chuyển qua NAT
❒ Giải pháp 3: relaying (ñược dùng trong Skype)
❍ Client ñược NAT thiết lập kết nối ñến relay
❍ Các client bên ngoài kết nối ñến relay
❍ relay bắc cầu cho các gói giữa các kết nối
138.76.29.7
Client
10.0.0.1
NAT router
1 kết nối ñến relay ñược khởi ñộng bởi host ñược NAT
Trang 40Tổng quan ICMP (1)
(Internet Control Message Protocol)
❒ Là giao thức thuộc lớp mạng ñược dùng bởi host &
router ñể truyền thông tin mức mạng gồm
❍ Thông báo lỗi: unreachable host, network, port,
protocol
❍ Phản hồi (echo request/reply) (ñược dùng bởi
ping)
❒ Trong lớp mạng và nằm trên IP:
❍ Gói ICMP ñược mang trong IP datagram
Trang 41Tổng quan ICMP (2)
Gói IP với phần chỉ protocol
Trang 42Đo(ng go(i ICMP
❒ Type: loa)i go(i ICMP
❒ Code: Ma* nguyên nhân lô*i
❒ Checksum
❒ Phâ+n co+n la)i tu+y va+o loa)i
Trang 43Loại và code của ICMP message
Type Code description
0 0 echo reply (ping)
3 0 dest network unreachable
3 1 dest host unreachable
3 2 dest protocol unreachable
3 3 dest port unreachable
3 6 dest network unknown
3 7 dest host unknown
4 0 source quench (congestion
control - not used)
8 0 echo request (ping)
9 0 route advertisement
10 0 router discovery
Trang 44Công cu) debug: ping
❒ Người du+ng co( thê, sử du)ng ca(c công cu) trên
cơ sở ICMP ñê, châ,n ñoa(n ma)ng
❍ Ping
❍ Traceroute
❒ Du+ng ping ñê, kiê,m tra kê(t nô(i
❍ Gửi ICMP echo request
❍ Nhâ)n ICMP echo reply
❍ Mô*i go(i co( mô)t chỉ sô( go(i, cu*ng chứa RTT
Trang 45Vi( du)
Trang 46❍ Router hủy bỏ datagram
❍ Gửi về nguồn một ICMP
message (type 11, code
Trang 47Traceroute và ICMP (2)
❒ Điê+u kiê)n kê(t thu(c:
❍ Go(i ñê(n ñược ñi(ch
❍ Đi(ch tra, vê+ go(i ICMP "host unreachable" (type
3, code 3)
❍ Nguô+n nhâ)n ñược chi(nh go(i ICMP na+y
❍ Mô*i go(i lă)p la)i 3 lâ+n
Trang 48Vi( du)
Trang 50❒ Động lực : Kho ñ ị a ch ỉ 32-bit cạn kiệt.
❒ Cải tiến bổ sung :
❍ Định dạng header giúp tăng tốc ñộ xử lý và chuyển tiếp
❍ Thay ñổi header ñể tạo ñiều kiện cho QoS
❒ IPv6 datagram :
❍ Chiều dài header cố ñịnh 40 byte
❍ Đơn giản hơn
Trang 51IPv6 Header
tùy chọn
Trang 52❒ Payload length : như là số nguyên không dấu
16 bit chỉ chiều dài (byte) của phần sau
header
❒ Hop limit : giá trị này giảm 1 qua mỗi router
❒ Cấu trúc ñịa chỉ IPv6 như sau:
Trang 53Vấn ñề phân mảnh
❒ Không ñịnh hướng cho phép phân mảnh, khi
gói quá lớn sẽ dùng ICMP message báo lỗi về
nguồn.
❒ Tuy nhiên cũng có thể tổ chức phân mảnh
trong phần header mở rộng (option)
❍ NextHeader=44
❍ Phần header mở rộng cho phân mảnh:
Trang 54Các thay ñổi khác so với IPv4
❒ Checksum : h ủ y b ỏ ñ ể gi ả m th ờ i gian x ử lý tại
mỗi chặng
❒ Options: ñược phép nhưng nằm ngoài
header, ñược chỉ ñịnh bởi “Next Header”
field
❒ ICMPv6: phiên bản ICMP mới
❍ Thêm các loại thông ñiệp (message type) ví dụ,
“Packet Too Big”
❍ Các chức năng quản lý nhóm multicast
Trang 55Chuyển tiếp từ IPv4 sang IPv6
❒ Các router không thể ñược nâng cấp ñồng thời
❍ Làm thế nào mạng hoạt ñộng ñược với hỗn hợp các router IPv4 và IPv6
❒ Tunneling: IPv6 như là payload trong IPv4
datagram qua các IPv4 router
❒ Dual Stack : Hai chồng giao thức hoạt ñộng
song song, cho phép node dùng cái nào cũng
ñược
❒ Translation : chức năng thông dịch chính là
thông dịch gói giữa hai loại
Trang 57Flow: X Src: A Dest: F
data
Flow: X Src: A Dest: F
data
Src:B Dest: E
Flow: X Src: A Dest: F
data
Src:B Dest: E
A-to-B:
IPv6
E-to-F:
IPv6 B-to-C: B-to-C:
Trang 58Dual Stack
Trang 59• Các vấn ñề an ninh với NAT
❒ Khác
❍ BIS (Bump in the Stack)
- Tại lớp transport
❍ BIA (Bump in the API)
- Vài cơ chế dựa vào giải thuật SIIT (Stateless IP/ICMP
Translation algorithm) [RFC2765]
Giải thuật SIIT là cơ sở của BIS và NAT-PT
Trang 60HẾT CHƯƠNG 7