Skip to Content.
Sympa Menu

rare-dev - Re: [rare-dev] FW: rift in freerouter

Subject: Rare project developers

List archive

Re: [rare-dev] FW: rift in freerouter


Chronological Thread 
  • From: Antoni Przygienda <>
  • To: mc36 <>, "" <>
  • Subject: Re: [rare-dev] FW: rift in freerouter
  • Date: Sat, 17 Dec 2022 21:15:02 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=juniper.net; dmarc=pass action=none header.from=juniper.net; dkim=pass header.d=juniper.net; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=sLgHnd8E0djykj7zxNfZGasKnizRkwAbd2o0vCsD3zQ=; b=SOHHgVNU/QqfkIHlelsj80rUxQn7JZ467zhZnIe0v+HAFxzhCNPS27n/IIcK9a2vxfSjQOiibZNDI0Hq/eQmLkNlsMGxT9n3uRCHCK5AzrS64mkuVRewVdyGHF3Fx6I1SJM1/AxPLfocElvHjHlIuCZ/SwIufRkiSvDe6QojAlDXMpnkDyb+KoSxji81sGvOz0LVcC2IKgDvdRztrS5EwAG8G8touo7uGAbXkfYU9W4iKPs17i98Dw0p3NdwGjT1W4qOFKbIkT6EABdR0hrv6Qq/CDmlf35MtdQy29017gBGvgVOYPqpd50FHrr8DAAmX6cz9YEKB36iwDUIgymoag==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=idj/+CTjWBE3vY0GMYQ0haxfY5BhheAkhKnMzOg+lszuWaDdM/GPasrPheGvCTUj0NTNYhmGcMAECe2ctuuh/fm8myAKUPA5yu7W7orA72jpOh+/WVZ7CcyLd+vFN8+88uDsj3vOf6jIFtLa6GyP9bncvycgFJW9LLYcgQuMD24A2izuS1SVnYL4bN+KqhNMO0Aj+UIi6tHCrvgBPzo8ccUdaTc23ZZKEM+cO3s85ss/9E/eHPHRjTYszEqEAQkU5G8Npxas4MnyoqKBBlvWA/TKM2zNYaNhfa6o01yCQLdRdoJz3C1443iUoUAQEI1M9NiM8bi8JCPZSa5i59adJg==
  • Msip_labels: MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Enabled=True;MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_SiteId=bea78b3c-4cdb-4130-854a-1d193232e5f4;MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_SetDate=2022-12-17T21:06:53.8397290Z;MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_ContentBits=0;MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Method=Standard

In case of doubt look at the kithara startup file precisely in the git I gave you. I had to add the kill on 22.x that I gave you there. As I said, 19.X has been rift tested on cRPD, 21.x we worked with it as well for some features already but 22.x is really super fresh what I integrated for you this week. So you grabbing the serrated bleeding edge here 😉

 

Anyway, I asked to file a bug on this already which we attend to once folks stop laughin’ about my Makefiles and Dockerfiles and let me commit into mainline. We build tons of different container products in all combinations of features/platforms and it’s non-trivial to layer something like rift in 😉

 

  • Tony

 

From: Antoni Przygienda <>
Date: Saturday, 17 December 2022 at 22:07
To: mc36 <>, <>
Subject: Re: [rare-dev] FW: rift in freerouter

Maybe a bug outstanding on 22.1 on cRPD with rift

 

Just kill rift-proxyd once from the bash. On 2nd run it grabs the config

 

  • Tony

 

From: mc36 <>
Date: Saturday, 17 December 2022 at 21:58
To: Antoni Przygienda <>, <>
Subject: Re: [rare-dev] FW: rift in freerouter

[External Email. Be cautious of content]


however i see this too:

root@p4emu:/home/mc36# docker exec -it crpd01 bash

===>
            Containerized Routing Protocols Daemon (CRPD)
  Copyright (C) 2020-2022, Juniper Networks, Inc. All rights reserved.
                                                                       <===









===============================================
ROUTING IN FAT TREES (RIFT) Environment
Copyright (c) 2016-2023, Juniper Networks, Inc.
All rights reserved.
===============================================

root@crpd01:/# ps aux | grep rift
root         132  0.0  0.0   4412   852 ?        Ss   20:39   0:00 runsv rift-proxyd
root         143  0.0  0.0 790744 12956 ?        S    20:39   0:00 /usr/sbin/rift-proxyd -N
root         392  0.0  0.0  11472  1128 pts/1    S+   20:58   0:00 grep --color=auto rift
root@crpd01:/#




On 12/17/22 21:50, mc36 wrote:
> just another thingy, i can ping between my sid and crpd but i get this:
>
> root@crpd01> show configuration | display set
> set version 20221123.183731_builder.r1297844
> set groups rift-defaults protocols rift traceoptions file size 1000000
> set groups rift-defaults protocols rift traceoptions file files 4
> set groups rift-defaults protocols rift traceoptions level notice
> set groups rift-defaults protocols rift node-id 1108037632
> set groups rift-defaults protocols rift level auto
> set groups rift-defaults protocols rift lie-receive-address family inet 224.0.0.120
> set groups rift-defaults protocols rift lie-receive-address family inet6 ff02::a1f7
> set groups rift-defaults protocols rift interface <*> lie-transmit-address family inet 224.0.0.120
> set groups rift-defaults protocols rift interface <*> lie-transmit-address family inet6 ff02::a1f7
> set policy-options policy-statement ps1 from protocol direct
> set policy-options policy-statement ps1 then accept
> set protocols rift apply-groups rift-defaults
> set protocols rift node-id 12345678
> set protocols rift level top-of-fabric
> set protocols rift export
>
> root@crpd01> show rift node status
> CRIT: RIFT not running: not all arguments converted during string formatting
>
> root@crpd01>
>
> and basically every rift command fails with this message...
>
> On 12/17/22 21:36, mc36 wrote:
>> thank you soo much, now i'm on my way: the documentation helped a lot to figure out the proper docker run knobs:
>>
>> root@p4emu:/home/mc36# docker load -i junos-routing-crpd-amd64-22.1I20221216_1827.docker.save.gz
>> 0890eec52556: Loading layer [==================================================>]       489MB/489MB
>> Loaded image ID: sha256:b40e122aeb60af2a772f8fed3e30f54730ce2bc8f61fae35c2d3d8a166ec0728
>> root@p4emu:/home/mc36# docker volume create crpd01-varlog
>> crpd01-varlog
>> root@p4emu:/home/mc36# docker images
>> REPOSITORY     TAG             IMAGE ID             CREATED               SIZE
>> <none>             <none>       b40e122aeb60     26 hours ago     482MB
>> root@p4emu:/home/mc36# docker run --rm --detach --name crpd01 -h crpd01 --privileged --net=host -v crpd01-config:/config -v crpd01-varlog:/var/log -it b40e122aeb60
>> 2a750945a0cb2bef2545ea92789456c7a6d4d1bdb037fddc501cb233aca02803
>> root@p4emu:/home/mc36# docker exec -it crpd01 cli
>> root@crpd01> show rift versions info
>> Package: 1.4.1.1298669
>> Built On: 2022-12-15T12:00:11.463004567+00:00
>> Built In: JUNOS_221_R3_BRANCH
>> Encoding Version: 6.1
>> Statistics Version: 4.0
>> Services Version: 12.0
>> Auto EVPN Version: 1.0
>>
>> root@crpd01>
>>
>> now i'll be able do the interop! i'll keep you posted... :)
>>
>> br,
>> cs
>>
>>
>>
>>
>> On 12/17/22 20:39, Antoni Przygienda wrote:
>>> Nah, vmx as product been discontinued for quite a while now, we use it internally heavily but most use cases moved to cRPD by now
>>>
>>> We have tons folks who run cRPD on all kind of setups, extensive doc around as well , e.g.
>>>
>>> https://www.juniper.net/documentation/us/en/software/crpd/crpd-deployment/index.html <https://www.juniper.net/documentation/us/en/software/crpd/crpd-deployment/index.html>
>>>
>>> especially
>>>
>>> https://www.juniper.net/documentation/us/en/software/crpd/crpd-deployment/topics/task/crpd-linux-server-install.html
>>>
>>> if you want to plug it into your tool and that doesn   t help let me know I poke internally though as I said, this is very fresh stuff you   re consuming, especially on rift side.
>>> The cRPD 22.1 per se been around for a while and getting into CLI shouldn   t be a problem so I   m sure it   s something fairly simple. Possibly you dind   t give it the min required
>>> interfaces or required volumes, go check /var/log otherwise
>>>
>>> I see your env is similar to what we have with JSON, if you want to plug our stuff into it you   d need to run sideways container and put the config into it. How you hook it into
>>> DPKK, no idea, we have cRPD over sonic and all kind of stuff but I   m staying out the fwd    path to large extent
>>>
>>> -00 tony
>>>
>>> *From: *mc36 <>
>>> *Date: *Saturday, 17 December 2022 at 19:01
>>> *To: *Antoni Przygienda <>, <>
>>> *Subject: *Re: [rare-dev] FW: rift in freerouter
>>>
>>> [External Email. Be cautious of content]
>>>
>>>
>>> hi,
>>> i go inline....
>>> br,
>>> cs
>>>
>>> On 12/17/22 18:19, Antoni Przygienda wrote:
>>>> Sorry, I cannot drop you vmx images easily. Product not supported, only internal stuff, images not supposed to go out and I     m not sure you     ll be able to run 22.x stuff
>>>> anyway, tons
>>>> stuff has changed since we supported the product.
>>>>
>>> okk, then i'll abandon this vmx idea... i just hoped if it's listed on the public juniper.net then it's something one can use...:)
>>>
>>>> Kithara is trivial, just grab a standard ub18 container, throw your stuff onto it, snapshot the image and give it to kithara on a lab.
>>>
>>> there is a project a team member started back in the days at
>>> https://urldefense.com/v3/__https://github.com/rare-freertr/freeRtr-docker__;!!NEt6yMaO-gk!BIIor96kX1heIiq-3mnHYA-9xI33nS8dJx34DODtiVqHg7YQs8oqHVK-O4Mu7G078QvNzw$
>>> <https://urldefense.com/v3/__https:/github.com/rare-freertr/freeRtr-docker__;!!NEt6yMaO-gk!BIIor96kX1heIiq-3mnHYA-9xI33nS8dJx34DODtiVqHg7YQs8oqHVK-O4Mu7G078QvNzw$>hopefully it
>>> still works... :)
>>>
>>>
>>>> To test rift stuff properly you     ll be
>>>> building pretty soon lots tooling yourself to bring up CLOS networks and then realize you cannot run it with VMs at any reasonable size and end up with containers anyway (or
>>>> namespaces as Bruno     s code can partially do but that     s also super limited). RIFT only starts to really cranck once you     re at couple hundred nodes at least
>>>>
>>> well, i'm not against the kithara nor anything but i like the tooling...
>>> i already have templates like this:
>>> https://urldefense.com/v3/__http://src.mchome.nop.hu/cfg/temp-isis.tmpl__;!!NEt6yMaO-gk!BIIor96kX1heIiq-3mnHYA-9xI33nS8dJx34DODtiVqHg7YQs8oqHVK-O4Mu7G2pAb6ItQ$
>>> <https://urldefense.com/v3/__http:/src.mchome.nop.hu/cfg/temp-isis.tmpl__;!!NEt6yMaO-gk!BIIor96kX1heIiq-3mnHYA-9xI33nS8dJx34DODtiVqHg7YQs8oqHVK-O4Mu7G2pAb6ItQ$>
>>> then i can simply use a csv with the intended connections, repetitions, etc...
>>>
>>>
>>>> Very simplest stuff is to run within my Jason environ just like Bruno does, there is no virtualization/data plane at all but you can build very large topologies within seconds. We
>>>> could easily extend it from       don     t run the passive nodes       to       run only nodes with this simulation-partition-id       if you want and then can mix all implementations in
>>>> any fashion
>>>>
>>> well, freerouter dont have global so i can run 2 rift instances and peer them over a hairpin interface...
>>> moreover we have a lightweight dataplane with uses simple udp sockets to pass ethernet frames... the
>>> forwarder is the same found in rare's dpdk dataplane, just the packetio is swapped out here... as it's
>>> a simple process in linux, one can have 1000s of freerouters with dataplanes in a single computer...
>>> for example on a single 2 cpu xeon i run with the test cases with paralell 100, and we can safely
>>> assume that each test case spans up at least 4 routers soo it's there already... :)
>>> but aggreed upon, for rift self testing, the hairpin is more than enough, then it's a single java process,
>>> much like with bruno's stuff, but here java hotspot quickly produces native executable
>>> (or graalvm can do in at compile time if one needs the quick warmup times too, like me:)
>>>
>>> sid#show config-differences
>>> hairpin 1
>>>      exit
>>> router rift4 2
>>>      vrf v2
>>>      router-id 12345678
>>>      redistribute connected
>>>      exit
>>> router rift4 3
>>>      vrf v3
>>>      router-id 87654321
>>>      redistribute connected
>>>      exit
>>> interface loopback2
>>>      vrf forwarding v2
>>>      ipv4 address 2.2.2.2 255.255.255.255
>>>      no shutdown
>>>      no log-link-change
>>>      exit
>>> interface loopback3
>>>      vrf forwarding v3
>>>      ipv4 address 2.2.2.3 255.255.255.255
>>>      no shutdown
>>>      no log-link-change
>>>      exit
>>> interface hairpin11
>>>      vrf forwarding v2
>>>      ipv4 address 1.1.1.1 255.255.255.252
>>>      router rift4 2 enable
>>>      no shutdown
>>>      no log-link-change
>>>      exit
>>> interface hairpin12
>>>      vrf forwarding v3
>>>      ipv4 address 1.1.1.2 255.255.255.252
>>>      router rift4 3 enable
>>>      no shutdown
>>>      no log-link-change
>>>      exit
>>>
>>> sid#
>>> sid#
>>> sid#show ipv4 rift 2 database
>>> dir   origin       num   typ   seq   left
>>> s       12345678   1       2       2       6d23h
>>> s       12345678   2       3       3       6d23h
>>> s       12345678   3       3       1       6d23h
>>> s       87654321   1       2       4       6d23h
>>> s       87654321   2       3       2       6d23h
>>> s       87654321   3       3       1       6d23h
>>> n       12345678   1       2       2       6d23h
>>> n       12345678   2       3       3       6d23h
>>> n       12345678   3       3       1       6d23h
>>> n       87654321   1       2       4       6d23h
>>> n       87654321   2       3       2       6d23h
>>> n       87654321   3       3       1       6d23h
>>>
>>> sid#show ipv4 rift 3 database
>>> dir   origin       num   typ   seq   left
>>> s       12345678   1       2       2       6d23h
>>> s       12345678   2       3       3       6d23h
>>> s       12345678   3       3       1       6d23h
>>> s       87654321   1       2       4       6d23h
>>> s       87654321   2       3       2       6d23h
>>> s       87654321   3       3       1       6d23h
>>> n       12345678   1       2       2       6d23h
>>> n       12345678   2       3       3       6d23h
>>> n       12345678   3       3       1       6d23h
>>> n       87654321   1       2       4       6d23h
>>> n       87654321   2       3       2       6d23h
>>> n       87654321   3       3       1       6d23h
>>>
>>> sid#
>>> sid#
>>> sid#show ipv4 route v2
>>> typ   prefix           metric   iface           hop           time
>>> C       1.1.1.0/30   0/0         hairpin11   null         00:01:00
>>> LOC   1.1.1.1/32   0/1         hairpin11   null         00:01:00
>>> C       2.2.2.2/32   0/0         loopback2   null         00:01:14
>>> F       2.2.2.3/32   100/10   hairpin11   1.1.1.2   00:00:07
>>>
>>> sid#
>>> sid#
>>> sid#show ipv4 route v3
>>> typ   prefix           metric   iface           hop           time
>>> C       1.1.1.0/30   0/0         hairpin12   null         00:00:29
>>> LOC   1.1.1.2/32   0/1         hairpin12   null         00:00:29
>>> F       2.2.2.2/32   100/10   hairpin12   1.1.1.1   00:00:21
>>> C       2.2.2.3/32   0/0         loopback3   null         00:00:09
>>>
>>> sid#ping 2.2.2.2 vrf v3 source loopback3
>>> pinging 2.2.2.2, src="2.2.2.3," vrf=v3, cnt=5, len=64, df=false, tim=1000, gap=0, ttl=255, tos=0, sgt=0, flow=0, fill=0, alrt=-1, sweep=false, multi=false
>>> !!!!!
>>> result=100.0%, recv/sent/lost/err=5/5/0/0, took 18, min/avg/max/dev rtt=0/0.3/1/0.2, ttl 255/255/255/0.0, tos 0/0.0/0/0.0
>>> sid#trace 2.2.2.2 vrf v3 source loopback3
>>> tracing 2.2.2.2, src="2.2.2.3," vrf=v3, prt=0/33440, tim=1000, tos=0, flow=0, len=64
>>> via 2.2.2.2/32 100/10 hairpin12 1.1.1.1 00:00:35
>>> 1 2.2.2.2 time=0
>>> sid#
>>>
>>>
>>>> If you need kithara help I can hook you up directly with one of the authors, I know them well, they     ll be more than happy to bring freerouter in
>>>>
>>>
>>> ahhh, hopefully i'll figure it out alone.. i'll let you know how i progress...
>>>
>>> thanks,
>>> cs
>>>
>>>
>>>> --t ony
>>>>
>>>> *From: *mc36 <>
>>>> *Date: *Saturday, 17 December 2022 at 16:19
>>>> *To: *Antoni Przygienda <>, <>
>>>> *Subject: *Re: [rare-dev] FW: rift in freerouter
>>>>
>>>> [External Email. Be cautious of content]
>>>>
>>>>
>>>> On 12/17/22 16:18, mc36 wrote:
>>>>> that way i'm pretty sure will work and i already have a rift build for that vmx from 2020-10-xx...
>>>> surely a typo, 2022
>>>>
>>>>
>>>> Juniper Business Use Only
>>>>
>>>
>>>
>>> Juniper Business Use Only
>>>


Juniper Business Use Only




Archive powered by MHonArc 2.6.19.

Top of Page