On 24.8.10 7:41 , Tauno Voipio wrote:
> On 24.8.10 11:28 , Mark wrote:
>> Hello
>>
>> I've got the scheme as follows:
>>
>> host ---------------[eth0 device eth1]---------------dhcp server
>> (192.168.1.100)
>> eth0 192.168.2.1
>> eth1 192.168.1.1
>>
>> The device runs embedded linux, where I set up DHCP relay from busybox
>> package (version 1.7.2 if it maters). The problem I'm having is that the
>> DHCP server sends responses to 192.168.2.1 (as I understood RFC2131,
>> this is valid behavior), but the device
>> is unable to route these packets on to eth0, which is strange.
>>
>> So, the client behind 'eth0' sends DHCP discover from port 68 to port
>> 67, it's fine; the DHCP relay relays the query via eth1 from port 68 to
>> 67 - makes sense, the server responds from 192.168.1.100:67 to
>> 192.168.2.1:67 (RFC says this is also a valid beahavior). But anyway,
>> the response never reaches dhcp relay listening socket on interna;
>> interface eth0.
>>
>> What am I doing wrong?
>
>
> BOOTP and DHCP are local network protocols. They live on local
> net broadcasts, and this is not designed to pass routers without
> extra means in the routers.
>
> If you need to pass a DHCP interchange between 'host' and 'dhcp server',
> you need a DHCP proxy in the box with 'eth0' and 'eth1'.
Oops - my bad. I did not read the question well enough.
Trace the packets (tcpdump, Wireshark) and check that
the relay agent field 'giaddr' is set up corrctly. The server
should respond to the relay agent, using the agent's IP.
--
Tauno Voipio
tauno voipio (at) iki fi
|