Làm thế nào để giao tiếp với một thiết bị có địa chỉ IP IP 0.0.0.0 được gán?


20

Tôi có một thiết bị công nghiệp chạy trên hệ điều hành khá cơ bản có tên là VxWorks . Tôi thường liên lạc với hệ thống cho các mục đích khắc phục sự cố bằng cách đặt IP IPv4 của tôi ở cùng phạm vi với IP cục bộ và sau đó chạy phần mềm chẩn đoán.

Một vài tuần trước, tôi thấy rằng vì một số lý do kỳ lạ, địa chỉ IP cục bộ của hệ thống tự đặt 0.0.0.0. Bây giờ tôi muốn đi vào chẩn đoán để thay đổi nó nhưng PC của tôi sẽ không cho phép thiết lập IP bắt đầu 0.

Có cách nào khác để liên lạc với thiết bị có IP cục bộ 0.0.0.0sử dụng PC Windows không.

Không có cách nào để đặt lại thiết bị về cài đặt mặc định của nhà sản xuất mà không gửi lại cho nhà sản xuất.


14
Như nhà nước khác 0.0.0.0không phải là một địa chỉ có thể định tuyến. Nhiều phần mềm liên kết để 0.0.0.0cho phép phần mềm đó liên kết với bất kỳ địa chỉ IP nào được gán cho giao diện mạng. Điều này giúp cho việc cài đặt thiết bị DHCP trở nên dễ dàng hơn, ví dụ như cài đặt DHCP trên thiết lập DHCP và bạn chỉ cần kết nối bằng cách lấy địa chỉ IP của thiết bị và đó là địa chỉ đó. Câu hỏi lớn của tôi cho bạn là tại sao bạn lại đặt IP IPv4 của máy của mình ở cùng phạm vi với IP cục bộ để chạy phần mềm chẩn đoán? Làm cho không có ý nghĩa. Bạn chỉ cần lấy địa chỉ IP của thiết bị và kết nối với địa chỉ đó. Điều đó nói rằng, tôi có một ý tưởng. Đăng một câu trả lời.
JakeGould

VX Works có thể không chạy DHCP và do đó có thể cần một địa chỉ IP tĩnh, một cái gì đó bạn sẽ phải thực hiện trong nội bộ trên VX Works. Ngoài ra, bất kỳ phần mềm hoặc giao diện nào trên PC của bạn nói chuyện với máy VX Works đó đều phải biết địa chỉ IP đó. Bạn sẽ phải xác minh rằng tất cả các máy cần nói chuyện với máy VX Works của bạn đều biết địa chỉ IP của nó. Nó có thể tự động điền hoặc bạn có thể phải nhập thủ công. Địa chỉ all-0 hoạt động như một cổng mặc định, tuy nhiên, nếu máy VX Works của bạn và máy chủ của bạn, nó muốn nói chuyện với cả hai có cổng chung đó.
Shankensteinium

7
Làm thế nào bạn có thể xác định rằng thiết bị đang sử dụng địa chỉ IP là 0,0.0.0? Bạn đã sử dụng một phần mềm có thể giao tiếp với thiết bị qua mạng hay có Giao diện người máy cơ bản (HMI) trên thiết bị để hiển thị cho bạn địa chỉ IP không? Ngoài ra, để có được câu hỏi rõ ràng, bạn đã thử tắt nó đi và sau đó xem lại nếu nó chọn một địa chỉ lành mạnh chưa?
Sam Skuce

5
0.0.0.0Không thể tự gán địa chỉ cho chính nó nếu nó có ngăn xếp IP tuân thủ tiêu chuẩn. Điều này để lại một vài tùy chọn: 1. Nó hiển thị 0.0.0.0như một cách để báo hiệu rằng nó không thể gán địa chỉ IP. 2. Nó có một ngăn xếp IP bị hỏng mà bằng cách nào đó quản lý để tự gán 0.0.0.0. Tôi không biết đủ về VxWorks để nói ai trong hai người có khả năng nhất. Nếu nó thực sự đã gán địa chỉ, 0.0.0.0bạn cần một ngăn xếp IP bị hack để liên lạc với nó. Nhưng điều đó sẽ không làm được gì nhiều nếu nó không được chỉ định một địa chỉ.
kasperd

4
Làm thế nào bạn xác định nó có địa chỉ IP 0.0.0.0? Nếu bạn đang ở một thiết bị đầu cuối, bạn có thể sử dụng nó để đặt IP.
CramerTV

Câu trả lời:


23

0.0.0.0không phải là một địa chỉ IP hợp lệ. RFC1700 (a) nói rằng 0.0.0.0/8( 0.anything.anything.anything) chỉ được bảo lưu dưới dạng địa chỉ nguồn.

Thông thường, bạn sẽ thấy các hệ thống và ứng dụng liên kết các cổng với 0.0.0.0nghĩa là cổng có thể truy cập được từ bất kỳ giao diện nào.

Tôi không quen thuộc với VxWrks nhưng tôi sẽ cho rằng có một cách để chỉ định IP cục bộ để giao tiếp với các thiết bị máy tính khác.

WindRiver có nhiều hướng dẫn về cách định cấu hình thiết lập IP.


Nếu 0.0.0.0chỉ có giá trị như một nguồn , thì các cổng bị ràng buộc như thế nào 0.0.0.0? Tôi chắc chắn tôi đang thiếu một chi tiết nhưng điều này nghe có vẻ mâu thuẫn.
Thuyền trưởng Man

20
@CaptainMan: Bạn đang nhầm lẫn một khía cạnh của API socket với một khía cạnh của giao thức IP . Binding 0.0.0.0là một thứ cấp API để chấp nhận các gói / kết nối được gửi đến bất kỳ địa chỉ được cấu hình cục bộ nào. Nó không liên quan đến các gói được gửi đến 0.0.0.0bất cứ nơi nào ở cấp độ giao thức.
R ..

1
@CaptainMan: 0.0.0.0được coi là một chuỗi rỗng. Nếu bạn thiết lập máy chủ của mình để chấp nhận kết nối 0.0.0.0thì nó sẽ chấp nhận kết nối từ bất kỳ địa chỉ IP nào - đó là điều gì 0.0.0.0có nghĩa. Nếu bạn không liên kết với 0.0.0.0thì máy chủ của bạn sẽ CHỈ chấp nhận kết nối từ một địa chỉ IP duy nhất và sẽ từ chối kết nối từ bất kỳ máy nào khác trên mạng. Hãy nghĩ về ràng buộc không phải là 0,0.0.0 như một loại tường lửa tích hợp
slebetman

13

Bạn có thể lừa PC của bạn nghĩ rằng thiết bị có địa chỉ IP thực. Nhưng bạn cần địa chỉ vật lý (còn được gọi là địa chỉ MAC), điều thú vị với 6 trường hai chữ số. Bạn làm điều đó bằng cách thêm nó vào bảng độ phân giải arp của bạn. Trong Windows, mở terminal cmd và sử dụng arp.

arp -s <IP address> <physical address>

Tất nhiên, bạn cần một địa chỉ IP duy nhất và trong mạng của bạn. Nếu không, ngăn xếp sẽ định tuyến lại ở một nơi khác. Nếu bạn đến điểm này, bạn sẽ có thể truy cập thiết bị. Cơ sở hạ tầng mạng sẽ định tuyến theo địa chỉ vật lý.

Trong Linux là khá nhiều như nhau. Mở một thiết bị đầu cuối, sử dụng arp.

Nó có thể không hoạt động !! Một số thiết bị chỉ trả lời IP của riêng họ. Nhưng tôi đoán đó không phải là trường hợp của bạn.


1
Tôi quan tâm để biết nếu điều này làm việc. Chắc chắn là một mẹo hay.
kẻ đánh cắp

@BaileyS oh nó hoạt động tốt trong các trường hợp bình thường. Bạn chỉ cần chèn ghi đè thủ công để phân giải địa chỉ vào bảng tự động. Liệu nó có giúp op hay không là một câu hỏi khác
Gnudiff

2
Nếu bây giờ bạn có thể GỬI công cụ đến địa chỉ này, điều đó không có nghĩa là bạn có thể xử lý chính xác TRẢ LỜI nếu có ...
rackandboneman

1
Hầu hết các iptables đều ở trên máy định tuyến cấp thấp nhất, vì vậy có thể có quyền truy cập hạn chế vào loại công việc đó ...
rackandboneman

1
@BaileyS Nó không và nó không. Một thiết bị có ngăn xếp IP bình thường không nên. Bảng định tuyến sẽ bỏ qua các địa chỉ gói đến các số IP khác với số của chúng hoặc không biết cách định tuyến. Trong trường hợp này, OP đang hỏi về một thiết bị công nghiệp nhỏ. Nhiều khả năng, nó không có ngăn xếp IP được triển khai. Nó chỉ trả lời bất kỳ gói nào đạt được nó. Tôi biết điều đó bởi vì tôi đã thấy và sử dụng nhiều như thế. Để tiết kiệm chi phí, họ không có bảng điều khiển hoặc giao diện để cấu hình. Gửi cho họ một gói có IP "được đề xuất" khớp với địa chỉ MAC là đủ.
Gabe Mizuka

12

Các 0.0.0.0địa chỉ IP là tốt nhưng tôi sẽ đoán rằng cái gì khác đã thay đổi trên mạng mà thiết bị trên để chặn zero-cấu hình giao thông mạng từ cho phép phần mềm chẩn đoán của bạn để dễ dàng kết nối với thiết bị đó.

Như những người khác, trạng thái trong câu trả lời của họ 0.0.0.0là một địa chỉ IP không thể định tuyến thường được phần mềm sử dụng để liên kết trên bất kỳ địa chỉ IP nào trên tất cả các giao diện mạng trên thiết bị. Điều này về cơ bản có nghĩa là:

Này Hey Tôi là một phần mềm và sẽ chấp nhận mọi kết nối được thực hiện với bất kỳ địa chỉ IP được gán nào trên máy tôi đang chạy.

Vì vậy, nếu thiết bị sử dụng DHCP DHCP để lấy địa chỉ IP của chính nó cho các giao diện được kết nối của nó và nhận được địa chỉ được gán 1.2.3.4thì bạn có thể kết nối với thiết bị đó tại 1.2.3.4. Và nếu địa chỉ đó thay đổi với 5.6.7.8thiết bị sẽ vui vẻ cho phép bạn kết nối với nó thông qua 5.6.7.8.

Các 0.0.0.0dường như là một cái gì đó bạn phát hiện ra nhưng không phải là nguyên nhân của vấn đề. Thay vào đó, tôi là ý kiến ​​của tôi, vấn đề bạn gặp phải được tiết lộ khi bạn nêu:

Tôi thường liên lạc với hệ thống để khắc phục sự cố bằng cách đặt IP IPv4 của mình ở cùng phạm vi với IP cục bộ và sau đó chạy phần mềm chẩn đoán.

Đầu tiên, điều đó có vẻ kỳ lạ. Tại sao bạn cần thay đổi địa chỉ IP cục bộ của máy để kết nối với thiết bị VxWorks? Bạn có nên kết nối trực tiếp với địa chỉ IP của thiết bị không?

Chà, khi bạn nói rõ tất cả những gì tôi có thể nghĩ là thiết bị và phần mềm chẩn đoán, có thể hoạt động bằng cách sử dụng một số loại thiết lập mạng cấu hình không . Có nghĩa là, thiết bị phát sóng trên mạng và phần mềm chẩn đoán được thiết kế để tìm kiếm các chương trình phát sóng thiết bị này để giúp thiết bị kết nối với thiết bị mà không cần biết địa chỉ IP chính xác.

Đây là loại công cụ kết nối mạng không cấu hình trên nền tảng trực tuyến, là một tiện ích cho đến khi nó trở nên đau đầu.

Tôi đoán đầu tiên là bạn có thể kết nối trực tiếp với thiết bị nếu bạn có thể xác định địa chỉ IP nào được gán cho thiết bị đó. Và suy nghĩ nhiều hơn nữa, tôi cá rằng lý do bạn có thể kết nối với nó trong quá khứ, nhưng không phải bây giờ, có thể phải thực hiện một số thay đổi mạng đã chặn các cổng mà thiết lập mạng cấu hình không của thiết bị đang phát. Cổng nào có thể là? Không chắc chắn. Nhưng nếu lưu lượng cấu hình bằng 0 không được định tuyến qua mạng, thì đó là lý do tại sao bạn không thể kết nối với thiết bị và 0.0.0.0địa chỉ IP không liên quan gì đến nó.


6

0.0.0.0là một địa chỉ không thể tin được. Không có cách nào bạn có thể định tuyến đến nó bởi vì "nó không thực sự tồn tại", hoặc thực sự, "có thể tồn tại ở quá nhiều nơi".

Nó có thể có ý nghĩa hơi khác nhau tùy thuộc vào việc nó là máy chủ hay tuyến đường.

Là một tuyến đường, không áp dụng trong trường hợp này, nó có nghĩa là "tuyến đường mặc định" mà không có hướng dẫn thêm có nghĩa là cổng mặc định hoặc "bất kỳ tuyến đường nào của tôi" hoặc tương tự như 127.0.0.1

Là một máy chủ lưu trữ, sau đó đáng chú ý nhất trong trường hợp của bạn, nó là một trong hai; như đã giải thích trên Wikipedia :

Địa chỉ mà máy chủ lưu trữ là của chính nó khi nó chưa được gán địa chỉ. Chẳng hạn như khi gửi gói DHCPDISCOVER ban đầu khi sử dụng DHCP.

Địa chỉ mà máy chủ tự gán cho chính nó khi yêu cầu địa chỉ qua DHCP không thành công, miễn là ngăn xếp IP của máy chủ hỗ trợ điều này.

Giả sử nó thường sử dụng DHCP, một vài điều cần thử, thay vì thiết lập lại hoàn toàn - 'tắt và bật lại' hoặc chỉ rút phích cắm mạng, đợi một lát, cắm lại. Nó có thể yêu cầu DHCP mới địa chỉ nhà.

Ngoài ra, tất nhiên, đảm bảo rằng nó thực sự có thể nhìn thấy máy chủ DHCP của nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.