เกตเวย์ต้องอยู่บนซับเน็ตหรือไม่


14

ฉันกำลังมองหาที่จะนำอินเทอร์เฟซเช่นนี้ใน / etc / network / interfaces (นี่คือเดเบียน) โดยมีเกตเวย์นอกซับเน็ต:

iface eth0 inet static
address 10.100.10.99
netmask 255.255.255.0
gateway 10.100.0.1

แต่ "ifup --verbose eth0" ให้ข้อความข้อผิดพลาดนี้กับฉันเท่านั้น:

ifconfig eth0 10.100.10.99 netmask 255.255.255.0
 route add default gw 10.100.0.1  eth0
SIOCADDRT: No such process
Failed to bring up eth0

แน่นอนการเปลี่ยน netmask เป็น 255.255.0.0 ใช้งานได้ดี

เป็นไปได้ที่จะเป็นไปได้หรือมีปัญหาอื่นอีกหรือไม่? มีวิธีรับข้อมูลเพิ่มเติมจาก ifup หรือไม่ ฉันเห็นโพสต์หนึ่งบนอินเทอร์เน็ตที่แนะนำว่าควรใช้งานได้

คำตอบ:


10

อีกวิธีหนึ่งในการเข้าถึงคำถามนี้คือ: หากคุณไม่สามารถเข้าถึงเราเตอร์เกตเวย์เริ่มต้นของคุณบนเครือข่ายท้องถิ่นคุณจะส่งแพ็กเก็ตได้อย่างไร คุณต้องส่งพวกเขาผ่านเราเตอร์อื่น

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

ดังนั้นเมื่อคุณส่งแพ็กเก็ต IP ของคุณผ่านเราเตอร์เกตเวย์เริ่มต้นนอกเครือข่ายหนึ่งในสองสิ่งนี้จะต้องเกิดขึ้น

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

  2. เราเตอร์เครือข่ายท้องถิ่นคิดว่า (โดยค่าเริ่มต้น) ว่าแพ็กเก็ตของคุณควรถูกส่งผ่านเราเตอร์อื่นเพื่อไปยังปลายทาง ในกรณีนี้คุณต้องมีวิธีที่จะบอกเป็นอย่างอื่น ความสามารถนี้มีอยู่และเรียกว่า "การกำหนดเส้นทางต้นทาง" ... แต่ถือเป็นความเสี่ยงด้านความปลอดภัยและเราเตอร์ส่วนใหญ่ได้รับการกำหนดค่าให้เพิกเฉย

ในที่สุดจากประสบการณ์ของฉันipเครื่องมือLinux iproute ( ) จะไม่อนุญาตให้คุณเพิ่มเส้นทางหากไม่สามารถเข้าถึงเกตเวย์ได้โดยตรงผ่านอินเทอร์เฟซเครือข่ายท้องถิ่น

คู่ของการอ้างอิงซอร์สโค้ด:


4

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

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

ในการกำหนดค่าการคำนวณที่บ้าน ISP มักจะให้อุปกรณ์ทางกายภาพซึ่งทั้งสองเชื่อมต่อฮาร์ดแวร์ภายในกับอินเทอร์เน็ตและทำหน้าที่เป็นเกตเวย์ อุปกรณ์ดังกล่าวรวมถึงเราเตอร์ DSL และเราเตอร์เคเบิล

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

กล่าวอีกนัยหนึ่งเกตเวย์เริ่มต้นจะให้จุดเข้าใช้งานและจุดออกในเครือข่าย


แต่ถ้ามีเส้นทางแบบสแตติกไปยังที่อยู่นั่นจะไม่เป็นเกตเวย์เริ่มต้นแม้ว่าจะไม่ได้อยู่ในเครือข่ายย่อยหรือไม่ (เรากำลังเข้าสู่ด้านเทคนิคที่นี่และอยู่ห่างจากแนวปฏิบัติที่ดี)
kurtm

เส้นทางสแตติกอาจเป็นเส้นทางไม่ใช่เกตเวย์เริ่มต้น (ดังที่ฉันเข้าใจ)
slm

2
เส้นทางเริ่มต้นจะต้องอยู่ในซับเน็ตเดียวกัน เส้นทางเริ่มต้นคือวิธีที่คุณได้รับปริมาณการใช้งานทั้งหมดออกจากเครือข่ายย่อยของคุณและไปยังเส้นทางอื่น ดังนั้นหากคุณพยายามรับปริมาณข้อมูลจาก 10.100.10.99 ถึง 10.100.0.1 คุณต้องมี "เกตเวย์" เพื่อรับจากเครือข่าย 10.100.10.0/24 ถึง 10.100.0.0/24 10.100.0.1 ไม่สามารถเป็นเกตเวย์เริ่มต้นของคุณได้เนื่องจากคุณไม่สามารถเข้าถึงเกตเวย์ได้ตามค่าเริ่มต้น อย่างไรก็ตามอาจเป็นเกตเวย์ "" และอาจเป็นเกตเวย์ "ที่คุณส่งปริมาณการใช้งานทั้งหมดของคุณ (เมื่อคุณบอกวิธีรับเครือข่ายอื่น)
coteyr

1
@coteyr: และฉันก็ยังทำงานได้ หากมีเส้นทางแบบคงที่ไปยังเครือข่ายย่อยอื่นและเกตเวย์เริ่มต้นอยู่บนเครือข่ายย่อยนั้นฉันทั้งสองสามารถเพิ่มเส้นทางเริ่มต้นและ ping / ทำการเชื่อมต่อโดยไม่มีปัญหา อาจมีประสิทธิภาพน้อยลง แต่ใช้งานได้
siride

ฉันจะบอกว่า: เส้นทางเป็นวิธีที่คุณได้รับปริมาณการใช้งานทั้งหมดออกจากซับเน็ตของคุณและไปยังอีกเส้นทางหนึ่ง เมื่อระบุเส้นทางคุณสามารถระบุส่วน IP (หรือ supernet - การรวมกันของส่วน) และเกตเวย์เพื่อเข้าถึงส่วน / supernet ด้วยหรือคุณสามารถระบุ "สำหรับทุกสิ่งที่ไม่ได้กล่าวถึงในตารางเส้นทางใช้สิ่งนี้ ประตู". หลังเป็นเส้นทางเริ่มต้นและเกตเวย์ที่ใช้ในนั้นเรียกว่าเกตเวย์เริ่มต้น เมื่อคุณมี NIC เพียงอันเดียวคุณเกือบจะต้องการเส้นทางเริ่มต้นเท่านั้น แต่ด้วย NIC หลายตัวคุณอาจต้องการเส้นทางอื่นด้วย
telcoM

2

ฉันมีปัญหาเดียวกันในหลาย ๆ สถานที่ด้วยบริการ Verizon ADSL "เกตเวย์เริ่มต้น" อยู่ในเครือข่ายย่อยอื่น ในกรณีของเราเราต้องการที่อยู่ IP สาธารณะเพื่อใช้ VPN ของแต่ละไซต์ ในการดำเนินการดังกล่าวเราจำเป็นต้องวางเกตเวย์ DSL เข้าสู่โหมดบริดจ์เพื่อให้ที่อยู่ IP สาธารณะอยู่บนเราเตอร์ของเราแทนเกตเวย์ DSL

ผู้ให้บริการส่วนใหญ่สามารถทำสิ่งนี้ได้อย่างง่ายดาย แต่ Verizon ดูเหมือนจะมีปัญหา เมื่อใช้เกตเวย์ D-Link 2750B DSL การวางไว้ในโหมดบริดจ์เทคโนโลยีของ Verizon กำลังบอกให้ฉันใช้เกตเวย์เริ่มต้นบนซับเน็ตแยกต่างหาก ฉันทดสอบโดยใช้แล็ปท็อป Windows 7 ของฉันและถึงแม้ว่า Windows จะแสดงข้อความแสดงข้อผิดพลาดว่า "คุณเป็นคนงี่เง่าและนี่เป็นความคิดที่แย่ - คุณยังต้องการบันทึกการกำหนดค่านี้หรือไม่ใช่ / ไม่ใช่" ใช้งานได้ .

อย่างไรก็ตามซอฟต์แวร์ที่มีการตรวจสอบสติอย่างเข้มงวดดูเหมือนจะปกป้องคุณจากตัวคุณเอง ...

ถึงกระนั้นฉันก็อดไม่ได้ที่จะคิดว่ามันมีวิธีที่จะปลอมมันออกมา ...


1

เป็นไปได้ แต่ตามที่อธิบายไว้ในบทความที่เชื่อมโยงเครื่องของคุณจะต้องทราบวิธีไปยังที่อยู่เกตเวย์ ซึ่งหมายความว่าคุณจะต้องใช้post-upเพื่อเพิ่มเส้นทางด้วยตนเองแทนgateway

iface eth0 inet static
  address 10.100.10.99
  netmask 255.255.255.0
  post-up ip route 10.100.0.0/24 via 10.100.10.x # router that can route you to the 10.100.0.0/24 network
  post-up ip route 0.0.0.0 via 10.100.0.1

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