proxy relay agent

Hiroto Shibuya <SHIBUYA@process.com> Fri, 01 March 1996 00:41 UTC

Received: from ietf.cnri.reston.va.us by IETF.CNRI.Reston.VA.US id aa27922; 29 Feb 96 19:41 EST
Received: from CNRI.Reston.VA.US by IETF.CNRI.Reston.VA.US id aa27918; 29 Feb 96 19:41 EST
Received: from coral.bucknell.edu by CNRI.Reston.VA.US id aa16726; 29 Feb 96 19:41 EST
Received: from charcoal-gw.eg.bucknell.edu by coral.bucknell.edu; (5.65v3.0/1.1.8.2/29Aug94-0956AM) id AA09182; Thu, 29 Feb 1996 13:20:46 -0500
Received: from reef.bucknell.edu by charcoal (5.x/SMI-SVR4) id AA25096; Thu, 29 Feb 1996 13:00:35 -0500
Received: from elnath.process.com by reef.bucknell.edu with SMTP (5.65/IDA-1.2.8) id AA22660; Thu, 29 Feb 1996 13:00:27 -0500
Date: Thu, 29 Feb 1996 13:00 -0500
Sender: ietf-archive-request@IETF.CNRI.Reston.VA.US
From: Hiroto Shibuya <SHIBUYA@process.com>
Message-Id: <0099EA2E5AD5D7BC.2052@PROCESS.COM>
To: DHCP-v4@bucknell.edu
Subject: proxy relay agent
X-Vms-To: SMTP%"DHCP-v4@Bucknell.Edu"
X-Vms-Cc: SHIBUYA

An idea for providing DHCP assigned address to remote PPP node.  

When PPP client dials up, PPP server machine will run a program what I
would call proxy relay agent.  This is basically a pseudo relay agent
which handle DHCP negotiation without actually relaying. 

When the PPP connection comes in, PPP server, or script associated
with that modem line or user will first generate client identifier
which can identify the PPP peer.  then the agent will be invoked with
this client identifier and it will send out relayed DHCPDISCOVER
request with it's own address in giaddr to the DHCP server.  

DHCP will give offer back to what it think is a relay agent, but this
agent will get the offer, do sanity check on it, and then send back
DHCPREQUEST.  When it receives ACK, it will create child process in
the back ground which will take care of renewing the lease for the
duration of the connection.  

At this point, agent in the foreground will terminate, setting
environment variable or something with the aquired IP address.  Script
or something can provide that to PPP server as command line option or
whatever mechanism you prefer, and from there, it is just a regular
PPP line startup.  

When the PPP line comes down, the renewing process can be informed to
release the lease and terminate.

The beauty of this implimentation is that it will work perfectly fine
with any PPP client implementation out there, and no new code have to
be added on the client side.

--
Hiroto Shibuya
Process Software Corporation

(I also do PPP for Process)