diff --git a/go.mod b/go.mod
index 00cfc6a..fcd887c 100644
--- a/go.mod
+++ b/go.mod
@@ -104,7 +104,6 @@
 	github.com/mdlayher/ethtool v0.0.0-20211028163843-288d040e9d60
 	github.com/mdlayher/genetlink v1.2.0
 	github.com/mdlayher/netlink v1.6.0
-	github.com/mdlayher/raw v0.1.0
 	github.com/mitchellh/go-wordwrap v1.0.0
 	github.com/opencontainers/runc v1.1.3
 	github.com/packethost/packngo v0.29.0
@@ -169,6 +168,7 @@
 	github.com/jsimonetti/rtnetlink v0.0.0-20211022192332-93da33804786 // indirect
 	github.com/lufia/iostat v1.2.0 // indirect
 	github.com/mattn/go-xmlrpc v0.0.3 // indirect
+	github.com/mdlayher/raw v0.1.0 // indirect
 	github.com/mdlayher/wifi v0.0.0-20200527114002-84f0b9457fdd // indirect
 	github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect
 	github.com/prometheus/exporter-toolkit v0.7.0 // indirect
@@ -321,7 +321,7 @@
 	github.com/mattn/go-runewidth v0.0.13 // indirect
 	github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
 	github.com/mdlayher/kobject v0.0.0-20200520190114-19ca17470d7d
-	github.com/mdlayher/packet v0.0.0-20220221164757-67998ac0ff93 // indirect
+	github.com/mdlayher/packet v0.0.0-20220221164757-67998ac0ff93
 	github.com/mdlayher/socket v0.2.1 // indirect
 	github.com/miekg/dns v1.1.48 // indirect
 	github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989 // indirect
diff --git a/metropolis/node/core/network/dhcp4c/transport/BUILD.bazel b/metropolis/node/core/network/dhcp4c/transport/BUILD.bazel
index 8b8e02b..8d5425f 100644
--- a/metropolis/node/core/network/dhcp4c/transport/BUILD.bazel
+++ b/metropolis/node/core/network/dhcp4c/transport/BUILD.bazel
@@ -13,7 +13,7 @@
         "@com_github_google_gopacket//:gopacket",
         "@com_github_google_gopacket//layers",
         "@com_github_insomniacslk_dhcp//dhcpv4",
-        "@com_github_mdlayher_raw//:raw",
+        "@com_github_mdlayher_packet//:packet",
         "@org_golang_x_net//bpf",
         "@org_golang_x_sys//unix",
     ],
diff --git a/metropolis/node/core/network/dhcp4c/transport/transport_broadcast.go b/metropolis/node/core/network/dhcp4c/transport/transport_broadcast.go
index 6d051ee..7064255 100644
--- a/metropolis/node/core/network/dhcp4c/transport/transport_broadcast.go
+++ b/metropolis/node/core/network/dhcp4c/transport/transport_broadcast.go
@@ -26,7 +26,7 @@
 	"github.com/google/gopacket"
 	"github.com/google/gopacket/layers"
 	"github.com/insomniacslk/dhcp/dhcpv4"
-	"github.com/mdlayher/raw"
+	"github.com/mdlayher/packet"
 	"golang.org/x/net/bpf"
 )
 
@@ -90,7 +90,7 @@
 // stack fulfilling the specific requirements for broadcasting DHCP packets
 // (like all-zero source address, no ARP, ...)
 type BroadcastTransport struct {
-	rawConn *raw.Conn
+	rawConn *packet.Conn
 	iface   *net.Interface
 }
 
@@ -102,9 +102,8 @@
 	if t.rawConn != nil {
 		return errors.New("broadcast transport already open")
 	}
-	rawConn, err := raw.ListenPacket(t.iface, uint16(layers.EthernetTypeIPv4), &raw.Config{
-		LinuxSockDGRAM: true,
-		Filter:         bpfFilter,
+	rawConn, err := packet.Listen(t.iface, packet.Datagram, int(layers.EthernetTypeIPv4), &packet.Config{
+		Filter: bpfFilter,
 	})
 	if err != nil {
 		return fmt.Errorf("failed to create raw listener: %w", err)
@@ -117,7 +116,7 @@
 	if t.rawConn == nil {
 		return errors.New("broadcast transport closed")
 	}
-	packet := gopacket.NewSerializeBuffer()
+	pkt := gopacket.NewSerializeBuffer()
 	opts := gopacket.SerializeOptions{
 		ComputeChecksums: true,
 		FixLengths:       true,
@@ -144,7 +143,7 @@
 		panic("Invalid layer stackup encountered")
 	}
 
-	err := gopacket.SerializeLayers(packet, opts,
+	err := gopacket.SerializeLayers(pkt, opts,
 		ipLayer,
 		udpLayer,
 		gopacket.Payload(payload.ToBytes()))
@@ -153,7 +152,7 @@
 		return fmt.Errorf("failed to assemble packet: %w", err)
 	}
 
-	_, err = t.rawConn.WriteTo(packet.Bytes(), &raw.Addr{HardwareAddr: layers.EthernetBroadcast})
+	_, err = t.rawConn.WriteTo(pkt.Bytes(), &packet.Addr{HardwareAddr: layers.EthernetBroadcast})
 	if err != nil {
 		return fmt.Errorf("failed to transmit broadcast packet: %w", err)
 	}
