Whelp we're back form the Arin Conference in Las Vegas. I'm down $60 but
I think I've got a good base for the RWHOIS/SWIP interface portion
of FreeIPdb (compliant with the 2002 templates :-)
Looking for Input before I start coding.
IP Justification (arin)
/-------\
| Block |
\-------/
|
/|\
/-------\ /---------------\ /----------\ /-----\
| POC |>---| Justification |---| Org/addr |--<| POC |
\-------/ \---------------/ \----------/ \-----/
|
|
/|\
/--------\
| Uses |
\--------/
[Block]
one IP address assignment/allocation in the database.
(each [Block] has a unique ID number)
[Justification]
Every time a user/customer is asked to Justify a block
a [Justification] will be created. (So in the 1-1A rule there
would be 2 per block (with different times).
This table does contain basic Q?'s like
VLSM/CIDR and why not as well as nat or BGP.
[POC]
Point of Contact A listing user contact information
[Org/addr]
The company name and address (as seen in a SWIP)
[Uses]
A value tied to a question:
[Question:] [Value]
Webhosts 100
Dialports: 100
Dialusers: 100
--- Rules ---
Every [Block] will have ZERO or MORE [Justification].
Every [Justification] MUST have EXACTLY ONE [Org/addr].
Every [Justification] MUST have ONE or MORE [POC].
Every [Justification] MAY have ZERO or MORE [Uses]
Rules can be added per RA to say things like:
If Dialports is used user must set Dialusers as well.
and how many POCS a block can have etc...
CREATE TABLE JUSTIFICATIONTABLE (
ID SERIAL,
BLOCK INT, -- IPDB.ID
TIME INT,
ORG INT, -- ORGADDRTABLE.ORGID
NAT TEXT,
VLSM TEXT,
BGP TEXT,
COMMENT TEXT,
APPROVED INT, -- Date of internal approval
APPROVEDBY VARCHAR(30), -- username of apporver.
TPOC INT -- USEYTPETABLE.POCID
);
CREATE TABLE INADDRTABLE(
JUSTID INT, -- JUSTIFICATIONTABLE.ID
SERVER VARHCAR(256),
);
CREATE TABLE ORGADDRTABLE (
ORGID SERIAL,
ORGCODE VARCHAR(14),-- ? format???
ORGNAME VARCHAR(150),
ORGADDRESS TEXT,
ORGCITY VARHCAR(60),
ORGSTATE VARCHAR(60),
ORGPOST VARHCAR(60),
ORGCOUNTRY VARHCAR(3),
COMMENT TEXT
);
CREATE TABLE POCTABLE (
POCID SERIAL,
POCTYPE VARCHAR(1), -- R = role P = person
POCLAST VARCHAR(255), -- or Role account
POCFIRST VARCHAR(255),
POCMIDDLE VARCHAR(255),
POCCOMAPNY VARCHAR(255),
POCADDRESS TEXT,
POCCITY VARHCAR(60),
POCSTATE VARCHAR(60),
POCPOST VARHCAR(60),
POCCOUNTRY VARHCAR(3),
COMMENT TEXT
);
CREATE TABLE POCORGTABLE (
ORGID INT, -- ORGADDRTABLE.ORGID
POCID INT, -- POCTABLE.POCID
TYPE VARCHAR(1)
);
CREATE TABLE POCJUSTTABLE (
JUSTID INT, -- JUSTIFICATIONTABLE.ID
POCID INT, -- POCTABLE.POCID
TYPE VARCHAR(1)
);
CREATE TABLE POCPHONETABLE (
POC INT, --POCTABLE.POCID
PHONETYPE VARCHAR(1),
NUMBER VARCHAR(60),
EXTENSION VARCHAR(30)
);
CREATE TABLE POCEMAILTABLE (
POC INT, --POCTABLE.POCID
EMAIL VARCHAR(150)
);
CREATE TABLE USEYTYPETABLE (
ID SERIAL,
NAME VARHCAR(60)
);
INSERT INTO USEYTYPETABLE (NAME) VALUES ('Dial-up');
INSERT INTO USEYTYPETABLE (NAME) VALUES ('Cable');
INSERT INTO USEYTYPETABLE (NAME) VALUES ('Web Hosting');
INSERT INTO USEYTYPETABLE (NAME) VALUES ('Leased Line');
INSERT INTO USEYTYPETABLE (NAME) VALUES ('xDSL');
INSERT INTO USEYTYPETABLE (NAME) VALUES ('Co-Location');
INSERT INTO USEYTYPETABLE (NAME) VALUES ('Wireless');
CREATE TABLE USETABLE(
ID SERIAL,
JUST INT, -- JUSTIFICATIONTABLE.ID
TYPE INT, -- USEYTPETABLE.ID
VALUE INT
);
--
We will lose this war without firing a shot
if we sacrifice the liberties of the American people.
Sen. Russell Feingold, D-Wis.