This article explains the meaning of ‘Next hop type: Fictitious’ , when it is seen under certain BGP routing tables.
Sometimes, you may see ‘Next hop type: Fictitious’ under certain BGP address-families’ route tables. For example:
user@mx> show route table bgp.inetsrte.0 extensive | no-more bgp.inetsrte.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) 98-10.0.0.7-6534<sr>/96 (1 entry, 0 announced) *BGP Preference: 170/-101 SRTE Policy Path: Path preference: 99 Binding-SID: 1006534 Segment list: Weight: 1 Label: 100064 ttl: Local-ttl-policy Label: 100054 ttl: Local-ttl-policy Label: 100034 ttl: Local-ttl-policy Label: 100044 ttl: Local-ttl-policy Label: 100074 ttl: Local-ttl-policy Next hop type: Fictitious, Next hop index: 0 Address: 0x7e208dc Next-hop reference count: 1 Next hop: 10.0.0.77 State: <Active Int Ext> Local AS: 19211 Peer AS: 19211 Age: 14:25:55 Or… user@mx > show route table inetflow.0 extensive inetflow.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) 12.12.12.12,*/term:1 (1 entry, 1 announced) TSI: KRT in dfwd; Action(s): rate-limit 10000kbps,count Page 0 idx 0, (group Clean-Pipe type Internal) Type 1 val 0x33c6578 (adv_entry) Advertised metrics: Nexthop: Self Localpref: 100 AS path: [9924] I Communities: 9924:4300 traffic-rate:9924:1250000 Path 12.12.12.12,* Vector len 4. Val: 0 *Flow Preference: 5 Next hop type: Fictitious, Next hop index: 0 Address: 0x1e11a04 Next-hop reference count: 1 State: <Active> Local AS: 9924 Age: 3:40:49 Validation State: unverified Task: RT Flow Announcement bits (2): 0-Flow 1-BGP_RT_Background AS path: I Communities: traffic-rate:9924:1250000
user@mx> show route table bgp.inetsrte.0 extensive | no-more bgp.inetsrte.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) 98-10.0.0.7-6534<sr>/96 (1 entry, 0 announced) *BGP Preference: 170/-101 SRTE Policy Path: Path preference: 99 Binding-SID: 1006534 Segment list: Weight: 1 Label: 100064 ttl: Local-ttl-policy Label: 100054 ttl: Local-ttl-policy Label: 100034 ttl: Local-ttl-policy Label: 100044 ttl: Local-ttl-policy Label: 100074 ttl: Local-ttl-policy Next hop type: Fictitious, Next hop index: 0 Address: 0x7e208dc Next-hop reference count: 1 Next hop: 10.0.0.77 State: <Active Int Ext> Local AS: 19211 Peer AS: 19211 Age: 14:25:55
user@mx > show route table inetflow.0 extensive inetflow.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) 12.12.12.12,*/term:1 (1 entry, 1 announced) TSI: KRT in dfwd; Action(s): rate-limit 10000kbps,count Page 0 idx 0, (group Clean-Pipe type Internal) Type 1 val 0x33c6578 (adv_entry) Advertised metrics: Nexthop: Self Localpref: 100 AS path: [9924] I Communities: 9924:4300 traffic-rate:9924:1250000 Path 12.12.12.12,* Vector len 4. Val: 0 *Flow Preference: 5 Next hop type: Fictitious, Next hop index: 0 Address: 0x1e11a04 Next-hop reference count: 1 State: <Active> Local AS: 9924 Age: 3:40:49 Validation State: unverified Task: RT Flow Announcement bits (2): 0-Flow 1-BGP_RT_Background AS path: I Communities: traffic-rate:9924:1250000
JUNOS uses fictitious next hop type when it does not intend to perform next-hop resolution, and consider the protocol next-hop is good. This is often seen is the case of BGP FlowSpec routes (table inetflow.0 ), BGP SRTE routes (table bgp.inetsrte.0 ), or BGP Link-State distribution routes (table lsdist.0 ).
In FlowSpec scenario, a router receives such routes to perform ‘blackhole’ or ‘rate-limit’ accordingly.
In SRTE scenario, a router forwards the traffic according to the assigned segment list (label information).
In BGP Link-State scenario, a router forwards traffic based on the NorthStar Controller’s policy through PCEP.
The protocol next-hop of BGP route that is flagged as ‘fictitious’ here is of no use for actual traffic forwarding.