What are en0, en1, p2p, and so on, that are displayed after executing ifconfig?

KimCrab picture KimCrab · Apr 30, 2015 · Viewed 30.9k times · Source

When I type ifconfig on my Mac terminal, several information is printed. But I can't understand what they are. Can anyone briefly tell me what they are? What are lo0, gif0, en0, and so on?

Here is the results of my terminal.

  Last login: Wed Apr 29 21:22:21 on ttys000
  gim-yeongdeog-ui-MacBook-Air:~ KimYoungDirk$ ifconfig
  lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
       options=3<RXCSUM,TXCSUM>
       inet6 ::1 prefixlen 128 
       inet 127.0.0.1 netmask 0xff000000 
       inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
       nd6 options=1<PERFORMNUD>
  gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
  stf0: flags=0<> mtu 1280
  en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
       ether 64:76:ba:ae:a3:02 
       inet6 fe80::6676:baff:feae:a302%en0 prefixlen 64 scopeid 0x4 
       inet 172.30.7.47 netmask 0xffff0000 broadcast 172.30.255.255
       nd6 options=1<PERFORMNUD>
       media: autoselect
       status: active
  en1: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
       options=60<TSO4,TSO6>
       ether 32:00:1b:3e:80:00 
       media: autoselect <full-duplex>
       status: inactive
  p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
        ether 06:76:ba:ae:a3:02 
        media: autoselect
        status: inactive
 awdl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1452
        ether 0e:f1:59:ca:a5:30 
        inet6 fe80::cf1:59ff:feca:a530%awdl0 prefixlen 64 scopeid 0x7 
        nd6 options=1<PERFORMNUD>
        media: autoselect
        status: active
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
         options=63<RXCSUM,TXCSUM,TSO4,TSO6>
         ether 66:76:ba:ea:38:00 
        Configuration:
            id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
            maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
            root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
            ipfilter disabled flags 0x2
        member: en1 flags=3<LEARNING,DISCOVER>
               ifmaxaddr 0 port 5 priority 0 path cost 0
        nd6 options=1<PERFORMNUD>
        media: <unknown type>
        status: inactive
  gim-yeongdeog-ui-MacBook-Air:~ KimYoungDirk$ 

Answer

mcint picture mcint · Mar 19, 2019

In arbitrary order of my familarity / widespread relevance:

lo0 is loopback.

en0 at one point "ethernet", now is WiFi (and I have no idea what extra en1 or en2 are used for).

fw0 is the FireWire network interface.

stf0 is an IPv6 to IPv4 tunnel interface to support the transition from IPv4 to the IPv6 standard.

gif0 is a more generic tunneling interface [46]-to-[46].

awdl0 is Apple Wireless Direct Link

p2p0 is related to AWDL features. Either as an old version, or virtual interface with different semantics than awdl.


Note also,

  • the "Network" panel in System Preferences to see what network devices "exist" or "can exist" with current configuration.
  • many VPNs will add additional devices, often "utun#" or "utap#" following TUN/TAP (L3/L2) virtual networking devices.
  • use netstat -nr to see how traffic is currently routed via network devices according to destination.
  • interface naming conventions started in BSD were retained in OS X / macOS, and now there also additions.

Also answered in part on Apple SE here and there.