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