ipadm(8) on Solnix vs Linux and the BSDs
ipadm is the illumos command at /usr/sbin/ipadm. It configures IP interfaces, addresses, IPMP groups and protocol properties through subcommands, and replaces both ifconfig and ndd. Unlike the BSD ifconfig, an address belongs to a named address object (addrobj, such as net0/v4) rather than being set directly on an interface.
The manual pages
- Solnix: ipadm(8) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: ip-address(8) iproute2-7.0.0 (different command, similar job)
- FreeBSD: ifconfig(8) 15.1-RELEASE (different command, similar job)
- OpenBSD: ifconfig(8) 8.0 (different command, similar job)
- NetBSD: ifconfig(8) 11.0 (different command, similar job)
What Solnix runs
A default Solnix system runs the illumos ipadm at /usr/sbin/ipadm (also /sbin/ipadm). No other variants are shipped. The page calls ipadm a stable replacement for ifconfig(8) and ndd(8) and lists ifconfig(8) in SEE ALSO. The bundle does not say whether ifconfig is installed on Solnix.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| FreeBSD, OpenBSD, NetBSD | command model | Solnix ipadm uses subcommands (create-addr, show-if, set-prop and so on). The BSD ifconfig is one command: interface, address family, address, then keyword parameters, with options such as -a and -l for display.Source: Solnix ipadm(8) SYNOPSIS; FreeBSD ifconfig(8) SYNOPSIS; OpenBSD ifconfig(8) SYNOPSIS; NetBSD ifconfig(8) SYNOPSIS |
| all four | address objects (addrobj) | Solnix names each address as interface/string: up to 32 alphanumeric characters, first one alphabetic, unique on the system (for example lo0/v4). Delete, up, down and property subcommands take that name. Linux and the BSDs address an address by its value and interface. Source: Solnix ipadm(8) DESCRIPTION (addrobj); Linux ip-address(8) ip address delete IFADDR dev IFNAME; FreeBSD ifconfig(8) SYNOPSIS |
| FreeBSD, OpenBSD, NetBSD | creating the interface first | Solnix has create-if and create-ip subcommands for IP interfaces, and delete-if and delete-ip for removal. FreeBSD and OpenBSD ifconfig use the create and destroy keywords, and OpenBSD documents them for pseudo-devices. The manual does not say whether Solnix create-addr needs the interface to exist first. Source: Solnix ipadm(8) SYNOPSIS (create-if, create-ip, delete-if, delete-ip); FreeBSD ifconfig(8) SYNOPSIS (create, destroy); OpenBSD ifconfig(8) create, destroy |
| all four | kernel protocol tunables | ipadm set-prop, reset-prop and show-prop get and set properties of ip, ipv4, ipv6, icmp, tcp, sctp or udp, a job the page says ndd used to do. The ifconfig and ip-address pages shown do not cover protocol tunables. The Linux page points to a use_tempaddr sysctl for privacy addresses. Source: Solnix ipadm(8) DESCRIPTION and SYNOPSIS (set-prop, protocol values); Linux ip-address(8) mngtmpaddr |
| OpenBSD | DHCP and autoconfiguration | Solnix: ipadm create-addr -T dhcp or -T addrconf creates a DHCP or IPv6 autoconfigured address (-T dhcp takes -h hostname and -w wait). OpenBSD sets an autoconf flag on the interface with ifconfig, and slaacd(8) (IPv6) or dhcpleased(8) (IPv4) then configures it.Source: Solnix ipadm(8) SYNOPSIS (create-addr -T dhcp, -T addrconf); OpenBSD ifconfig(8) autoconf |
| OpenBSD, NetBSD | down and up semantics | Solnix has down-addr and up-addr, which act on one addrobj. OpenBSD and NetBSD ifconfig mark a whole interface down. OpenBSD also disables routes using the interface, and NetBSD does not. Source: Solnix ipadm(8) SYNOPSIS (down-addr, up-addr); OpenBSD ifconfig(8) down; NetBSD ifconfig(8) down |
| all four | -t flag | Most Solnix ipadm create, set, enable and disable subcommands take -t. enable-if and disable-if require it. The excerpted page does not explain what -t does, and none of the counterpart ifconfig or ip pages in the bundle have a matching option.Source: Solnix ipadm(8) SYNOPSIS; counterpart SYNOPSIS and OPTIONS sections |
| FreeBSD, OpenBSD, NetBSD | display options and scripting output | ipadm show-if, show-addr and show-prop take -o field list; -p on show-if and show-addr gives parsable output, and -c on show-ifprop, show-addrprop and show-prop is also listed. FreeBSD ifconfig uses -f type:format (or IFCONFIG_FORMAT) and -l lists names only. OpenBSD and NetBSD print a plain text report.Source: Solnix ipadm(8) SYNOPSIS (-p, -o, -c); FreeBSD ifconfig(8) -f, -l; OpenBSD ifconfig(8) -a; NetBSD ifconfig(8) SYNOPSIS |
| FreeBSD, OpenBSD | grouping and multipathing | ipadm builds IPMP groups with create-ipmp, add-ipmp and remove-ipmp. FreeBSD ifconfig -g and OpenBSD ifconfig group name interface groups for display or filtering and pf rules. These are different features that share the word group.Source: Solnix ipadm(8) SYNOPSIS (create-ipmp, add-ipmp); FreeBSD ifconfig(8) -g; OpenBSD ifconfig(8) group |
| OpenBSD, NetBSD | removing addresses | Solnix removes an address with delete-addr addrobj (-r also accepted). NetBSD documents that ifconfig delete does not work for IPv6, so you use -alias with the explicit address. OpenBSD delete removes the default inet address unless an address is given.Source: Solnix ipadm(8) SYNOPSIS (delete-addr [-r]); NetBSD ifconfig(8) delete; OpenBSD ifconfig(8) delete |
Everyday tasks
| Task | Solnix | Linux | FreeBSD | OpenBSD | NetBSD |
|---|---|---|---|---|---|
| list interfaces | ipadm show-if | — | ifconfig -l | ifconfig -a | ifconfig -l |
| show addresses | ipadm show-addr | ip address show | ifconfig -a | ifconfig -a | ifconfig -a |
| create an IP interface | ipadm create-ip interface | — | ifconfig interface create | ifconfig interface create | — |
| remove an interface | ipadm delete-ip interface | — | ifconfig interface destroy | ifconfig interface destroy | — |
| add a static address | ipadm create-addr -T static -a addr/prefixlen addrobj | ip address add IFADDR dev IFNAME | ifconfig interface inet address | ifconfig interface inet address | ifconfig interface inet address |
| add a DHCP address | ipadm create-addr -T dhcp addrobj | — | — | ifconfig interface autoconf | — |
| remove an address | ipadm delete-addr addrobj | ip address delete IFADDR dev IFNAME | — | ifconfig interface delete | ifconfig interface -alias address |
| mark an address or interface down | ipadm down-addr addrobj | — | — | ifconfig interface down | ifconfig interface down |
| show or set protocol properties | ipadm show-prop / set-prop protocol | — | — | — | — |
Standards
- POSIX: ipadm is not a POSIX.1-2024 utility.
Writing portable scripts
- Wrap interface configuration in a per-OS function: ipadm on Solnix, ifconfig on the BSDs, ip address on Linux. Their syntax shares nothing beyond the address and prefix.
- Do not rely on ifconfig being present on Solnix. Use ipadm show-addr
-p-ofield for parsable output.
Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.