<div dir="ltr"><div>Hello,</div><div><br></div><div>I am unable to get bird static routes with MPLS labels installed in the kernel routing table on Centos 7 (with upgraded kernel 5.12). </div><div><br></div><div>Steps to set this up:</div><div><br></div><div>1. Load necessary MPLS kernel modules & sysctl setting<br></div><div>modprobe mpls_router </div><div>modprobe mpls_iptunnel </div><div>sysctl -w net.mpls.platform_labels=1048575<br></div><div><br></div><div>2. Install bird2</div><div>3. Set static route in bird configuration then birdc configure (Everything else is default config)</div><div><br></div><div><div style="color:rgb(212,212,212);background-color:rgb(30,30,30);font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;line-height:18px;white-space:pre"><div>[root@centos7 ~]$  cat /etc/bird.conf | grep <span style="color:rgb(206,145,120)">"protocol static"</span> -A 4</div><div>protocol static {</div><div>   vrf default;</div><div>   ipv4;</div><div>   route <a href="http://1.1.1.1/32">1.1.1.1/32</a> via <span style="color:rgb(206,145,120)">"ens192"</span> mpls 299792;</div><div>}</div><div>[cbutera@telegraf-edge001 ~]$ ip route ls 1.1.1.1</div><div>1.1.1.1 dev ens192 proto bird scope link metric 32</div></div></div><div>You can see in the output above that there is no encap mpls instruction on the route</div><div><br></div><div>Following the same procedure on Debian 11 or Centos 8 work successfully. See output below</div><div><div style="color:rgb(212,212,212);background-color:rgb(30,30,30);font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;line-height:18px;white-space:pre"><div>[root@centos8 ~]<span style="color:rgb(106,153,85)"> cat /etc/bird.conf | grep "protocol static" -A 4</span></div><div>protocol static {</div><div>    ipv4;</div><div>        vrf default;</div><div>        route <a href="http://1.1.1.1/32">1.1.1.1/32</a> via <span style="color:rgb(206,145,120)">"ens192"</span> mpls 299792;</div><div>}</div><div>[root@localhost ~]<span style="color:rgb(106,153,85)"> ip route ls 1.1.1.1</span></div><div>1.1.1.1  encap mpls  299792 dev ens192 proto bird scope link metric 32</div></div></div><div><br></div><div><div><br></div></div><div>Note: On Centos 7 adding the route with ip route add command works - Also confirmed that the server is in fact sending packets with MPLS labels</div><div><div style="color:rgb(212,212,212);background-color:rgb(30,30,30);font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;line-height:18px;white-space:pre"><div>[root@centos7 ~] ip route add <a href="http://8.8.8.8/32">8.8.8.8/32</a> encap mpls 299793 dev ens192</div><div>[root@centos7 ~] ip route ls 8.8.8.8</div><div>8.8.8.8  encap mpls  299793 dev ens192 scope link</div></div></div><div><br></div><div><br></div><div>MPLS Kernel modules needed for this were introduced in Kernel version 4.3. I have tested on the two versions listed below:</div><div><ul><li>5.12.9-1.el7.elrepo.x86_646.</li><li>2.0-1.el7.elrepo.x86_64</li></ul></div><div><br></div><div>Thanks you,</div><div>Charlie</div><div><br></div></div>