Description

Users may find that origin validation for the Border Gateway Protocol (BGP) throws the Address already in use and Operation already in progress errors when a TCP session with the validation server is not established.

This article explains the cause for these errors to be reported, while also detailing the steps to troubleshoot the issue.

Symptoms

Origin validation for BGP throws the following errors when a TCP session with the validation server is not established:

router-re0 rpd[47958]: task_connect: task RV.192.16.1.2+2222 addr 192.16.1.2+2222: Address already in use
router-re0 rpd[47958]: task_connect: task RV.205.93.207.69+2222 addr 205.93.207.69+2222: Operation already in progress
router-re0 rpd[47958]: task_connect: task RV.192.16.1.2+2222 addr 192.16.1.2+2222: Address already in use
router-re0 rpd[47958]: task_connect: task RV.205.93.207.69+2222 addr 205.93.207.69+2222: Operation already in progress

Solution

"Address already in use" and "Operation already in progress" are valid error codes when either there is no route to reach the validation server or there is a route to the validation server address but no validation server present to accept the connection request. 

To troubleshoot the issue, perform the following steps:

  1. Make sure that there is connectivity to the validation server via the ping and traceroute utilities.
  • labroot@lab> ping server_address
  • labroot@lab>traceroute server_address
  1. TCP port 8282 must be allowed on the local lo0 protect-RE filter. Make sure that no intermediate device blocks this port. Check the lo0 filter configuration to make sure that this is permitted:

[edit]
labroot@lab# show interfaces lo0
unit 0 {
    family inet {
        filter {
            input protect_re; <<<<< filter applied on lo0
        }
        address 1.1.1.1/32;
    }
    family iso {
        address 49.0001.1921.6800.0008.00;
    }
}

[edit]
labroot@lab# show firewall family inet filter protect_re
term 1 {
    from {
        source-prefix-list {
            trusted_servers; ## 'trusted_servers' is not defined
        }
        protocol tcp;
        destination-port 8282; <<<<< Permits port 8282
    }
    then accept;
}
term 2 {
    then {
        discard;
    }
}
  1. Perform a TCP dump on both the router and the server on which the TCP session has been established. To find out which interface connects to the server, do a execute the show route server_address command. 

  • From the router, execute: monitor traffic interface <interface name> matching “host x.x.x.x”  no-resolve .
  1. If connectivity is confirmed and the errors persist, enable traceoptions for a more detailed look:

set routing-options validation traceoptions file rv-g.log
set routing-options validation traceoptions file size 1000000
set routing-options validation traceoptions file files 10
set routing-options validation traceoptions file world-readable
set routing-options validation traceoptions flag all

With the above traceoptions information, contact Support to open a Technical Service Request.