Re: ARP flux vs. weak/strong ES model

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ji,

On 2/17/19 06:10, Grant Taylor wrote:
On 2/15/19 1:11 PM, Erik Auerswald wrote:
[...]
The earliest reference I could find to "ARP flux" was in the Guide to IP Layer Network Administration document, with references going back to 2003.

I get the impression that the "ARP flux" nomenclature may have originated from the Linux community and grown out from there.

Perhaps because it is a Linux only thing? That is just a guess.

[...]
I'd say the distinction between weak and strong end-system (ES) model is related to the problem at hand, but "ARP flux" is a distinct issue not necessarily observed with a host implementing the weak (ES) model.

Do you know of any examples where the "ARP flux" /symptom/ was observed on a "strong end system"?

I have only ever seen it on Linux.

RFC 1122 continues to state that "[The weak ES] model [...] is necessary for hosts that have embedded gateway functionality."

I disagree with that assertion.  (Not your recounting of it.)

I'd say that assertion is often correct, but need not be.

I think that this assertion motivates looking at non-Linux systems, especially traditional routers, and if they act as weak or strong end-systems. And then look at their ARP handling, excluding Proxy ARP.

A gateway (or router) needs to accept IP packets not addressed to the receiving interface in order to forward them. But most commercial routers will not answer an ARP request ingressing on the wrong interface, unless Proxy-ARP is activated. By default, Linux does answer such ARP requests.

I believe the MUST vs MUST NOT text is primarily about traffic to the end system, not traffic passing through the system.  Particularly how the system's IP stack responds in relation to IPs bound locally.

I think that routing / forwarding is decidedly different.  Yes, a router must allow traffic in that is not destined to the router.  (Assuming that we're talking about a forwarding interface and not a management interface.)  That's the router's job.

Yes, a system dedicated to packet forwarding is different. Often it is an end-system as well for management purposes, sometimes for additional services (inlcuding BGP). RFC 1122 looks at IP hosts, not necessarily dedicated gateways, but includes hosts that act as gateways, too. Thus I do not say that RFC 1122 is necessarily pertinent to dedicated routers, but often even dedicated routers act like end-systems with embedded gateway functionality.

But the router does not need to respond to ARP requests from one interface for IPs on a different interface.

Exactly. Unless Proxy ARP is active, any "traditional" router I know answers ARP requests only if they arrive at the interface configured with the IP address in the ARP request.

Again, any "traditional" router accepts IP packets directed to any of its interface IPs irrespective of the ingress interface. That is the basis for using a loopback address for router management or BGP sessions. In that case a router acts as an end-system as well.

The above can often be changed via configuration, to separate management interfaces from forwarding interfaces.

This answer to ARP requests arriving at the wrong interface is the root cause for most problems commonly subsumed under "Linux implements the weak ES model". But those problems do not occur with other weak ES model implementing systems, e.g. Extreme Networks EXOS switches.

Each IP stack is different.  I wouldn't take the difference in behavior of the Linux IP stack and EXOS's IP stack as definitive behavior.

But the weak vs. strong ES model is independent of IP stacks. It is a description of behaviour, and can be used as guidance when implementing an IP stack.

The two examples are just that, examples, nothing more. Cisco IOS (with deactivated Proxy ARP) is another example for weak ES model without ARP flux. But just one example (e.g. of Extreme or Cisco) suffices to show that weak ES model does not imply ARP flux. The Linux example shows that weak ES model and ARP flux can occur together.

Additionally, changing Linux behaviour (via sysctl) to not answer those ARP requests does not change the weak ES model applicability to Linux (i.e. IP packets delivered inside an Ethernet frame addressed to an interface MAC of a Linux system are accepted even if they are addressed to another IP address of the Linux host; packet forwarding is not affected either).

Linux's cavalier default behaviour in answering ARP requests might be motivated by the weak ES model in helping other systems on the LAN reach the Linux server, even if they use an IP address assigned to another LAN the Linux server is connected to. Thus the problem of "ARP flux" is probably closely related to how Linux implements the weak ES model, but not necessarily to the weak ES model itself as described in RFC 1122.

I feel like "ARP flux" is a /symptom/ of "weak ES model".

I'd say it is somewhat independent of the weak ES model. It is a symptom of the Linux IP stack. That IP stack may be built around weak ES model ideas. Other IP stacks adhere to the weak ES model as well without exhibiting ARP flux. Thus I do not accept that "ARP flux" is a symptom (or necessary result) of "weak ES model".

But it seems to me that combining strong ES model with ARP flux does not make sense. As such I do see some relation between ARP flux and weak ES model.

[...]
Thus I argue that using "ARP flux" to describe the ARP problem observed with Linux is preferable to attributing the problems to Linux's implementation of the weak ES model.

You logic makes sense.  I choose to think something different.

Then we have to agree to disagree.

Thanks,
Erik



[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux