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&#4294967295;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&nbsp;am, "robertwess...@yahoo.com" ><robertwess...@yahoo.com> wrote: >> On Feb 4, 5:06&nbsp;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. &nbsp;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