MAC server DHCP / Linux FOG server



  • Hi, I have a mac DHCP server. (IP 10.0.1.2)

    My fog server is installed on a ubuntu 12.04 (ip 10.0.1.3)

    This is my mac bootp.plist

    <?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>NetBoot</key>
    	<dict/>
    	<key>Subnets</key>
    	<array>
    		<dict>
    			<key>allocate</key>
    			<true/>
    			<key>dhcp_domain_name</key>
    			<string>klimtoren.be</string>
    			<key>dhcp_domain_name_server</key>
    			<array>
    				<string>10.0.1.2</string>
    			</array>
    			<key>dhcp_domain_search</key>
    			<array>
    				<string>klimtoren.be</string>
    			</array>
    			<key>dhcp_option_66</key>
    			<data>
    			CgABAw==
    			</data>
    			<key>dhcp_option_67</key>
    			<data>
    			dW5kaW9ubHkua3B4ZQA=
    			</data>
    			<key>dhcp_router</key>
    			<string>10.0.1.1</string>
    			<key>lease_max</key>
    			<integer>3600</integer>
    			<key>name</key>
    			<string>Ethernet</string>
    			<key>net_address</key>
    			<string>10.0.0.0</string>
    			<key>net_mask</key>
    			<string>255.255.0.0</string>
    			<key>net_range</key>
    			<array>
    				<string>10.0.1.10</string>
    				<string>10.0.1.253</string>
    			</array>
    			<key>selected_port_name</key>
    			<string>en0</string>
    			<key>uuid</key>
    			<string>1BA71D8C-FE83-448A-8C88-0CC70FA19E1B</string>
    		</dict>
    	</array>
    	<key>allow</key>
    	<array/>
    	<key>bootp_enabled</key>
    	<true/>
    	<key>deny</key>
    	<array/>
    	<key>detect_other_dhcp_server</key>
    	<false/>
    	<key>dhcp_enabled</key>
    	<array>
    		<string>en0</string>
    	</array>
    	<key>netboot_disabled</key>
    	<array>
    		<string>en0</string>
    	</array>
    	<key>old_netboot_enabled</key>
    	<false/>
    	<key>relay_enabled</key>
    	<false/>
    	<key>relay_ip_list</key>
    	<array/>
    	<key>reply_threshold_seconds</key>
    	<integer>0</integer>
    	<key>timeServiceStarted</key>
    	<string>2015-11-26 12:12:40 +0000</string>
    </dict>
    </plist>
    

    When trying to boot clients, I get PXE-T01: File not found
    So I capture bootp packages with Sharkwire.
    This is the Bootp sequence in the package:

    Frame 1661: 590 bytes on wire (4720 bits), 590 bytes captured (4720 bits) on interface 0
    Ethernet II, Src: Dell_c5:4c:18 (00:13:72:c5:4c:18), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
    Internet Protocol Version 4, Src: 0.0.0.0, Dst: 255.255.255.255
    User Datagram Protocol, Src Port: 68 (68), Dst Port: 67 (67)
    Bootstrap Protocol (Request)
        Message type: Boot Request (1)
        Hardware type: Ethernet (0x01)
        Hardware address length: 6
        Hops: 0
        Transaction ID: 0x73c54c18
        Seconds elapsed: 4
        Bootp flags: 0x8000, Broadcast flag (Broadcast)
        Client IP address: 0.0.0.0
        Your (client) IP address: 0.0.0.0
        Next server IP address: 0.0.0.0
        Relay agent IP address: 0.0.0.0
        Client MAC address: Dell_c5:4c:18 (00:13:72:c5:4c:18)
        Client hardware address padding: 00000000000000000000
        Server host name not given
        Boot file name not given
        Magic cookie: DHCP
        Option: (53) DHCP Message Type (Request)
        Option: (50) Requested IP Address
        Option: (55) Parameter Request List
        Option: (57) Maximum DHCP Message Size
        Option: (54) DHCP Server Identifier
        Option: (97) UUID/GUID-based Client Identifier
        Option: (93) Client System Architecture
        Option: (94) Client Network Device Interface
        Option: (60) Vendor class identifier
        Option: (255) End
        Padding: 000000000000000000000000000000000000000000000000...
    
    
    

    As you can see there are no options 66 / 67. While they are in my dhcp server configuration.

    What am I overlooking?

    Karl


  • Developer

    @bakgat As far as I can tell the options 66 and 67 in the bootp.plist are base64 encoded. Trying to decode (e.g. www.base64decode.org) I only get a sensible result for option 67 (‘undionly.kpxe’) but not for opt 66.

    The other thing I notice is that the packet you posted is a request (‘Message type: Boot Request (1)’) from a client machine. You don’t see the options in a request only on replys. See if you can find the answer from the server. DHCP goes like this: Client-Discovery, Server-Offer, Client-Request, Server-Ack (https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol#Operation)

    So you should actually see at least four DHCP packets! If you don’t see any reply DHCP packets from the server I am wondering if the bootp service is actually started?!


 

509
Online

41.8k
Users

12.3k
Topics

116.1k
Posts