Ping là gì?
Nội dung bài viết:
1. Ping là gì?
2. Ping hoạt động như thế nào?
3. Định dạng tin nhắn Ping
4. Tiện ích Ping
5. Các khóa và biến của Ping
6. Cách sử dụng Ping
7. Bảo mật
1. Ping là gì?
-
Ping là một tiện ích dòng lệnh, có sẵn trên hầu hết mọi hệ điều hành có kết nối mạng, hoạt động như một bài kiểm tra để xem liệu thiết bị nối mạng có thể truy cập được hay không.
- Lệnh Ping gửi một yêu cầu qua mạng tới một thiết bị cụ thể. Ping thành công dẫn đến phản hồi từ máy tính được ping trở lại máy tính gốc.
-
Ping là viết tắt của gì?
-
Theo tác giả, cái tên Ping xuất phát từ thuật ngữ sonar. Trong sonar, ping là một sóng âm thanh nghe được được gửi đi để tìm một vật thể. Nếu âm thanh chạm vào vật thể, sóng âm thanh sẽ phản xạ hoặc dội ngược trở lại nguồn. Khoảng cách và vị trí của đối tượng có thể được xác định bằng cách đo thời gian và hướng của sóng âm trở lại.
-
Tương tự, lệnh ping sẽ gửi một yêu cầu phản hổi “echo request”. Nếu nó tìm thấy hệ thống đích, máy chủ từ xa sẽ gửi lại phản hồi trở lại “echo reply”. Khoảng cách (hay Số bước nhảy) đến hệ thống từ xa có thể được xác định từ phản hồi, cũng như các điều kiện ở giữa (mất gói “Pack loss” và thời gian để phản hồi “time to respond”). Trong khi tác giả của tiện ích Ping cho biết tên của chương trình chỉ đơn giản dựa trên âm thanh của sóng siêu âm, những người khác đôi khi nói rằng Ping là từ viết tắt của Packet InterNet Groper.
2. Ping hoạt động như thế nào?
- Tiện ích Ping sử dụng yêu cầu phản hồi và tin nhắn trả lời phản hồi trong Giao thức thông báo điều khiển Internet ICMP (ICMP - Internet Control Message Protocol), một phần không thể thiếu của bất kỳ mạng IP nào. Khi một lệnh Ping được đưa ra, một gói yêu cầu phản hồi sẽ được gửi đến địa chỉ được chỉ định. Khi máy chủ từ xa nhận được yêu cầu phản hồi, nó sẽ trả lời bằng một gói trả lời phản hồi.
- Theo mặc định, lệnh Ping sẽ gửi một số yêu cầu phản hồi, thường là bốn hoặc năm. Kết quả của mỗi yêu cầu phản hồi được hiển thị, cho biết liệu yêu cầu có nhận được phản hồi thành công hay không, có bao nhiêu byte được nhận phản hồi, Thời gian tồn tại TTL (TTL –
Time to Live) và thời gian nhận được phản hồi, cùng với thống kê về mất gói “
Pack Loss” và thời gian khứ hồi “
Round trip times”.
3. Định dạng tin nhắn Ping
- Yêu cầu phản hồi “
echo request” ("ping") có cấu trúc như sau:
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Type (8 = IPv4, ICMP; 128 = IPv6, ICMP6) |
Code |
Header Checksum |
Identifier |
Sequence Number |
Payload |
- Phản hồi đáp lại “
Echo reply” phải bao gồm
Payload chính xác nhận được trong yêu cầu:
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Type (0 = IPv4, ICMP; 129 = IPv6, ICMP6) |
Code |
Header Checksum |
Identifier |
Sequence Number |
Payload |
4. Tiện ích Ping
- Tiện ích Ping đã được tích hợp vào hầu hết mọi hệ điều hành có hỗ trợ mạng. Trong khi yêu cầu phản hổi “
Echo request” và phản hồi đáp lại “
echo reply” là các tin nhắn ICMP Messages, việc triển khai chính xác của tiện ích Ping sẽ khác nhau một chút giữa các nhà sản xuất.
- Ở dạng đơn giản nhất, tiện ích Ping có thể được chạy bằng lệnh ping và một điểm đến. Máy chủ từ xa “
remot host” có thể được chỉ định bằng tên hoặc địa chỉ.
ping 168.93.37.2 ping ftp.microsoft.com
- Sau đây là kết quả của một lệnh Ping đơn giản tới máy chủ đích paessler.com:
ping paessler.com
Pinging paessler.com [104.16.182.252] with 32 bytes of data:
Reply from 104.16.182.252: bytes=32 time=4ms TTL=57
Reply from 104.16.182.252: bytes=32 time=4ms TTL=57
Reply from 104.16.182.252: bytes=32 time=4ms TTL=57
Reply from 104.16.182.252: bytes=32 time=4ms TTL=57
Ping statistics for 104.16.182.252:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds: Minimum = 4ms,
Maximum = 4ms, Average = 4ms
- Tuy nhiên, tiện ích Ping cũng cung cấp một số tùy chọn có thể tùy chỉnh.
5. Các khóa và biến của Ping
- Có rất nhiều khóa “
switch” có sẵn cho lệnh Ping cho phép tùy chỉnh cài đặt mặc định cho các mục đích cụ thể hơn. Thật không may, không có sự nhất quán giữa các nền tảng cho các thiết bị chuyển mạch khác nhau. Ví dụ, Windows sử dụng -n (number) để đặt số lượng ping cần gửi, trong khi hầu hết các hệ thống Unix sử dụng -c (count).
- Dưới đây là một số ví dụ về các khóa lệnh Ping. Nói chung, sử dụng lệnh “ping -?” sẽ dẫn đến một danh sách các khóa lệnh cùng với chữ cái tương ứng để sử dụng các khóa lệnh đó trên hệ điều hành.
-
Number (hoặc Count) - đặt số lượng yêu cầu phản hổi “echo request” hoặc Ping sẽ được gửi. Theo mặc định, con số này là bốn “4” trên hầu hết các hệ thống Windows và năm “5” trên hầu hết các hệ thống Unix. Đặt một số cao hơn cho phép ping tiếp tục chạy như một cách thu thập nhiều dữ liệu hơn, chẳng hạn như để xem liệu thời gian trả lời có thay đổi hay không, hoặc là một cách đảm bảo rằng hệ thống tiếp tục phản hồi.
-
Timeout - Thời gian chờ, thay đổi thời gian chờ trước khi tiện ích đợi trả lời từ đích. Trên hệ thống Windows, giá trị mặc định là 4.000 mili giây hoặc 4 giây.
-
Size – Kích thước, thay đổi kích thước của gói ping. Giá trị mặc định trên Windows là 32 byte, nhiều hệ thống Unix / Linux mặc định là 64 byte.
-
IP4 hoặc IP6 - phản hồi với địa chỉ IPv4 hoặc IPv6. (ping -4 / ping -6 trong Windows, ping hoặc ping6 trong Linux)
-
Until Stopped – Cho đến khi dừng, tiếp tục chạy ping cho đến khi người dùng dừng lại (-t trong Windows)
- Cú pháp lệnh Ping cho Windows
-t |
Ping máy chủ được chỉ định cho đến khi dừng lại. Để dừng - gõ Control-C |
-a |
Phân giải địa chỉ thành tên máy chủ “hostname” |
-n |
Số lượng yêu cầu gửi phản hồi |
-l |
Gửi kích thước bộ đệm |
-f |
Đặt cờ không phân mảnh “Don't Fragmet flag” trong gói tin (chỉ áp dụng với IPv4) |
-i |
Đặt Time To Live |
-v |
Đặt loại dịch vụ “Type of Service” (Cài đặt không được dùng nữa) |
-r |
Ghi lại tuyến đường cho số bước nhảy (chỉ IPv4) |
-s |
Dấu thời gian “Timestamp” cho số bước nhảy (chỉ IPv4) |
-j |
Bỏ tuyến nguồn theo danh sách máy chủ (chỉ IPv4) |
-k |
Bắt buộc tuyến nguồn theo danh sách máy chủ (chỉ IPv4) |
-w |
Thời gian chờ tính bằng mili giây để đợi mỗi phản hồi đáp lại |
-R |
Sử dụng tiêu đề định tuyến “Routing Header” để kiểm tra cả tuyến phản hồi (chỉ IPv6, không được dùng nữa cho RFC 5095) |
-S |
Địa chỉ nguồn để sử dụng |
-c |
Routing compartment identifier |
-p |
Ping địa chỉ nhà cung cấp ảo hóa mạng Hyper-V Network Virtualization provider address |
-4 |
Buộc sử dụng IPv4 |
-6 |
Buộc sử dụng IPv6 |
6. Cách sử dụng Ping
- Đối với một tiện ích nhỏ, cơ bản như vậy, lệnh Ping có thể là một công cụ hữu ích trong nhiều tình huống. Là một tiện ích dựa trên dòng lệnh, Ping tự cho phép sử dụng dễ dàng trong các tập lệnh khác nhau, cho phép chạy nhiều Ping và được ghi lại cho mọi cách sử dụng. Ví dụ: đầu ra của lệnh Ping có thể dễ dàng được chuyển vào tệp văn bản để xem lại sau này.
-
Khắc phục sự cố với Ping
-
Có lẽ cách sử dụng phổ biến nhất của tiện ích ping là khắc phục sự cố. Khi cố gắng sử dụng các ứng dụng hoặc hệ thống qua mạng, điều quan trọng nhất cần biết là liệu có kết nối thực sự hoạt động hay không. Một loạt các lệnh Ping có thể giúp xác định vấn đề là gì.
-
Ping nhanh theo địa chỉ IP sẽ xác nhận rằng hệ thống đang bật, có kết nối và hai máy có thể nói chuyện với nhau.
Ping 172.168.9.13
-
Nếu Ping thành công theo tên và địa chỉ IP, nhưng thời gian phản hồi lâu, có thể có vấn đề về định tuyến “routing”, tốc độ mạng “network speed” hoặc tắc nghẽn “congestion”. Ngay cả những lần Ping không thành công cũng có thể cung cấp thông tin khắc phục sự cố có giá trị.
-
Nếu Ping theo địa chỉ IP thành công, nhưng Ping theo tên không thành công thì có vấn đề về phân giải tên “Name resolution”. Nếu ping hoàn toàn không thành công, bạn có thể thử ping các phần khác của mạng để cô lập vấn đề. Ping thành công cổng mặc định xác nhận rằng kết nối mạng đang hoạt động, nhưng có điều gì đó đang can thiệp vào kết nối với hệ thống từ xa.
-
Nếu bạn có thể ping thành công với cùng một mạng con của hệ thống từ xa, nhưng không phải chính hệ thống đích, thì khả năng kết nối mạng của máy chủ từ xa đang bị nghi ngờ. Nếu cổng mặc định không thể ping, nhưng địa chỉ loopback (127.0.0.1) dẫn đến ping thành công, thì bạn sẽ biết rằng giao diện mạng đang hoạt động, nhưng không có kết nối với mạng.
-
Lỗi ping
-
Nếu ping không nhận được phản hồi từ máy chủ đích, hầu hết các triển khai ping không hiển thị gì hoặc thông báo hết thời gian chờ. Kết quả có thể trông như thế này, ví dụ:
Pinging 121.242.124.9 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
-
Công cụ khám phá
-
Ping có thể được sử dụng như một công cụ khám phá nhanh chóng và đơn giản. Vì hầu như bất kỳ thiết bị được kết nối mạng nào cũng sẽ phản hồi với một ping, ví dụ: ping một dải địa chỉ sẽ cho phép quản trị viên tìm thấy tất cả các thiết bị được đính kèm trong dải đó, bất kể loại thiết bị hoặc hệ điều hành.
-
Giám sát mạng
-
Ping có thể được sử dụng để theo dõi tính khả dụng của các thiết bị trong mạng. Lệnh ping chạy như một tác vụ đã lên lịch có thể cung cấp tính năng thăm dò thô sơ của bất kỳ máy tính hoặc thiết bị được nối mạng nào mà không cần cài đặt thêm bất kỳ tác nhân phần mềm “gọi là các Software Agents” nào và không cần mở thêm cổng. Điều cơ bản nhất của bất kỳ màn hình tăng / giảm nào có thể được thực hiện bằng cách chạy ping với tùy chọn "hạy cho đến khi dừng “Run Until Stopped”. Khi ping bắt đầu trở nên không thành công, hệ thống có vấn đề.
-
Rõ ràng, các giải pháp này được cải thiện rất nhiều nhờ việc bổ sung một công cụ giám sát như PRTG, trong khi sử dụng các lệnh ping cơ bản, không phụ thuộc vào ai đó đang xem đầu ra hoặc chuyển đầu ra vào một số loại bản ghi.
-
Cảm biến Ping tiêu chuẩn chạy các lệnh ping trong chế độ nền “Background”. Chúng có thể được định cấu hình để chạy trong các khoảng thời gian cụ thể hoặc để đáp ứng với một sự kiện khác. Ví dụ, nếu một cảm biến báo lỗi kết nối, một ping có thể xác định xem có còn kết nối mạng hay không. Hoặc, các màn hình có thể được cấu hình để cảnh báo quản trị viên nếu thời gian ping quá lâu hoặc nếu mất quá nhiều gói.
-
Một cảm biến dựa trên ping thú vị khác là Cloud Ping Sensor, cảm biến ping giám sát hệ thống từ một đám mây hệ thống phân tán từ xa “Remote Cloud of Distributed Systems”. Điều này cung cấp cảnh báo quan trọng, nhưng khó phát hiện, khi mọi thứ đang chạy tốt về phía bạn, nhưng vì bất kỳ lý do gì, hệ thống của bạn không thể truy cập được từ bên ngoài bởi người dùng hoặc khách hàng từ xa.
7. Bảo mật
- Chỉ cần biết một hệ thống tồn tại và được kết nối với mạng có thể là đủ thông tin để kẻ tấn công bắt đầu. Phân tích cẩn thận các phản hồi ping có thể mang lại thông tin bổ sung như hệ điều hành mà mục tiêu đang chạy, vị trí đặt máy, v.v.
- Nhiều công cụ hack tận dụng lợi thế của việc "đi bộ trong phạm vi -
Walking The Range", bằng cách ping mọi địa chỉ IP trên mạng được nhắm mục tiêu để có được danh sách những hệ thống nào có thể truy cập và sẽ phản hồi. Do đó, nhiều tường lửa được cấu hình để chặn các yêu cầu ping từ các mạng không đáng tin cậy.