การแบ่งปันอินเทอร์เน็ตโดยไม่ใช้ DHCP


11

ฉันกำลังพยายามติดตั้ง iMac ของฉันที่ใช้ 10.6 เป็นสะพานไร้สาย ฉันใช้งานได้ แต่ต้องปิดการใช้งาน DHCP และปล่อยให้เซิร์ฟเวอร์ DHCP ของเครือข่ายของฉันระบุ IP สำหรับอุปกรณ์ที่เชื่อมต่อ ฉันไม่สามารถหาวิธีปิดใช้งาน DHCP ใน Internet Sharing Sharing ได้ ไม่มีใครรู้ว่าสิ่งนี้เป็นไปได้? ฉันเดาว่ามีกุญแจสำคัญที่สามารถติดตั้งได้/Library/Preferences/SystemConfiguration/com.apple.nat.plistแต่ฉันหามันไม่เจอ ฉันตรวจสอบ man page สำหรับ InternetSharing และไม่ได้กล่าวถึงสิ่งใดที่มีประโยชน์ยกเว้นเปลี่ยน subnet ที่เซิร์ฟเวอร์ DHCP ใช้


AFAIK, OS X Internet Sharing เท่านั้นที่ทำ NAT ไม่ใช่การเชื่อมต่อจริง ดังนั้นอุปกรณ์ที่ใช้ iMac ของคุณสำหรับการเชื่อมต่อจึงอยู่ในเครือข่ายส่วนตัวและ iMac ของคุณทำหน้าที่เป็นเราเตอร์ ด้วยเหตุนี้อุปกรณ์ที่เชื่อมต่อจึงจำเป็นต้องได้รับ IP จาก iMac ของคุณ พวกเขาจะไม่สามารถติดต่อเซิร์ฟเวอร์ DHCP ที่มีอยู่ของคุณ ฉันไม่คุ้นเคยกับความกล้าหาญของการแชร์อินเทอร์เน็ตอย่างแน่นอน แต่นั่นเป็นการคาดเดาที่ดีที่สุดของฉัน
robmathers

คำตอบ:


2

จากbootpdหน้าคน:

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

 For example, to enable DHCP on interfaces en0 and en1, disable BOOTP on all
 interfaces, enable NetBoot on en1, and enable relay agent on interface en1,
 /etc/bootpd.plist could contain:
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
         <key>bootp_enabled</key>
         <false/>
         <key>dhcp_enabled</key>
         <array>
                 <string>en0</string>
                 <string>en1</string>
         </array>
         <key>netboot_enabled</key>
         <string>en1</string>
         <key>relay_enabled</key>
         <array>
                 <string>en1</string>
         </array>
 </dict>
 </plist>

หากต้องการปิดใช้งาน dhcp ทั่วโลกให้ใช้:

    <key>dhcp_enabled</key>
    <false/>

อย่าลืมส่งSIGHUP (kill -1)ไปยังbootpdหลังจากทำการเปลี่ยนแปลงไฟล์การกำหนดค่า


1

InternetSharing กำลังทำงาน 2 งาน:

  • ให้ที่อยู่ IP แบบไดนามิกกับอุปกรณ์ที่เชื่อมต่อบนเครือข่ายรอง ( bootpd)
  • การจัดการการแปลที่อยู่ IP (NAT) สำหรับที่อยู่แบบไดนามิก ( natdบน Snow Leopard & natpmpdLion)

InternetSharing ไม่อนุญาตให้คุณกำหนดค่า MacOS X เป็น IP bridge ดูman InternetSharing(มีให้ใน Snow Leopard แต่ไม่ใช่บน Lion)

นี่เป็นความคิดที่ไม่ดีโดยเฉพาะอย่างยิ่งเนื่องจากความเสี่ยงที่เกี่ยวข้องกับสะพานโปร่งใสที่มีความหนา: ภายในInternetSharingดำเนินการ:

sysctl -w 'net.inet.ip.forwarding=1'

ซึ่งอนุญาตให้การรับส่งข้อมูล IP ใด ๆ ดำเนินการผ่าน เพื่อบรรเทาปัญหานี้มีเพียงที่อยู่ IP ที่เกิดจากอินเทอร์เฟซรองผ่านbootpdและแปลผ่านnatdหรือnatpmpdแปลอย่างถูกต้องกับภายนอก


ขอบคุณสำหรับคำตอบของคุณ Daniel คำถามสองข้อ: (1) ระดับความเชื่อมั่นของคุณที่ InternetSharing ไม่อนุญาตให้หนึ่งปิดใช้งาน DHCP (และคุณสามารถให้หลักฐาน / ทรัพยากรใด ๆ ) (2) คุณช่วยอธิบายได้อย่างละเอียดว่าทำไมคุณถึงรู้สึกว่านี่เป็นความคิดที่ไม่ดี? อะไรคือความเสี่ยงที่คุณพูด หลักฐานและการอ้างอิงจะได้รับการชื่นชมอีกครั้ง ขอบคุณ
Matthew Boynes

ฉันพยายามปรับปรุงคำอธิบายของฉันด้วยคำถามของคุณ
แดน

หน้าคนพิเศษกล่าวว่า "รายละเอียดของ com.apple.nat.plist ... ไม่ได้รับการบันทึกไว้ที่นี่อย่างสมบูรณ์" ดังนั้นจึงเป็นไปได้ทั้งหมดว่ามีการตั้งค่าที่จะปิดใช้งาน DHCP น่าเสียดายที่เรายังไม่มีหลักฐานที่ชัดเจนว่าสามารถทำสิ่งนี้ได้หรือไม่ ขอบคุณสำหรับการเพิ่มรายละเอียดเหมือนกันทั้งหมด
Matthew Boynes

ในความเป็นจริงฉันไปไกลกว่าแค่อ่านข้อจำกัดความรับผิดชอบในหน้าคน;) bootpdผมค่อนข้างมั่นใจว่าไม่มีลับๆแก้ปัญหาโดยไม่ต้องฟอร์ก แต่อย่างน้อยคุณอาจลองใช้-dตัวเลือกในการวางแผน
แดน

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