Обмін в Інтернеті без DHCP


11

Я намагаюся налаштувати свій iMac під керуванням 10.6, щоб він був бездротовим мостом. У мене це працює, але мені потрібно відключити DHCP і дозволити DHCP-серверу моєї мережі забезпечити IP для підключених пристроїв. Я не можу знайти спосіб відключення DHCP у спільному доступу до Інтернету. Хтось знає, чи можливо це? Я здогадуюсь, що там може бути ключ /Library/Preferences/SystemConfiguration/com.apple.nat.plist, але я не можу його знайти. Я перевірив довідкову сторінку на InternetSharing, і вона не згадує нічого корисного, крім зміни підмережі, яку використовує сервер DHCP.


AFAIK, OS X Internet Sharing робить лише NAT, а не справжнє з'єднання. Таким чином, пристрої, які використовують ваш iMac для підключення, знаходяться у власній приватній мережі, а ваш iMac виконує роль маршрутизатора. Через це підключеним пристроям потрібно отримати IP від ​​вашого iMac. Вони не зможуть зв’язатися з вашим існуючим сервером DHCP. Я недостатньо знайомий з кишками Internet Sharing, щоб бути певним, але це моя найкраща квазіінформована здогадка.
robmathers

Відповіді:


2

На bootpdчоловіковій сторінці:

Для кожного з властивостей dhcp_enabled, bootp_enabled, old_netboot_enabled, netboot_enabled та relay_enabled відповідна служба може бути включена або відключена для всіх інтерфейсів, або включена лише для певного набору інтерфейсів. Щоб увімкнути або відключити глобально, використовуйте булеве значення true або false відповідно. Щоб увімкнути лише певний набір інтерфейсів, використовуйте або рядок, для одного інтерфейсу, або масив рядків, один елемент для кожного інтерфейсу.

 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 & natpmpdon Lion)

InternetSharing не дозволяє налаштувати MacOS X в якості IP-мосту. Дивіться man InternetSharing(доступно на Snow Leopard, але не на Леві).

Це було б поганою ідеєю: особливо це стосується ризиків, пов'язаних із простим жирним прозорим мостом: Внутрішнє InternetSharingвиконує:

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

що дозволяє проходити будь-який IP-трафік. Щоб полегшити цю проблему, лише IP-адреси, призначені на вторинному інтерфейсі, bootpdпереведені через natdабо natpmpdправильно переведені назовні.


Дякую за вашу відповідь, Даніель. Два питання: (1) Який у вас рівень впевненості, що InternetSharing не дозволяє відключити DHCP (і чи можете ви надати будь-які докази / ресурси)? (2) Чи можете ви, будь ласка, детальніше пояснити, чому ви вважаєте, що це було б поганою ідеєю? Про які ризики ви говорите? Знову ж таки, докази та посилання були б вдячні. Спасибі
Меттью Бойнес

Я намагався покращити свої пояснення завдяки вашим запитанням.
дан

На головній сторінці спеціально сказано: "Деталі com.apple.nat.plist ... тут не повністю задокументовані", тому цілком можливо, що існує налаштування, яке б вимкнуло DHCP. На жаль, ми все ще залишаємося без вагомих доказів того, чи можна це зробити. Дякую за те, що все-таки додали деталі
Меттью Бойнес

Насправді я пішов далі, ніж просто прочитати відмову на сторінці man;). Я майже впевнений, що немає наворотного пристрою для налагодження без роздрібнення bootpd. Але, принаймні, ви можете спробувати -dваріант у списку.
дан

com.apple.natце не те, що налаштовує bootpd. /etc/bootpd.plistє.
цві
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.