<div dir="ltr">Hello,
<br><br>I've noticed something about the updown script that doesn't seem right. 

<br>With Revision 881e9a7e of src/_updown/_<a href="http://updown.in">updown.in</a> the description of PLUTO_NEXT_HOP got removed, because it is not supported by charon. 
But the usage still remains and is still there @master. What currently happens is that the routes are not added at all, because the generated command line for "iproute2" is not valid.
<br><br>Starting at line 237:
<br>      if [ -n "$PLUTO_NEXT_HOP" ]
        <br>then
            <br>parms2="via $PLUTO_NEXT_HOP"
<br>      else
            <br>parms2="via $PLUTO_PEER"<br>fi
        <br>parms2="$parms2 dev $PLUTO_INTERFACE"
   
<br><br>This should obviously decide how to add the route to the linux routing table. If there is at least one router in between both peers, a route via the next hop has to be set (not directly to the other peer). Because PLUTO_NEXT_HOP is not supported by charon this script will try to add a route via the peer itself. The peer, in almost all setups, is not in the same subnet, so adding this route will fail.

<br><br>Routing will still work without a specific route, because all packets to the subnet behind the other peer will take the default route of the system. 
But let us assume that we want to ping a client behind a remote peer directly from our local peer. The packets will find their way, but the source ip will not be from our local subnet, because the part about the src ip is obviously also missing (parms3="$parms3 src ${PLUTO_MY_SOURCEIP%/*} table $SOURCEIP_ROUTING_TABLE").

<br><br>Did I miss something?

I've not looked into the issue in more detail.<br><br>Regards, 
Christian Liebscher</div>