Hello,
> If the OP really wants requests from client1 to go to server 1, and requests from client 2 to go to server 2, then he either needs to introduce some sort of filtering in the relay agent (probably not supported), or run two relay agents (probably not supported on the router).
Thanks for your suggestion. I tried running multiple relay agent on the router.
By doing so the earlier mentioned scenario started working. The request from Client1 is forwarded ONLY to Server1 and similarly, request from Client2 is forwarded only to Server2.
But running multiple relay agent helped me finding new more serious problem statement.
I moved my scenario a little bit:
Multiple_relay_single_server.png _______________ __________
| | | |
Client 1 ----[S/W]--------| Relay Agent 1 | | Server 1 |
| | | |
| Router (R) |-------- | (S) |
| | | |
Client 2 ---[S/W]---------| Relay Agent 2 | | Server 2 |
|______________| |__________|
1. Server Machine (S)
IP address on eth1 is 10.1.1.1/24
Server 1 - DHCP server IP pool: 192.168.1.100 - 192.168.1.200
Server 2 - DHCP server IP pool: 192.168.2.100 - 192.168.2.200
Static Route to 192.168.1.0/24 via 10.1.1.2
Static Route to 192.168.2.0/24 via 10.1.1.2
2. Router (R)
IP address on eth1: 192.168.1.1/24
IP address on eth2: 192.168.2.1/24
IP address on eth3: 10.1.1.2/24
Enable IP forwarding for IPv4.
dhcrelay -i eth1 -i eth3 10.1.1.1 -4
dhcrelay -i eth2 -i eth3 10.1.1.1 -4
3. Client1:
eth1 has a DHCP client which is connected to the same network of R:eth1.
4. Client2:
eth1 has a DHCP client which is connected to the same network of R:eth2.
After doing this configuration:
Client1 got the IP from Server1's Pool.
Client2 got the IP from Server2's Pool.
Observation:
While observing the packet capture, I found that both the relay agent is forwarding the request received from Client1 the server multiple times. Similarly, the request from Client2 is also forwarded to the server multiple times.
My assumption is when a request comes on from Client1 from R:eth1 it forwards the packet from R:eth3. As the same time, the second relay which is running on R:eth2 and R:eth3 also listens to the packets and try again forward it to the server. Request from any for the client gets looped between both the relay agents and forwarded multiple times to server. Basically, both relay agent starts flooding the network unless the max hop count of the packet becomes zero.
-- Thanks and Regards,
Priyank Rathi