Reply by Morten Reistad●February 7, 20112011-02-07
In article <iiooe3$r20$2@news.eternal-september.org>,
glen herrmannsfeldt <gah@ugcs.caltech.edu> wrote:
>In comp.protocols.tcp-ip Morten Reistad <first@last.name> wrote:
>(snip)
>
>> OK, NDP. NDP is what ARP should have been, but for the need to
>> support what was legacy systems by 1983.
>
>> Anyway, doing layer 2 mapping before routing is not standards
>> conformant IP behaviour, matter what OS or IP version you are
>> using.
>
>Not having written an actual IP stack, I would think using the
>ARP cache to speed up routing wouldn't be non-conforming.
Yes, it would. The problem is that you can have many arp caches.
Routing protocols can move IPs around without telling ARP.
The normal way is to make an ip cache, where ip addresses have
interface, next-hop, tag and link address attached. These get
invalidated as part of IP, not as a link layer extension.
IPv6 does this a lot better with NDP.
>If there is no ARP entry, then you have to go through the usual
>route algorithm, and the ARP cache better be kept up to date
>when routes change.
No, use a proper IP cache, with invalidation.
-- mrr
Reply by glen herrmannsfeldt●February 7, 20112011-02-07
In comp.protocols.tcp-ip Morten Reistad <first@last.name> wrote:
(snip)
> OK, NDP. NDP is what ARP should have been, but for the need to
> support what was legacy systems by 1983.
> Anyway, doing layer 2 mapping before routing is not standards
> conformant IP behaviour, matter what OS or IP version you are
> using.
Not having written an actual IP stack, I would think using the
ARP cache to speed up routing wouldn't be non-conforming.
If there is no ARP entry, then you have to go through the usual
route algorithm, and the ARP cache better be kept up to date
when routes change.
-- glen
Reply by Morten Reistad●February 7, 20112011-02-07
In article <2bd328-ia7.ln1@news.rtij.nl>,
Martijn Lievaart <m@rtij.nl.invlalid> wrote:
>On Sun, 06 Feb 2011 20:44:39 +0100, Morten Reistad wrote:
>
>> So, if I assign [1:2:3:4::1/64] to an interface, the address
>> [1:2:3:4:5::1] is assumed to be on that subnet, and you can use arp to
>> get to it.
>
>No you cannot. Arp is an IPv4 thingy, IPV6 uses multicast instead. But
>otherwise your explanation is correct if we substitute either IPv4 for
>IPv6, or multicast for arp.
OK, NDP. NDP is what ARP should have been, but for the need to
support what was legacy systems by 1983.
Anyway, doing layer 2 mapping before routing is not standards
conformant IP behaviour, matter what OS or IP version you are
using.
-- mrr
Reply by Martijn Lievaart●February 7, 20112011-02-07
On Sun, 06 Feb 2011 21:36:39 +0000, glen herrmannsfeldt wrote:
> In comp.protocols.tcp-ip Martijn Lievaart <m@rtij.nl.invlalid> wrote:
>> On Sun, 06 Feb 2011 20:44:39 +0100, Morten Reistad wrote:
>
>>> So, if I assign [1:2:3:4::1/64] to an interface, the address
>>> [1:2:3:4:5::1] is assumed to be on that subnet, and you can use arp to
>>> get to it.
>
>> No you cannot. Arp is an IPv4 thingy, IPV6 uses multicast instead. But
>> otherwise your explanation is correct if we substitute either IPv4 for
>> IPv6, or multicast for arp.
>
> That isn't quite right. IPv6 uses NDP instead of ARP, but it does
> pretty much the same thing.
Thanks for the correction.
M4
Reply by glen herrmannsfeldt●February 6, 20112011-02-06
In comp.protocols.tcp-ip Martijn Lievaart <m@rtij.nl.invlalid> wrote:
> On Sun, 06 Feb 2011 20:44:39 +0100, Morten Reistad wrote:
>> So, if I assign [1:2:3:4::1/64] to an interface, the address
>> [1:2:3:4:5::1] is assumed to be on that subnet, and you can use arp to
>> get to it.
> No you cannot. Arp is an IPv4 thingy, IPV6 uses multicast instead. But
> otherwise your explanation is correct if we substitute either IPv4 for
> IPv6, or multicast for arp.
That isn't quite right. IPv6 uses NDP instead of ARP, but it does
pretty much the same thing.
NDP uses multicast instead of the broadcast used by ARP. The latter
was a mistake, and it is nice to see it fixed. Well, by now IP
is the dominant protocol, but you can run other protocols on
ethernet, and it isn't nice for all the non-IP hosts to have
to process and discard all the ARP packets.
-- glen
Reply by Martijn Lievaart●February 6, 20112011-02-06
On Sun, 06 Feb 2011 20:44:39 +0100, Morten Reistad wrote:
> So, if I assign [1:2:3:4::1/64] to an interface, the address
> [1:2:3:4:5::1] is assumed to be on that subnet, and you can use arp to
> get to it.
No you cannot. Arp is an IPv4 thingy, IPV6 uses multicast instead. But
otherwise your explanation is correct if we substitute either IPv4 for
IPv6, or multicast for arp.
HTH,
M4
Reply by Morten Reistad●February 6, 20112011-02-06
In article <2ae9d98e-da25-482e-a22b-9d3a03225e81@u14g2000vbg.googlegroups.com>,
Didi <dp@tgi-sci.com> wrote:
>On Feb 6, 12:54�pm, Philip Paeps <philip+use...@paeps.cx> wrote:
>> ....
>>
>> At this point, I think you're just trolling and flailing madly.
>
>I explained it well enough. I do not hope that you will get it,
>I posted for those who might read the thread to be able to see the
>practical part and distinguish arguments from religious babble.
IP is routed on longest-matching-prefix-first, and local propagation
comes second to that. So much is clear both from rfc791 (although
not said explicitly) and from the rfc119x series of hosts requrements,
where it is stated clearly; likewise with all the followups.
Prefixes can be attached to interfaces, or reside in a routing
table.
So, if I assign [1:2:3:4::1/64] to an interface, the address
[1:2:3:4:5::1] is assumed to be on that subnet, and you can use
arp to get to it.
[1:2:4:5:6::1] is not on that subnet, no matter how many arp
entries you have for it, a conformant IP application will behave
by consulting prefixes first.
And, I use the current version of IP. The old one, version 4,
went obsolete last tuesday. Obslolete, but still widely deployed.
-- mrr
Reply by Didi●February 6, 20112011-02-06
On Feb 6, 12:54=A0pm, Philip Paeps <philip+use...@paeps.cx> wrote:
> ....
>
> At this point, I think you're just trolling and flailing madly.
I explained it well enough. I do not hope that you will get it,
I posted for those who might read the thread to be able to see the
practical part and distinguish arguments from religious babble.
Dimiter
------------------------------------------------------
Dimiter Popoff Transgalactic Instruments
http://www.tgi-sci.com
------------------------------------------------------
http://www.flickr.com/photos/didi_tgi/sets/72157600228621276/
Reply by Philip Paeps●February 6, 20112011-02-06
Didi <dp@tgi-sci.com> wrote:
> On Feb 6, 12:06 am, "robertwess...@yahoo.com"
><robertwess...@yahoo.com> wrote:
>> On Feb 4, 5:06 am, Didi <d...@tgi-sci.com> wrote:
>> I'm pretty sure it's not an issue of how smart the implementation is,
>> but that routing based on the ARP tables is simply wrong. If there
>> are two subnets on the wire, and you want to talk to both, you should
>> have two IPs (one in each subnet) defined for the NIC.
>
> This is the only way on windows and linux systems, yes. Why crossing
> subnets on a wire is "wrong" is something you will have to explain.
That is not what Robert wrote. Robert wrote that routing based on ARP tables
is wrong (and probably more generally that assuming that implementations will
route based on ARP tables is wrong).
ARP is an address resolution mechanism, _not_ a routing mechanism. The fact
that is happens to work like one on a single (or some) implementations does
not mean that it is.
Most implementations consult ARP only after routing. This makes sense for
reasons that have been explained at length. Adding static ARP entries to all
machines on a network segment instead of just assigning them addresses in the
same network is entirely the wrong way to go about things. Why are you using
IP at all in that case? You may as well just have your own protocol inside
Ethernet.
At this point, I think you're just trolling and flailing madly.
- Philip
--
Philip Paeps Please don't email any replies
philip@paeps.cx I follow the newsgroup.
Reply by Didi●February 5, 20112011-02-05
On Feb 6, 12:06=A0am, "robertwess...@yahoo.com"
<robertwess...@yahoo.com> wrote:
> On Feb 4, 5:06=A0am, Didi <d...@tgi-sci.com> wrote:
> ....
> I'm pretty sure it's not an issue of how smart the implementation is,
> but that routing based on the ARP tables is simply wrong. =A0If there
> are two subnets on the wire, and you want to talk to both, you should
> have two IPs (one in each subnet) defined for the NIC.
This is the only way on windows and linux systems, yes. Why crossing
subnets on a wire is "wrong" is something you will have to explain.
> .....
> > Now I was pointed to a registry hack which allowed windows (xp) to
> > more or less
> > have a second IP address on the subnet of interest which solves my
> > problem (which was lack of connectivity, not the dual traffic).
> > It is not quite stable, dhcp renew at times begins to fail
> > and only reset helps (neither disable/enable, nor release/renew
> > works). But I can live with that for now. Then windows' dhcp renew is
> > clunky and disruptive anyway so not such a huge difference.
>
> I think you've misunderstood the hack.
> .....
> What the hack does is to allow both some static IPs/subnets *and* a
> DHCP assigned IP and subnet on a single NIC, which Windows does not
> normally allow.
Yet another thing you have to explain (what makes you think
I misunderstood something).
Dimiter