_UPDOWN(8)
π _UPDOWN(8) β like, the whole manual, bestie
okay so real talk: this page lives in the Executable programs section of the manual, and it's called _UPDOWN(8). yes the underscore is part of the name, don't come for her. she's a script, she's iconic, she's got range. let's get into it β¨
π NAME
ipsec__updown β kernel and routing manipulation script. that's it. that's the whole vibe. she manipulates kernels and routes and she does it flawlessly π
πΈ SYNOPSIS
_updown is invoked by pluto when it has brought up a new connection. ok so pluto is the one calling her up, like "hey bestie, connection's live, do your thing."
this script is used to insert the appropriate routing entries for IPsec operation on some kernel IPsec stacks, and may do other necessary work that is kernel or user specific, such as defining custom firewall rules. so like, she's not just a one-trick pony β she handles the routing entries on certain kernel IPsec stacks and she's flexible enough to do whatever extra kernel- or user-specific stuff you need, custom firewall rules included. main character energy fr.
the interface to the script is documented in the pluto man page. go read that one too, iykyk.
π¦ VARIABLES
the way that _updown gets passed a whole little entourage of variables β she can act differently based on the info she's handed. let's meet the squad π«Ά
PLUTO_VERBβ specifies the name of the operation to be performed, which can be one ofprepare-host,prepare-client,up-host,up-client,down-hostordown-client. and listen, if the address family for security gateway to security gateway communications is IPv6, then a suffix of-v6is added to this verb. so like,up-client-v6. slay.PLUTO_CONNECTIONβ is the name of the connection for which we are routing. the connection's actual name, girl.PLUTO_NEXT_HOPβ is the next hop to which packets bound for the peer must be sent.PLUTO_INTERFACEβ is the name of the real interface used by encrypted traffic and IKE traffic.PLUTO_MEβ is the IP address of our host.PLUTO_MY_CLIENTβ is the IP address / count of our client subnet. if the client is just the host, this will be the host's own IP address / max (where max is32for IPv4 and128for IPv6).PLUTO_MY_CLIENT_NETβ is the IP address of our client net. if the client is just the host, this will be the host's own IP address.PLUTO_MY_CLIENT_MASKβ is the mask for our client net. if the client is just the host, this will be255.255.255.255. yes, the whole mask. she's committed.PLUTO_PEERβ is the IP address of our peer.PLUTO_PEER_CLIENTβ is the IP address / count of the peer's client subnet. if the client is just the peer, this will be the peer's own IP address / max (where max is32for IPv4 and128for IPv6).PLUTO_PEER_CLIENT_NETβ is the IP address of the peer's client net. if the client is just the peer, this will be the peer's own IP address.PLUTO_PEER_CLIENT_MASKβ is the mask for the peer's client net. if the client is just the peer, this will be255.255.255.255.PLUTO_MY_PROTOCOLβ lists the protocols allowed over this IPsec SA.PLUTO_PEER_PROTOCOLβ lists the protocols the peer allows over this IPsec SA.PLUTO_MY_PORTβ lists the ports allowed over this IPsec SA.PLUTO_PEER_PORTβ lists the ports the peer allows over this IPsec SA.PLUTO_MY_IDβ lists our id.PLUTO_PEER_IDβ lists our peer's id.PLUTO_PEER_CAβ lists the peer's CA.
lowkey that's a lot of variables and honestly? she handles all of them without breaking a sweat π
π₯ SEE ALSO
ipsec(8), ipsec_pluto(8). go read those, they're the lore.
π HISTORY
man page written for the Linux FreeS/WAN project <https://www.freeswan.org/> by Michael Richardson. original program written by Henry Spencer. legends, both of them π
π AUTHOR
- Paul Wouters β placeholder to suppress warning. and honestly? we love a humble king. the warning has been suppressed. the vibes are immaculate π
π reminder bestie: every variable name, every value, every default and every -v6 suffix up there is exactly as written β copy-paste them, don't paraphrase them. she's picky about her variable names and honestly same.
πΈ that's the whole page! brought to you by libreswan, dated 10/19/2026 β the manual page of all time, fr fr. ok bye now, go configure your kernel routes, you've got this π¦β¨
π¦ where this page comes from
- centos-stream 9: libreswan 4.15-11.el9 Β· GPLv2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms