From: | Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | vixie(at)vix(dot)com (Paul A Vixie) |
Cc: | pgsql-hackers(at)hub(dot)org |
Subject: | Re: [HACKERS] cidr |
Date: | 1998-07-21 05:30:05 |
Message-ID: | 199807210530.BAA22477@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> > My guess is that it is going to output x.x.x.x/32, but we should supply
> > a function so they can get just the IP or the mask from the type. That
> > way, people who don't want the cidr format can pull out the part they
> > want.
>
> this i don't understand. why would you want only one part of it? if you
> want to do address arithmetic then you need specific OR and AND and NOT
> functions -- like making a broadcast address if all you know is your address
> and netmask. but why would you want to know the mantissa without the scale?
I guess I thought someone might want to have ipaddr() and netmask()
functions so they can do:
x = 192.7.34.21/24
ipaddr(x) -> 192.7.34.21
netmask(x) -> 255.255.255.0
x = 192.7.0.0/16
ipaddr(x) -> 192.7.0.0
netmask(x) -> 255.255.0.0
These function are defined on the cidr type, and can be called if
someone wants the old output format.
>
> > If they don't specify a netmask when they load the value, perhaps we use
> > the standard class A,B,C netmasks. How you specify a HOST address using
> > the non-cidr format, I really don't know. I am sure the experts will
> > hash it out before 6.4 beta on September 1.
>
> classful assumptions are out of fashion, outdated, and dangerous. consider:
>
> "16" -> "16/8" -> "16.0.0.0/8"
> "128" -> "128/16" -> "128.0.0.0/16"
> "192" -> "192/24" -> "192.0.0.0/24"
>
> not very helpful. the implementation of "cidr" that i posted here yesterday
> uses the BIND-8 functions for representational conversion. those functions
> assume that a text representation with no "/" given has as many bits as the
> number of octets they fully cover:
>
> "16" -> "16/8"
> "128" -> "128/8"
> "192" -> "192/8"
> "127.1" -> "127.1/16"
>
> this is how a Cisco router would interpret such routes if "ip classless" is
> enabled and static routes were being entered. "ip classless" is a prereq-
> uisite for running OSPF, RIPv2, or BGP4. in other words it's pervasive.
>
> BIND follows RFC 1884 in this regard, and deviates significantly from both
> classful assumptions and the old BSD standard, which would treat "127.1" as
> "127.0.0.1". this burned on some old /etc/rc files but it was the right
> thing to do and now that the world has gotten over the scars, let's not run
> backwards.
>
> the IETF's CIDR project was long running, painful, and successful.
Yes, the 127.1 ambiguity was very strange. netstat -rn is very hard to
understand using the old format.
--
Bruce Momjian | 830 Blythe Avenue
maillist(at)candle(dot)pha(dot)pa(dot)us | Drexel Hill, Pennsylvania 19026
+ If your life is a hard drive, | (610) 353-9879(w)
+ Christ can be your backup. | (610) 853-3000(h)
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 1998-07-21 05:33:41 | Re: [HACKERS] cidr |
Previous Message | Thomas G. Lockhart | 1998-07-21 05:21:43 | [Fwd: SGVLLUG Oracle and Informix on Linux] |