<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Cambria;
        panose-1:2 4 5 3 5 4 6 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:2.0cm 42.5pt 2.0cm 3.0cm;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="RU" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">There is waaaay too many problems that we have with “multiple interfaces using link-local addresses” per se.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">They are outlined in
<a href="https://datatracker.ietf.org/doc/html/rfc3927#section-3">https://datatracker.ietf.org/doc/html/rfc3927#section-3</a> but no solutions are actually provided there.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">When, in addition to that, you connect those multiple interfaces to the same physical network segment, you add another<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">bunch of problems on top that are discussed here:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><a href="https://serverfault.com/questions/415304/multiple-physical-interfaces-with-ips-on-the-same-subnet">https://serverfault.com/questions/415304/multiple-physical-interfaces-with-ips-on-the-same-subnet</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><br>
With your proposal, as I understand it, you may be solving one part of the “scoped addresses” problem here, but the rest remains.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">I may be missing some use-cases, but I gather link-local addresses are primarily needed for discovery of newly installed OpenBMC<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">machines before they are properly integrated into a DHCP-based or statically configure network. Taking that into account, in my<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">humble opinion, the best way would be to have link-local addressing enabled for just eth0.<br>
<br>
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">I also believe that in production environments the BMC shall not be connected to the same network segment using multiple interfaces.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">If that is needed for failover, then we should think about adding the bridging and bonding support instead.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">WBR, Alexander Amelkin<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">P.S. I also believe that it is VERY wrong that we still allow setting per-interface gateways as BMC is not a router device and doesn’t (and shouldn’t) allow for configuring policy routing
 or any routing whatsoever.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> openbmc <openbmc-bounces+a.amelkin=yadro.com@lists.ozlabs.org>
<b>On Behalf Of </b>raviteja bailapudi<br>
<b>Sent:</b> Wednesday, October 11, 2023 11:27 AM<br>
<b>To:</b> OpenBMC Maillist <openbmc@lists.ozlabs.org>; Ratan Gupta <ratankgupta31@gmail.com>; wak@google.com; Sunitha Harish <sunithaharish04@gmail.com>; johnathanx.mantey@intel.com<br>
<b>Subject:</b> Add network RoutingPolicyRules at OpenBMC Networkd<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<div style="border:dotted #003333 1.0pt;padding:0cm 0cm 0cm 0cm">
<p align="center" style="text-align:center;mso-line-height-alt:0pt;background:#F7A29C">
<span style="font-size:10.0pt;font-family:"Cambria",serif;color:black">«Внимание! Данное письмо от внешнего адресата!»
</span><span style="font-size:10.0pt;font-family:"Cambria",serif"><o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span lang="EN-US">Hi Team<br>
<br>
We have noticed network routing issues when the same subnet IP addresses configured on both eth0 and eth1 ethernet interfaces, this issue applies to all types of addresses like static, DHCP and LinkLocal address configuration.<br>
<br>
Currently IPv4 LinkLocal addressing is enabled on both interfaces, so both interfaces come up with the same subnet Link local IP addresses (169.254.x.y), but only one link local address will be reachable due to these same subnet routes on both interfaces.<br>
<br>
Here is the systemd issue </span><a href="https://github.com/systemd/systemd/issues/28814"><span lang="EN-US">https://github.com/systemd/systemd/issues/28814</span></a><span lang="EN-US">
<br>
I have discussed in the systemd community and explored systemd's RoutingPolicyRules configuration as suggested by the systemd community and it works.<br>
<br>
To solve this problem we are proposing to make changes in phosphor-networkd to configure/populate systemd-networkd RoutingPolicyRule for each IP address configured on each interface, there is no user intervention or user interface changes needed. phosphor-networkd
 internally takes care of updating the systemd-networkd configuration as required<br>
<br>
Here is the example of additional systemd configuration required for each IP address configured on the interface.<br>
Example:<br>
[Route]<br>
PreferredSource=169.254.202.113<br>
Destination=</span><a href="http://169.254.202.113/16"><span lang="EN-US">169.254.202.113/16</span></a><span lang="EN-US"><br>
Table=11<br>
[Route]<br>
Gateway=169.254.0.0<br>
Table=11<br>
[RoutingPolicyRule]<br>
Table=11<br>
To=</span><a href="http://169.254.202.113/16"><span lang="EN-US">169.254.202.113/16</span></a><span lang="EN-US"><br>
[RoutingPolicyRule]<br>
Table=11<br>
From=</span><a href="http://169.254.202.113/16"><span lang="EN-US">169.254.202.113/16</span></a><span lang="EN-US"><br>
<br>
Please share your views on the same. <o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal">Regards,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Raviteja<o:p></o:p></p>
</div>
</div>
</div>
</div>
</body>
</html>