วิธีสื่อสารกับอุปกรณ์ที่มีที่อยู่ IP“ 0.0.0.0” ที่กำหนดไว้


20

ฉันมีชิ้นส่วนของอุปกรณ์อุตสาหกรรมที่ทำงานบนระบบปฏิบัติการพื้นฐานสวยที่เรียกว่าVxWorks ฉันมักจะสื่อสารกับระบบเพื่อวัตถุประสงค์ในการแก้ไขปัญหาโดยการตั้งค่า IPv4 IP ของฉันให้อยู่ในช่วงเดียวกันกับ IP ในเครื่องแล้วเรียกใช้ซอฟต์แวร์วินิจฉัย

ไม่กี่สัปดาห์ที่ผ่านมาผมพบว่าสำหรับเหตุผลที่แปลกบาง addreess ท้องถิ่น IP 0.0.0.0ของระบบการกำหนดตัวเองไป ตอนนี้ผมต้องการที่จะได้รับในการวินิจฉัยที่จะเปลี่ยนมัน 0แต่คอมพิวเตอร์ของฉันจะไม่อนุญาตให้มีการตั้งค่าเริ่มต้นในทรัพย์สินทางปัญญา

มีวิธีอื่นในการสื่อสารกับอุปกรณ์ที่มี IP ในพื้นที่0.0.0.0โดยใช้ windows PC หรือไม่

ไม่มีวิธีรีเซ็ตอุปกรณ์ให้เป็นการตั้งค่าเริ่มต้นจากโรงงานโดยไม่ส่งอุปกรณ์กลับไปที่ผู้ผลิต


14
เนื่องจากสถานะอื่น0.0.0.0ไม่ได้เป็นที่อยู่ที่สามารถกำหนดเส้นทางได้ ซอฟต์แวร์หลายชิ้นเชื่อมเข้ากับ0.0.0.0เพื่ออนุญาตให้ซอฟต์แวร์นั้นเชื่อมโยงกับที่อยู่ IP ใดก็ตามที่ได้รับมอบหมายให้กับส่วนต่อประสานเครือข่าย สิ่งนี้ทำให้ง่ายขึ้น - ตัวอย่างเช่น - เพื่อวางอุปกรณ์บนการตั้งค่า DHCP และคุณเพียงเชื่อมต่อโดยรับที่อยู่ IP ของอุปกรณ์และนั่นคือสิ่งนั้น คำถามใหญ่ของฉันคือทำไมคุณตั้งค่า IPv4 IP ของเครื่องให้อยู่ในช่วงเดียวกันกับ IP ในเครื่องของคุณเพื่อรันซอฟต์แวร์วินิจฉัย? ทำให้รู้สึกไม่ คุณควรรับที่อยู่ IP ของอุปกรณ์และเชื่อมต่อกับที่อยู่นั้น ที่กล่าวว่าฉันมีความคิด โพสต์คำตอบ
JakeGould

VX Works อาจไม่ทำงาน DHCP และอาจต้องมีที่อยู่ IP แบบคงที่สิ่งที่คุณต้องทำภายใน VX Works นอกจากนั้นซอฟต์แวร์หรืออินเทอร์เฟซใด ๆ บนพีซีของคุณที่พูดคุยกับเครื่อง VX Works นั้นจะต้องรู้ว่าที่อยู่ IP นั้น คุณจะต้องตรวจสอบว่าเครื่องทั้งหมดที่ต้องคุยกับเครื่อง VX Works ทราบที่อยู่ IP หรือไม่ อาจป้อนอัตโนมัติหรือคุณอาจต้องป้อนด้วยตนเอง ที่อยู่ all-0s ทำงานเป็นเกตเวย์เริ่มต้นอย่างไรก็ตามหากเครื่อง VX Works และโฮสต์ของคุณต้องการพูดคุยกับทั้งคู่มีเกตเวย์นั้นเหมือนกัน
Shankensteinium

7
คุณสามารถระบุได้อย่างไรว่าอุปกรณ์นั้นใช้ที่อยู่ IP เป็น 0.0.0.0 คุณใช้ซอฟต์แวร์บางส่วนที่สามารถสื่อสารกับอุปกรณ์ผ่านเครือข่ายหรือมี Human-Machine Interface (HMI) พื้นฐานบนอุปกรณ์เพื่อแสดงที่อยู่ IP หรือไม่ นอกจากนี้เพื่อให้ได้คำถามที่ชัดเจนออกไปคุณลองปิดแล้วเปิดใหม่อีกครั้งเพื่อดูว่ามีที่อยู่ที่มีสติอยู่หรือไม่?
Sam Skuce

5
ไม่สามารถกำหนดที่อยู่ของตนเอง0.0.0.0ได้หากมี IP สแต็คที่สอดคล้องกับมาตรฐาน วิธีนี้มีสองตัวเลือก: 1.จะแสดง0.0.0.0เป็นวิธีการส่งสัญญาณว่าไม่สามารถกำหนดที่อยู่ IP ได้ 2.มันมีกอง IP 0.0.0.0เสียซึ่งการจัดการอย่างใดที่จะกำหนดเอง ฉันไม่รู้เกี่ยวกับ VxWorks มากพอที่จะบอกได้ว่าทั้งสองอย่างนี้มีโอกาสมากที่สุด ถ้ามันมีที่อยู่ที่กำหนดไว้อย่างแท้จริง0.0.0.0คุณต้องมี IP สแต็คที่แฮ็กเพื่อสื่อสารกับมัน แต่นั่นจะไม่ทำได้ดีมากหากยังไม่ได้กำหนดที่อยู่เลย
kasperd

4
คุณทราบได้อย่างไรว่ามีที่อยู่ IP 0.0.0.0 หากคุณอยู่ที่เทอร์มินัลคุณสามารถใช้เพื่อตั้งค่า IP
CramerTV

คำตอบ:


23

0.0.0.0ไม่ใช่ที่อยู่ IP ที่ถูกต้อง RFC1700 (a) ระบุว่า0.0.0.0/8( 0.anything.anything.anything) สงวนไว้เป็นแหล่งที่อยู่เท่านั้น

โดยปกติคุณจะเห็นระบบและแอปพลิเคชันผูกพอร์ต0.0.0.0ซึ่งหมายความว่าพอร์ตนั้นสามารถเข้าถึงได้จากส่วนต่อประสานใด ๆ

ฉันไม่คุ้นเคยกับ VxWrks แต่ฉันคิดว่ามีวิธีระบุ IP ในตัวเครื่องสำหรับเชื่อมต่อกับอุปกรณ์คอมพิวเตอร์อื่น ๆ

WindRiver มีคู่มือมากมายเกี่ยวกับวิธีกำหนดค่าการตั้งค่า IP


หาก0.0.0.0ถูกต้องในฐานะที่เป็นแหล่งที่มาแล้วพอร์ตจะผูกไว้กับ0.0.0.0เข้าถึงได้อย่างไร? ฉันแน่ใจว่าฉันไม่มีรายละเอียด แต่ดูเหมือนว่าจะขัดแย้งกัน
Captain Man

20
@CaptainMan: คุณกำลังสับสนแง่มุมของที่ซ็อกเก็ต APIกับทุกแง่มุมของที่IP โปรโตคอล การ0.0.0.0เชื่อมโยงเป็นสิ่งที่ระดับ API เพื่อยอมรับแพ็กเก็ต / การเชื่อมต่อที่ส่งไปยังที่อยู่ที่กำหนดไว้ในเครื่อง ไม่เกี่ยวข้องกับแพ็คเก็ตที่ส่งไป0.0.0.0ที่ใดก็ได้ในระดับโปรโตคอล
..

1
@CaptainMan: 0.0.0.0ถือเป็นสตริงว่าง หากคุณตั้งค่าเซิร์ฟเวอร์ของคุณให้ยอมรับการเชื่อมต่อจาก0.0.0.0นั้นจะยอมรับการเชื่อมต่อจากที่อยู่ IP ใด ๆนั่นคือความ0.0.0.0หมาย หากคุณไม่เชื่อมโยงกับ0.0.0.0เซิร์ฟเวอร์ของคุณจะยอมรับการเชื่อมต่อจากที่อยู่ IP เดียวและจะปฏิเสธการเชื่อมต่อจากเครื่องอื่น ๆ ในเครือข่าย คิดว่าการผูกมัดที่ไม่ใช่ 0.0.0.0 เป็นไฟร์วอลล์ในตัว
slebetman

13

คุณสามารถหลอกให้พีซีคิดว่าอุปกรณ์นั้นมีที่อยู่ IP จริง แต่คุณต้องการที่อยู่ทางกายภาพ (หรือที่รู้จักกันว่าที่อยู่ MAC) ซึ่งเป็นสิ่งที่มีเขตข้อมูลสองหกหกหลัก คุณทำได้โดยเพิ่มลงในตารางความละเอียด arp ของคุณ ใน Windows เปิดเทอร์มินัล cmd และใช้ arp

arp -s <IP address> <physical address>

แน่นอนว่าคุณต้องมีที่อยู่ IP ที่ไม่ซ้ำใครและในเครือข่ายของคุณ มิฉะนั้นสแต็คจะเปลี่ยนเส้นทางที่อื่น หากคุณมาถึงจุดนี้คุณควรจะสามารถเข้าถึงอุปกรณ์ได้ โครงสร้างพื้นฐานเครือข่ายจะกำหนดเส้นทางตามที่อยู่ทางกายภาพ

ใน Linux นั้นค่อนข้างเหมือนกัน เปิดเทอร์มินัลใช้ arp

มันอาจไม่ทำงาน !! อุปกรณ์บางอย่างตอบเฉพาะกับ IP ของตัวเอง แต่ฉันเดาว่าไม่ใช่กรณีของคุณ


1
ฉันสนใจที่จะทราบว่าการทำงานนี้ เคล็ดลับเด็ดแน่นอน
trognanders

@ BaileyS โอ้มันใช้ได้ในสถานการณ์ปกติ คุณเพียงแค่ใส่การแทนที่ด้วยตนเองสำหรับการแก้ไขที่อยู่ลงในตารางอัตโนมัติ ไม่ว่าจะช่วย op เป็นคำถามที่แตกต่างหรือไม่
Gnudiff

2
หากตอนนี้คุณสามารถส่งข้อมูลไปยังที่อยู่นี้ไม่ได้หมายความว่าคุณสามารถจัดการการตอบสนองได้อย่างถูกต้องหากมี ...
rackandboneman

1
ส่วนใหญ่ iptables อยู่เหนือระดับต่ำสุดเส้นทางเครื่องจักรดังนั้นอาจมีการ จำกัด การเข้าถึงชนิดของผลงานที่ ...
rackandboneman

1
@ BaileyS มันทำและมันไม่ได้ อุปกรณ์ที่มี IP สแต็กปกติไม่ควร ตารางเส้นทางจะไม่สนใจที่อยู่ของแพ็กเก็ตไปยังหมายเลข IP อื่นที่ไม่ใช่ของพวกเขาเองหรือมันไม่รู้เส้นทาง ในกรณีนี้ OP กำลังถามเกี่ยวกับอุปกรณ์อุตสาหกรรมขนาดเล็ก เป็นไปได้มากว่าจะไม่มีการใช้ IP สแต็ก มันแค่ตอบแพ็คเก็ตใด ๆ ที่มาถึงมัน ฉันรู้เพราะฉันเห็นและใช้หลายอย่างเช่นนั้น เพื่อประหยัดค่าใช้จ่ายพวกเขาไม่มีแผงควบคุมหรืออินเตอร์เฟสสำหรับการกำหนดค่า การส่งแพ็กเก็ตด้วย IP "แนะนำ" ที่ตรงกับที่อยู่ MAC นั้นเพียงพอแล้ว
Gabe Mizuka

12

ที่0.0.0.0อยู่ IP นั้นใช้ได้ แต่ฉันเดาว่ามีสิ่งอื่นที่เปลี่ยนแปลงบนเครือข่ายที่อุปกรณ์นั้นปิดกั้นการรับส่งข้อมูลเครือข่ายที่ไม่มีการกำหนดค่าจากการอนุญาตให้ซอฟต์แวร์วินิจฉัยของคุณเชื่อมต่อกับอุปกรณ์นั้นได้อย่างง่ายดาย

ในขณะที่คนอื่น ๆ รัฐในคำตอบของพวกเขา0.0.0.0คือที่อยู่ IP ที่ไม่สามารถกำหนดเส้นทางได้ซึ่งมักใช้โดยซอฟต์แวร์เพื่อผูกกับที่อยู่ IP ใด ๆ บนอินเทอร์เฟซเครือข่ายทั้งหมดบนอุปกรณ์ โดยทั่วไปหมายถึง:

“ ฉันเป็นซอฟต์แวร์ชิ้นหนึ่งและจะยอมรับการเชื่อมต่อใด ๆ ที่ทำกับที่อยู่ IP ที่กำหนดไว้ในเครื่องที่ฉันใช้งานอยู่”

ดังนั้นหากอุปกรณ์ใช้ DHCP เพื่อรับที่อยู่ IP ของตัวเองสำหรับอินเทอร์เฟซที่เชื่อมต่อและรับที่อยู่ที่ได้รับมอบหมายจาก1.2.3.4นั้นคุณสามารถเชื่อมต่อกับอุปกรณ์1.2.3.4นั้นได้ที่ และถ้าอยู่ว่าการเปลี่ยนแปลงอุปกรณ์ที่จะช่วยให้คุณมีความสุขที่จะเชื่อมต่อกับมันผ่าน5.6.7.85.6.7.8

0.0.0.0ดูเหมือนว่าจะเป็นสิ่งที่คุณค้นพบ แต่ไม่ได้เป็นสาเหตุของปัญหา ค่อนข้างฉันเป็นความเห็นของฉันปัญหาที่คุณได้รับการเปิดเผยเมื่อคุณระบุ:

“ ฉันมักจะสื่อสารกับระบบเพื่อจุดประสงค์ในการแก้ไขปัญหาโดยการตั้งค่า IPv4 IP ของฉันให้อยู่ในช่วงเดียวกันกับ IP ในเครื่องแล้วเรียกใช้ซอฟต์แวร์วินิจฉัย”

ครั้งแรกที่ดูเหมือนแปลก ทำไมคุณต้องเปลี่ยนที่อยู่ IP ในเครื่องของคุณเพื่อเชื่อมต่อกับอุปกรณ์ VxWorks คุณไม่ควรเชื่อมต่อโดยตรงกับที่อยู่ IP ของอุปกรณ์ใช่ไหม

เมื่อคุณพูดถึงสิ่งนี้ทั้งหมดที่ฉันคิดได้ก็คืออุปกรณ์และซอฟต์แวร์การวินิจฉัยอาจทำงานโดยใช้การตั้งค่าเครือข่ายแบบไม่มีการกำหนดค่าบางอย่าง ความหมายอุปกรณ์เผยแพร่บนเครือข่ายและซอฟต์แวร์วินิจฉัยถูกออกแบบมาเพื่อค้นหาอุปกรณ์เหล่านี้เพื่อช่วยให้อุปกรณ์เชื่อมต่อกับอุปกรณ์โดยไม่ทราบที่อยู่ IP ที่ถูกต้อง

สิ่งต่างๆของเครือข่ายการกำหนดค่าแบบ zero-configuration ชนิดนี้จะสะดวกสบายจนกระทั่งมันจะปวดหัว

การเดาครั้งแรกของฉันคือคุณสามารถเชื่อมต่อกับอุปกรณ์ได้โดยตรงหากคุณสามารถกำหนดที่อยู่ IP ที่กำหนดไว้ได้ และคิดมากขึ้นฉันพนันได้เลยว่าเหตุผลที่คุณสามารถเชื่อมต่อกับมันได้ในอดีต - แต่ไม่ใช่ตอนนี้ - อาจต้องเกี่ยวข้องกับการเปลี่ยนแปลงเครือข่ายบางอย่างที่ปิดกั้นพอร์ตที่การตั้งค่าเครือข่ายการกำหนดค่าศูนย์ของอุปกรณ์นั้นกำลังออกอากาศ พอร์ตอะไรที่อาจจะเป็น? ไม่มั่นใจ แต่ถ้าปริมาณการใช้งานที่ไม่มีการกำหนดค่าศูนย์ไม่ได้ถูกส่งผ่านเครือข่ายนั่นคือสาเหตุที่คุณไม่สามารถเชื่อมต่อกับอุปกรณ์และที่0.0.0.0อยู่ IP ไม่เกี่ยวข้องกับมัน


6

0.0.0.0เป็นที่อยู่ที่ไม่สามารถจัดการได้ ไม่มีวิธีที่คุณสามารถกำหนดเส้นทางได้เนื่องจาก "ไม่มีอยู่จริง" หรือที่จริงแล้ว "มีอยู่ในหลายที่มากเกินไป"

มันอาจมีความหมายแตกต่างกันเล็กน้อยขึ้นอยู่กับว่าเป็นโฮสต์หรือเส้นทาง

เป็นเส้นทางที่ไม่สามารถใช้ได้ในกรณีนี้มันหมายถึง "เส้นทางเริ่มต้น" ซึ่งไม่มีคำแนะนำเพิ่มเติมหมายถึงเกตเวย์เริ่มต้นหรือ "เส้นทางใด ๆ ของฉัน" หรือคล้ายกับ 127.0.0.1

ในฐานะโฮสต์แล้วที่เด่นชัดที่สุดในกรณีของคุณก็คือทั้ง; ตามที่อธิบายไว้ใน Wikipedia :

ที่อยู่ที่โฮสต์อ้างว่าเป็นของตัวเองเมื่อยังไม่ได้รับที่อยู่ เช่นเมื่อส่งแพ็กเก็ต DHCPDISCOVER เริ่มต้นเมื่อใช้ DHCP

ที่อยู่ที่โฮสต์กำหนดให้กับตัวเองเมื่อการร้องขอที่อยู่ผ่าน DHCP ล้มเหลวหาก IP สแต็คของโฮสต์รองรับสิ่งนี้

สมมติว่ามันมักจะใช้ DHCP สองสามอย่างลองแทนที่จะรีเซ็ตเต็ม - 'ปิด & เปิดใหม่อีกครั้ง' หรือเพียงถอดปลั๊กเครือข่ายรอสักครู่แล้วเสียบกลับเข้าไปใหม่มันอาจขอ DHCP ใหม่ ที่อยู่

และแน่นอนว่าต้องแน่ใจว่าสามารถเห็นเซิร์ฟเวอร์ DHCP ได้จริง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.