OS X bootpd 作为 dhcp 服务器不提供 ip 地址

OS X bootpd 作为 dhcp 服务器不提供 ip 地址

我正在我的 Mac OS 10.6 上试验 PXE lan-boot;

经过长时间的故障排除后,我发现 LaunchD 可以顺利运行,bootpd并且具有以下选项:

<?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>detect_other_dhcp_server</key>
    <false/>
    <key>bootp_enabled</key>
    <false/>
    <key>dhcp_enabled</key>
    <true/>
    <key>old_netboot_enabled</key>
    <false/>
    <key>netboot_enabled</key>
    <false/>
    <!--
    <key>relay_enabled</key>
    <false/>
    <key>allow</key>
    <array/>
    <key>deny</key>
    <array/>
    <key>relay_ip_list</key>
    <array/>
    -->
    <key>reply_threshold_seconds</key>
    <integer>0</integer>
    <!--
    <key>use_open_directory</key>
    <false/>
    -->
    <!--
    <key>NetBoot</key>
    <dict>
        <key>shadow_size_meg</key>
        <integer>0</integer>
        <key>afp_users_max</key>
        <integer>0</integer>
        <key>age_time_seconds</key>
        <integer>0</integer>
        <key>afp_uid_start</key>
        <integer>0</integer>
    </dict>
    -->
    <key>Subnets</key>
    <array>
        <dict>
            <key>name</key>
            <string>192.168.1</string>
            <key>net_address</key>
            <string>192.168.1.1</string>
            <key>net_mask</key>
            <string>255.255.255.0</string>
            <key>net_range</key>
            <array>
                <string>192.168.1.2</string>
                <string>192.168.1.254</string>
            </array>
            <!--
            <key>supernet</key>
            <string></string>
            -->
            <key>allocate</key>
            <true/>
            <key>lease_max</key>
            <integer>86400</integer>
            <key>lease_min</key>
            <integer>86400</integer>
            <!--
                OTHER OPTIONS FORMAT:
            <key>dhcp_*</key>
            <string></string>
            -->

            <!-- DHCP PXE BINDINGS -->
            <key>dhcp_option_150</key>
            <string>pxe server</string>
            <key>dhcp_option_67</key>
            <string>boot folder</string>
        </dict>
    </array>
</dict>
</plist>

物理设置是:

     Router (DHCP off)
        |
        |------- Mac (DHCP Server)
        |
        |------- Thin Client
        |
        |------- mobile device

当我通过路由器的 WiFi 使用移动设备进行测试时,我得到:

bootpd[1244]: DHCP DISCOVER [en0]: <MAC ADDRESS>
bootpd[1244]: service time 0.000725 seconds

但该设备从未收到 IP 地址。

我是否遗漏了需要提供地址的选项?

答案1

好吧,经过相当多的改变,我让它工作了,我会尽量记住我做了什么来纠正它:

首先,我没有注意到启动输出中出现的其他错误:

subnets: create failed, 'net_range' start not within subnet

这里的问题是,使用 的掩码255.255.255.0net_address应该以 .0 结尾:

<key>name</key>
<string>192.168.1</string>
<key>net_address</key>
<string>192.168.1.0</string>
<key>net_mask</key>
<string>255.255.255.0</string>
<key>net_range</key>
<array>
    <string>192.168.1.2</string>
    <string>192.168.1.254</string>
</array>

由于您的服务器地址仍然存在192.168.1.1<--您可能需要手动设置

其次,dhcp_option_150不被理解为bootpd用途dhcp_option_66(66 而不是 150 先于 67,谁会想到呢。

我目前发现的最后一个缺陷是:

<key>dhcp_enabled</key>
<true/>

应该:

<key>dhcp_enabled</key>
<array>
    <string>en0</string>
</array>

使用数组字符串作为接口;尽管在实践中似乎-i en0还需要在启动参数中指定。如下bootps.plist所示/System/Library/LaunchDaemons/bootps.plist

<key>ProgramArguments</key>
<array>
    <string>/usr/libexec/bootpd</string>
    <string>-i</string>
    <string>en0</string>
</array>

如果您有任何其他问题,我建议您bootpd使用以下参数手动运行:-dv这将使其运行前台(-d)和详细(-v)。

希望这能帮助其他正在努力解决这个问题的人!

答案2

我还要补充一点,对于某些设备,您需要将“reply_threshold_seconds”属性设置为“0”。我必须这样做,这样我的 ESP8266 设备才能连接到我的 Mac。

否则,bootpd 服务就不会响应。

相关内容