2017-10-03 13:52:04 +00:00
|
|
|
.\" Copyright (c) 2012 Tomáš Pospíšek (tpo_deb@sourcepole.ch),
|
|
|
|
.\" Fri, 03 Nov 2012 22:35:33 +0100
|
2017-10-03 18:47:37 +00:00
|
|
|
.\" and Copyright (c) 2012 Eric W. Biederman <ebiederm@xmission.com>
|
2017-10-03 13:52:04 +00:00
|
|
|
.\"
|
2017-11-26 11:36:20 +00:00
|
|
|
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
|
2017-10-03 13:52:04 +00:00
|
|
|
.\" This is free documentation; you can redistribute it and/or
|
|
|
|
.\" modify it under the terms of the GNU General Public License as
|
|
|
|
.\" published by the Free Software Foundation; either version 2 of
|
|
|
|
.\" the License, or (at your option) any later version.
|
|
|
|
.\"
|
|
|
|
.\" The GNU General Public License's references to "object code"
|
|
|
|
.\" and "executables" are to be interpreted as the output of any
|
|
|
|
.\" document formatting or typesetting system, including
|
|
|
|
.\" intermediate and printed output.
|
|
|
|
.\"
|
|
|
|
.\" This manual is distributed in the hope that it will be useful,
|
|
|
|
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
.\" GNU General Public License for more details.
|
|
|
|
.\"
|
|
|
|
.\" You should have received a copy of the GNU General Public
|
|
|
|
.\" License along with this manual; if not, write to the Free
|
|
|
|
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
|
|
|
|
.\" USA.
|
2017-11-26 11:36:20 +00:00
|
|
|
.\" %%%LICENSE_END
|
2017-10-03 13:52:04 +00:00
|
|
|
.\"
|
|
|
|
.\"
|
iconv.1, locale.1, memusage.1, memusagestat.1, pldd.1, sprof.1, _syscall.2, add_key.2, adjtimex.2, bind.2, bpf.2, chown.2, clone.2, close.2, copy_file_range.2, eventfd.2, fanotify_init.2, fanotify_mark.2, fork.2, fsync.2, futex.2, getdents.2, getrlimit.2, getxattr.2, io_cancel.2, io_destroy.2, io_getevents.2, io_setup.2, ioctl_fat.2, ioctl_getfsmap.2, ioctl_ns.2, ioctl_tty.2, ioctl_userfaultfd.2, kcmp.2, keyctl.2, listen.2, listxattr.2, mbind.2, membarrier.2, memfd_create.2, mkdir.2, move_pages.2, mremap.2, msync.2, nfsservctl.2, open.2, perf_event_open.2, pidfd_send_signal.2, pipe.2, pivot_root.2, pkey_alloc.2, process_vm_readv.2, ptrace.2, readlink.2, readv.2, recv.2, recvmmsg.2, rename.2, request_key.2, s390_runtime_instr.2, sched_setaffinity.2, seccomp.2, send.2, sendmmsg.2, sigaltstack.2, signalfd.2, socket.2, socketpair.2, splice.2, spu_create.2, spu_run.2, statfs.2, syscall.2, sysctl.2, sysfs.2, tee.2, timer_getoverrun.2, timer_settime.2, umount.2, userfaultfd.2, utimensat.2, wait4.2, INFINITY.3, __ppc_get_timebase.3, __setfpucw.3, abort.3, aio_cancel.3, aio_error.3, aio_read.3, aio_return.3, atexit.3, backtrace.3, basename.3, bsearch.3, bswap.3, cacos.3, cacosh.3, catan.3, catanh.3, cexp2.3, clock_getcpuclockid.3, clog2.3, cmsg.3, confstr.3, div.3, dl_iterate_phdr.3, dlerror.3, dlinfo.3, dlopen.3, dlsym.3, duplocale.3, encrypt.3, end.3, endian.3, envz_add.3, err.3, expm1.3, fdim.3, flockfile.3, fmtmsg.3, frexp.3, ftw.3, get_nprocs_conf.3, get_phys_pages.3, getaddrinfo_a.3, getauxval.3, getdate.3, getdtablesize.3, getgrent_r.3, getgrouplist.3, gethostbyname.3, getline.3, getnameinfo.3, getopt.3, getprotoent_r.3, getpwent_r.3, getpwnam.3, getservent_r.3, getsubopt.3, getutent.3, glob.3, gnu_get_libc_version.3, hsearch.3, if_nameindex.3, inet.3, inet_net_pton.3, inet_ntop.3, inet_pton.3, insque.3, killpg.3, makecontext.3, mallinfo.3, malloc.3, malloc_hook.3, malloc_info.3, mallopt.3, matherr.3, mbsnrtowcs.3, mbstowcs.3, mcheck.3, mempcpy.3, mq_getattr.3, mq_notify.3, mtrace.3, newlocale.3, nextafter.3, ntp_gettime.3, offsetof.3, open_memstream.3, pow.3, printf.3, pthread_attr_init.3, pthread_attr_setdetachstate.3, pthread_attr_setguardsize.3, pthread_attr_setinheritsched.3, pthread_attr_setschedparam.3, pthread_attr_setschedpolicy.3, pthread_attr_setstack.3, pthread_attr_setstacksize.3, pthread_cancel.3, pthread_cleanup_push.3, pthread_create.3, pthread_detach.3, pthread_getattr_default_np.3, pthread_getattr_np.3, pthread_getcpuclockid.3, pthread_join.3, pthread_mutex_consistent.3, pthread_mutexattr_setrobust.3, pthread_setaffinity_np.3, pthread_setcancelstate.3, pthread_setname_np.3, pthread_setschedparam.3, pthread_sigmask.3, pthread_spin_init.3, pthread_testcancel.3, pthread_tryjoin_np.3, ptsname.3, qsort.3, rand.3, random.3, remainder.3, rpmatch.3, rtime.3, rtnetlink.3, scalb.3, scalbln.3, scandir.3, sem_getvalue.3, sem_wait.3, setaliasent.3, setlogmask.3, sigwait.3, sincos.3, sockatmark.3, stdarg.3, stpcpy.3, strcat.3, strfmon.3, strptime.3, strtod.3, strtok.3, strtol.3, strtoul.3, strverscmp.3, tsearch.3, uselocale.3, wcstok.3, wcstombs.3, wordexp.3, y0.3, loop.4, vcs.4, veth.4, charmap.5, core.5, filesystems.5, gai.conf.5, hosts.5, hosts.equiv.5, locale.5, nss.5, repertoiremap.5, securetty.5, shells.5, ttytype.5, ascii.7, complex.7, cpuset.7, credentials.7, fanotify.7, hier.7, inotify.7, ip.7, mount_namespaces.7, mq_overview.7, netlink.7, network_namespaces.7, pid_namespaces.7, pkeys.7, rtld-audit.7, rtnetlink.7, sem_overview.7, signal-safety.7, sock_diag.7, spufs.7, standards.7, symlink.7, tcp.7, time_namespaces.7, unix.7, user_namespaces.7, xattr.7, ldconfig.8: tstamp
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2020-06-09 12:43:54 +00:00
|
|
|
.TH VETH 4 2020-06-09 "Linux" "Linux Programmer's Manual"
|
2017-10-03 13:52:04 +00:00
|
|
|
.SH NAME
|
|
|
|
veth \- Virtual Ethernet Device
|
|
|
|
.SH DESCRIPTION
|
|
|
|
The
|
|
|
|
.B veth
|
|
|
|
devices are virtual Ethernet devices.
|
|
|
|
They can act as tunnels between network namespaces to create
|
2017-10-03 19:07:05 +00:00
|
|
|
a bridge to a physical network device in another namespace,
|
|
|
|
but can also be used as standalone network devices.
|
2017-10-03 13:52:04 +00:00
|
|
|
.PP
|
|
|
|
.B veth
|
2017-10-03 18:47:37 +00:00
|
|
|
devices are always created in interconnected pairs.
|
|
|
|
A pair can be created using the command:
|
|
|
|
.PP
|
|
|
|
.in +4n
|
|
|
|
.EX
|
|
|
|
# ip link add <p1-name> type veth peer name <p2-name>
|
|
|
|
.EE
|
|
|
|
.in
|
|
|
|
.PP
|
|
|
|
In the above,
|
|
|
|
.I p1-name
|
|
|
|
and
|
|
|
|
.I p2-name
|
|
|
|
are the names assigned to the two connected end points.
|
2017-10-03 13:52:04 +00:00
|
|
|
.PP
|
2017-10-03 19:07:05 +00:00
|
|
|
Packets transmitted on one device in the pair are immediately received on
|
2017-10-03 18:47:37 +00:00
|
|
|
the other device.
|
2017-11-26 11:42:22 +00:00
|
|
|
When either devices is down the link state of the pair is down.
|
2017-10-03 13:52:04 +00:00
|
|
|
.PP
|
2017-10-03 18:47:37 +00:00
|
|
|
.B veth
|
|
|
|
device pairs are useful for combining the network
|
|
|
|
facilities of the kernel together in interesting ways.
|
|
|
|
A particularly interesting use case is to place one end of a
|
|
|
|
.B veth
|
|
|
|
pair in one network namespace and the other end in another network namespace,
|
|
|
|
thus allowing communication between network namespaces.
|
2020-05-18 20:58:28 +00:00
|
|
|
To do this, one can provide the
|
|
|
|
.B netns
|
|
|
|
parameter when creating the interfaces:
|
|
|
|
.PP
|
|
|
|
.in +4n
|
|
|
|
.EX
|
|
|
|
# ip link add <p1-name> netns <p1-ns> type veth peer <p2-name> netns <p2-ns>
|
|
|
|
.EE
|
|
|
|
.in
|
|
|
|
.PP
|
|
|
|
or, for an existing
|
2017-10-19 17:09:55 +00:00
|
|
|
.B veth
|
2020-05-18 20:58:28 +00:00
|
|
|
pair, move one side to the other namespace:
|
2017-10-19 17:09:55 +00:00
|
|
|
.PP
|
|
|
|
.in +4n
|
|
|
|
.EX
|
2020-05-18 20:58:28 +00:00
|
|
|
# ip link set <p2-name> netns <p2-ns>
|
2017-10-19 17:09:55 +00:00
|
|
|
.EE
|
|
|
|
.in
|
2017-10-03 18:47:37 +00:00
|
|
|
.PP
|
|
|
|
.BR ethtool (8)
|
2017-10-03 19:36:52 +00:00
|
|
|
can be used to find the peer of a
|
2017-10-03 18:47:37 +00:00
|
|
|
.B veth
|
2017-10-03 19:36:52 +00:00
|
|
|
network interface, using commands something like:
|
|
|
|
.PP
|
|
|
|
.in +4n
|
|
|
|
.EX
|
2017-10-18 07:51:20 +00:00
|
|
|
# \fBip link add ve_A type veth peer name ve_B\fP # Create veth pair
|
2020-07-01 23:01:21 +00:00
|
|
|
# \fBethtool \-S ve_A\fP # Discover interface index of peer
|
2017-10-03 19:36:52 +00:00
|
|
|
NIC statistics:
|
|
|
|
peer_ifindex: 16
|
pldd.1, bpf.2, clone.2, dup.2, ioctl_fat.2, nfsservctl.2, open_by_handle_at.2, perf_event_open.2, pivot_root.2, request_key.2, sched_setaffinity.2, seccomp.2, select.2, statx.2, dl_iterate_phdr.3, dlinfo.3, dlopen.3, insque.3, newlocale.3, printf.3, pthread_setname_np.3, rpc.3, stdarg.3, strfmon.3, veth.4, proc.5, slabinfo.5, cgroup_namespaces.7, cgroups.7, cpuset.7, fanotify.7, inotify.7, mount_namespaces.7, sock_diag.7, user_namespaces.7, ld.so.8: Use \(aq instead of ' inside monospace fonts
Use \(aq to get an unslanted single quote inside monospace code
blocks. Using a simple ' results in a slanted quote inside PDFs.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2020-09-24 07:32:31 +00:00
|
|
|
# \fBip link | grep \(aq\(ha16:\(aq\fP # Look up interface
|
2017-10-03 19:36:52 +00:00
|
|
|
16: ve_B@ve_A: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc ...
|
|
|
|
.EE
|
|
|
|
.in
|
|
|
|
.PP
|
2017-10-03 13:52:04 +00:00
|
|
|
.SH "SEE ALSO"
|
|
|
|
.BR clone (2),
|
2017-12-08 09:17:25 +00:00
|
|
|
.BR network_namespaces (7),
|
2017-10-03 13:52:38 +00:00
|
|
|
.BR ip (8),
|
intro.1, localedef.1, memusage.1, memusagestat.1, bpf.2, execve.2, fork.2, keyctl.2, request_key.2, sigaction.2, signal.2, socket.2, dlopen.3, getauxval.3, gnu_get_libc_version.3, pthread_atfork.3, sem_post.3, setjmp.3, strftime.3, veth.4, locale.5, nscd.conf.5, resolv.conf.5, address_families.7, armscii-8.7, ascii.7, capabilities.7, cgroups.7, charsets.7, cp1251.7, cp1252.7, iso_8859-1.7, iso_8859-10.7, iso_8859-11.7, iso_8859-13.7, iso_8859-14.7, iso_8859-15.7, iso_8859-16.7, iso_8859-2.7, iso_8859-3.7, iso_8859-4.7, iso_8859-5.7, iso_8859-6.7, iso_8859-7.7, iso_8859-8.7, iso_8859-9.7, keyrings.7, koi8-r.7, koi8-u.7, libc.7, locale.7, man.7, network_namespaces.7, persistent-keyring.7, session-keyring.7, signal.7, unicode.7, uri.7, user-keyring.7, user-session-keyring.7: ffix: replace - with real\-
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2020-07-06 12:28:51 +00:00
|
|
|
.BR ip\-link (8),
|
|
|
|
.BR ip\-netns (8)
|