BIRD - Config Support for RFC 3107 - Carrying Label Information in BGP

Jan Maria Matejka jan.matejka at nic.cz
Thu Jun 14 22:57:55 CEST 2018


There are switches in the code to drop MPLS labels when the kernel
doesn't support it.

If you run
$ grep '^#define HAVE_MPLS_KERNEL' config.log
(config.log is a product of ./configure)
it should show that it is defined to 1.

If not, try running ./configure to check whether it shows you
Kernel MPLS Support: yes

If not, install also kernel headers for your current kernel.

Maria

On 06/14/2018 08:13 PM, Thiruvazhiyan Lakshmanan wrote:
> Thanks Ondrej,
> 
> With your suggested changes, I notice both Kernel and BGP uses single
> table (master4) and both have the routes. However, the routes shown in
> the bird has labels attached to them, the routes shown in Kernel table
> do not show the labels to them.
> 
>  
> 
> bird> show route
> 
> Table master4:
> 
> 1.0.1.0/24           unicast [bgp1 11:48:56.097] * (100) [AS65001i]
> 
>         via 10.10.101.1 on bond0.11 mpls 1001
> 
> 1.0.0.0/24           unicast [bgp1 11:48:56.097] * (100) [AS65001i]
> 
>         via 10.10.101.1 on bond0.11 mpls 1000
> 
> 1.0.3.0/24           unicast [bgp1 11:48:56.097] * (100) [AS65001i]
> 
>         via 10.10.101.1 on bond0.11 mpls 1003
> 
> 1.0.2.0/24           unicast [bgp1 11:48:56.097] * (100) [AS65001i]
> 
>         via 10.10.101.1 on bond0.11 mpls 1002
> 
> 1.0.5.0/24           unicast [bgp1 11:48:56.097] * (100) [AS65001i]
> 
>         via 10.10.101.1 on bond0.11 mpls 1005
> 
> 1.0.4.0/24           unicast [bgp1 11:48:56.097] * (100) [AS65001i]
> 
>         via 10.10.101.1 on bond0.11 mpls 1004
> 
> 1.0.7.0/24           unicast [bgp1 11:48:56.097] * (100) [AS65001i]
> 
>         via 10.10.101.1 on bond0.11 mpls 1007
> 
> 1.0.6.0/24           unicast [bgp1 11:48:56.097] * (100) [AS65001i]
> 
>         via 10.10.101.1 on bond0.11 mpls 1006
> 
> 1.0.9.0/24           unicast [bgp1 11:48:56.097] * (100) [AS65001i]
> 
>         via 10.10.101.1 on bond0.11 mpls 1009
> 
> 1.0.8.0/24           unicast [bgp1 11:48:56.097] * (100) [AS65001i]
> 
>         via 10.10.101.1 on bond0.11 mpls 1008
> 
> 10.10.101.0/24       unicast [direct1 11:48:09.102] * (240)
> 
>         dev bond0.11
> 
> 135.21.13.160/28     unicast [direct1 11:46:40.209] * (240)
> 
>         dev ens3
> 
> bird>
> 
>  
> 
> root at ubuntu4-4-VM1:/usr/local/etc# ip -f mpls route show
> 
> 100 as to 200 via inet 192.168.2.2 dev ens3
> 
> 300 dev lo
> 
> root at ubuntu4-4-VM1:/usr/local/etc# ip -f inet route show
> 
> default via 135.21.13.161 dev ens3 onlink
> 
> 1.0.0.0/24 via 10.10.101.1 dev bond0.11  proto bird  metric 32
> 
> 1.0.1.0/24 via 10.10.101.1 dev bond0.11  proto bird  metric 32
> 
> 1.0.2.0/24 via 10.10.101.1 dev bond0.11  proto bird  metric 32
> 
> 1.0.3.0/24 via 10.10.101.1 dev bond0.11  proto bird  metric 32
> 
> 1.0.4.0/24 via 10.10.101.1 dev bond0.11  proto bird  metric 32
> 
> 1.0.5.0/24 via 10.10.101.1 dev bond0.11  proto bird  metric 32
> 
> 1.0.6.0/24 via 10.10.101.1 dev bond0.11  proto bird  metric 32
> 
> 1.0.7.0/24 via 10.10.101.1 dev bond0.11  proto bird  metric 32
> 
> 1.0.8.0/24 via 10.10.101.1 dev bond0.11  proto bird  metric 32
> 
> 1.0.9.0/24 via 10.10.101.1 dev bond0.11  proto bird  metric 32
> 
> 10.10.101.0/24 dev bond0.11  proto kernel  scope link  src 10.10.101.2
> 
> 10.10.101.0/24 dev bond0.11  proto bird  scope link  metric 32
> 
> 135.21.13.160/28 dev ens3  proto kernel  scope link  src 135.21.13.165
> 
> 135.21.13.160/28 dev ens3  proto bird  scope link  metric 32
> 
> root at ubuntu4-4-VM1:/
> 
>  
> 
> bird> show protocols all
> 
> Name       Proto      Table      State  Since         Info
> 
> kernel1    Kernel     master4    up     11:46:40.203
> 
>   Channel ipv4
> 
>     State:          UP
> 
>     Table:          master4
> 
>     Preference:     10
> 
>     Input filter:   ACCEPT
> 
>     Output filter:  ACCEPT
> 
>     Routes:         0 imported, 12 exported
> 
>     Route change stats:     received   rejected   filtered    ignored  
> accepted
> 
>       Import updates:              0          0          0         
> 0          0
> 
>       Import withdraws:            0          0        ---         
> 0          0
> 
>       Export updates:             13          0          0       
> ---         13
> 
>       Export withdraws:            1        ---        ---       
> ---          1
> 
>  
> 
> direct1    Direct     ---        up     11:46:40.203
> 
>   Channel ipv4
> 
>     State:          UP
> 
>     Table:          master4
> 
>     Preference:     240
> 
>     Input filter:   ACCEPT
> 
>     Output filter:  ACCEPT
> 
>     Routes:         2 imported, 0 exported
> 
>     Route change stats:     received   rejected   filtered    ignored  
> accepted
> 
>       Import updates:              3          0          0         
> 0          3
> 
>       Import withdraws:            1          0        ---        
>  0          1
> 
>       Export updates:              0          0          0       
> ---          0
> 
>       Export withdraws:            0        ---        ---       
> ---          0
> 
>  
> 
> device1    Device     ---        up     11:46:40.203
> 
>  
> 
> bgp1       BGP        ---        up     11:48:56.087  Established
> 
>   BGP state:          Established
> 
>     Neighbor address: 10.10.101.1
> 
>     Neighbor AS:      65001
> 
>     Neighbor ID:      192.0.0.1
> 
>     Local capabilities
> 
>       Multiprotocol
> 
>         AF announced: ipv4-mpls
> 
>       Route refresh
> 
>       Graceful restart
> 
>       4-octet AS numbers
> 
>       Enhanced refresh
> 
>     Neighbor capabilities
> 
>       Multiprotocol
> 
>         AF announced: vpn4-mpls ipv4-mpls
> 
>     Session:          external
> 
>     Source address:   10.10.101.2
> 
>     Hold timer:       66.292/90
> 
>     Keepalive timer:  21.935/30
> 
>   Channel ipv4-mpls
> 
>     State:          UP
> 
>     Table:          master4
> 
>     Preference:     100
> 
>     Input filter:   ACCEPT
> 
>     Output filter:  ACCEPT
> 
>     Routes:         10 imported, 2 exported
> 
>     Route change stats:     received   rejected   filtered    ignored  
> accepted
> 
>       Import updates:             10          0          0         
> 0         10
> 
>       Import withdraws:            0          0        ---         
> 0          0
> 
>       Export updates:             12         10          0       
> ---          2
> 
>       Export withdraws:            0        ---        ---       
> ---          0
> 
>     BGP Next hop:   10.10.101.2
> 
>  
> 
> bird>
> 
>  
> 
> root at ubuntu4-4-VM1:/usr/local/etc# more bird.conf
> 
> router id 198.51.101.10;
> 
>  
> 
> ipv4 table master4;
> 
> ipv6 table master6;
> 
>  
> 
> protocol kernel {
> 
>         persist;
> 
>         scan time 10;
> 
>         ipv4 {
> 
>                 export all;
> 
>                 import all;
> 
>         };
> 
> }
> 
> protocol direct {
> 
>         ipv4 {
> 
>                 export all;
> 
>                 import all;
> 
>         };
> 
>         interface "-eth*", "*";
> 
> }
> 
> protocol device {
> 
>         scan time 10;           # Scan interfaces every 10 seconds
> 
> }
> 
> protocol bgp {
> 
>         local 10.10.101.2 as 65110;        # Use a private AS number
> 
>         neighbor 10.10.101.1 as 65001;    # Our neighbor ...
> 
>         # IPv4 with MPLS labels (1/4)
> 
>         ipv4 mpls {
> 
>                 # explicit IPv4 table
> 
>                 import all;
> 
>                 export all;
> 
>                 next hop self; # advertise this router as next hop
> 
>         };
> 
> }
> 
>  
> 
> root at ubuntu4-4-VM1:/usr/local/etc#
> 
>  
> 
> Regards,
> 
> Thiruvazhiyan L
> 
>  
> 
>  
> 
>  
> 
> -----Original Message-----
> From: Ondrej Zajicek [mailto:santiago at crfreenet.org]
> Sent: Thursday, June 14, 2018 9:08 AM
> To: Thiruvazhiyan Lakshmanan
> Cc: bird-users at network.cz
> Subject: Re: BIRD - Config Support for RFC 3107 - Carrying Label
> Information in BGP
> 
>  
> 
> On Wed, Jun 13, 2018 at 09:33:56PM +0000, Thiruvazhiyan Lakshmanan wrote:
> 
>> Hi Ondrej,
> 
>>
> 
>> Thanks for your reply. I have upgraded the kernel on my VM and now I
> am getting the 3107 routes in the mtab4 table in the bird. But the
> routes are not programed to mpls Kernel table. Maybe I am missing some
> configuration in the bird.conf. can you please help.
> 
>>
> 
>> Below is the bird.conf that I am using,
> 
>  
> 
> Hi
> 
>  
> 
> You have two pairs of routing tables (master4/6 and mtab4/6), BGP is
> 
> connected to both (regular to master4/6 and 3107 to mtab4/6). But only
> 
> the master4/6 is connected by kernel protocol to the real kernel routing
> 
> table.
> 
>  
> 
> You probably do not need regular BGP, only RFC 3107 (there are no routes
> 
> in master4/6 other than from Direct protocol). So you should:
> 
>  
> 
> Remove additional routing tables:
> 
>  
> 
>   ipv4 table mtab4;
> 
>   ipv6 table mtab6;
> 
>  
> 
> Remove 'ipv4' block in BGP, keep only 'ipv4 mpls' block (RFC 3107 routes)
> 
>  
> 
> Remove 'table mtab4' from 'ipv4 mpls' block.
> 
>  
> 
> -- 
> 
> Elen sila lumenn' omentielvo
> 
>  
> 
> Ondrej 'Santiago' Zajicek (email: santiago at crfreenet.org)
> 
> OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net)
> 
> "To err is human -- to blame it on a computer is even more so."
> 
> ============================================================================================================================
> 
> Disclaimer:  This message and the information contained herein is
> proprietary and confidential and subject to the Tech Mahindra policy
> statement, you may review the policy at
> http://www.techmahindra.com/Disclaimer.html externally
> http://tim.techmahindra.com/tim/disclaimer.html internally within
> TechMahindra.
> 
> ============================================================================================================================
> 



More information about the Bird-users mailing list