diff options
author | Ghanan Gowripalan <ghanan@google.com> | 2021-08-19 13:51:40 -0700 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2021-08-19 13:54:53 -0700 |
commit | 3b4bb947517d0d9010120aaa1c3989fd6abf278e (patch) | |
tree | 73fd56f5f9ea152954f6e789231bcb76577e47de /runsc/boot/BUILD | |
parent | 50ed6b2e0994225b9bffa63b57a42da2d05e02b9 (diff) |
Add loopback interface as an ethernet-based device
...to match Linux behaviour.
We can see evidence of Linux representing loopback as an ethernet-based
device below:
```
# EUI-48 based MAC addresses.
$ ip link show lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
# tcpdump showing ethernet frames when sniffing loopback and logging the
# link-type as EN10MB (Ethernet).
$ sudo tcpdump -i lo -e -c 2 -n
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on lo, link-type EN10MB (Ethernet), snapshot length 262144 bytes
03:09:05.002034 00:00:00:00:00:00 > 00:00:00:00:00:00, ethertype IPv4 (0x0800), length 66: 127.0.0.1.9557 > 127.0.0.1.36828: Flags [.], ack 3562800815, win 15342, options [nop,nop,TS val 843174495 ecr 843159493], length 0
03:09:05.002094 00:00:00:00:00:00 > 00:00:00:00:00:00, ethertype IPv4 (0x0800), length 66: 127.0.0.1.36828 > 127.0.0.1.9557: Flags [.], ack 1, win 6160, options [nop,nop,TS val 843174496 ecr 843159493], length 0
2 packets captured
116 packets received by filter
0 packets dropped by kernel
```
Wireshark shows a similar result as the tcpdump example above.
Linux's loopback setup: https://github.com/torvalds/linux/blob/5bfc75d92efd494db37f5c4c173d3639d4772966/drivers/net/loopback.c#L162
PiperOrigin-RevId: 391836719
Diffstat (limited to 'runsc/boot/BUILD')
-rw-r--r-- | runsc/boot/BUILD | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/runsc/boot/BUILD b/runsc/boot/BUILD index 1c57f9dd5..0ded907f0 100644 --- a/runsc/boot/BUILD +++ b/runsc/boot/BUILD @@ -97,6 +97,7 @@ go_library( "//pkg/sentry/watchdog", "//pkg/sync", "//pkg/tcpip", + "//pkg/tcpip/link/ethernet", "//pkg/tcpip/link/fdbased", "//pkg/tcpip/link/loopback", "//pkg/tcpip/link/packetsocket", |