diff options
author | Alex Bennée <alex.bennee@linaro.org> | 2021-07-21 00:26:36 +0100 |
---|---|---|
committer | Alex Bennée <alex.bennee@linaro.org> | 2021-07-23 17:22:16 +0100 |
commit | 189c099f75f39da1c1a0f3e527109af2b169a8fe (patch) | |
tree | 3808775d8bfe8bff849c2289c3073afb41ecc913 /docs/system/net.rst | |
parent | 6e52aafbac1d9f4eaa465ab4ec5d4327f2430832 (diff) |
docs: collect the disparate device emulation docs into one section
While we are at it add a brief preamble that explains some of the
common concepts in QEMU's device emulation which will hopefully lead
to less confusing about our dizzying command line options.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Daniel P. Berrangé <berrange@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Message-Id: <20210720232703.10650-3-alex.bennee@linaro.org>
Diffstat (limited to 'docs/system/net.rst')
-rw-r--r-- | docs/system/net.rst | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/docs/system/net.rst b/docs/system/net.rst deleted file mode 100644 index 4b2640c448..0000000000 --- a/docs/system/net.rst +++ /dev/null @@ -1,100 +0,0 @@ -.. _pcsys_005fnetwork: - -Network emulation ------------------ - -QEMU can simulate several network cards (e.g. PCI or ISA cards on the PC -target) and can connect them to a network backend on the host or an -emulated hub. The various host network backends can either be used to -connect the NIC of the guest to a real network (e.g. by using a TAP -devices or the non-privileged user mode network stack), or to other -guest instances running in another QEMU process (e.g. by using the -socket host network backend). - -Using TAP network interfaces -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -This is the standard way to connect QEMU to a real network. QEMU adds a -virtual network device on your host (called ``tapN``), and you can then -configure it as if it was a real ethernet card. - -Linux host -^^^^^^^^^^ - -As an example, you can download the ``linux-test-xxx.tar.gz`` archive -and copy the script ``qemu-ifup`` in ``/etc`` and configure properly -``sudo`` so that the command ``ifconfig`` contained in ``qemu-ifup`` can -be executed as root. You must verify that your host kernel supports the -TAP network interfaces: the device ``/dev/net/tun`` must be present. - -See :ref:`sec_005finvocation` to have examples of command -lines using the TAP network interfaces. - -Windows host -^^^^^^^^^^^^ - -There is a virtual ethernet driver for Windows 2000/XP systems, called -TAP-Win32. But it is not included in standard QEMU for Windows, so you -will need to get it separately. It is part of OpenVPN package, so -download OpenVPN from : https://openvpn.net/. - -Using the user mode network stack -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -By using the option ``-net user`` (default configuration if no ``-net`` -option is specified), QEMU uses a completely user mode network stack -(you don't need root privilege to use the virtual network). The virtual -network configuration is the following:: - - guest (10.0.2.15) <------> Firewall/DHCP server <-----> Internet - | (10.0.2.2) - | - ----> DNS server (10.0.2.3) - | - ----> SMB server (10.0.2.4) - -The QEMU VM behaves as if it was behind a firewall which blocks all -incoming connections. You can use a DHCP client to automatically -configure the network in the QEMU VM. The DHCP server assign addresses -to the hosts starting from 10.0.2.15. - -In order to check that the user mode network is working, you can ping -the address 10.0.2.2 and verify that you got an address in the range -10.0.2.x from the QEMU virtual DHCP server. - -Note that ICMP traffic in general does not work with user mode -networking. ``ping``, aka. ICMP echo, to the local router (10.0.2.2) -shall work, however. If you're using QEMU on Linux >= 3.0, it can use -unprivileged ICMP ping sockets to allow ``ping`` to the Internet. The -host admin has to set the ping_group_range in order to grant access to -those sockets. To allow ping for GID 100 (usually users group):: - - echo 100 100 > /proc/sys/net/ipv4/ping_group_range - -When using the built-in TFTP server, the router is also the TFTP server. - -When using the ``'-netdev user,hostfwd=...'`` option, TCP or UDP -connections can be redirected from the host to the guest. It allows for -example to redirect X11, telnet or SSH connections. - -Hubs -~~~~ - -QEMU can simulate several hubs. A hub can be thought of as a virtual -connection between several network devices. These devices can be for -example QEMU virtual ethernet cards or virtual Host ethernet devices -(TAP devices). You can connect guest NICs or host network backends to -such a hub using the ``-netdev -hubport`` or ``-nic hubport`` options. The legacy ``-net`` option also -connects the given device to the emulated hub with ID 0 (i.e. the -default hub) unless you specify a netdev with ``-net nic,netdev=xxx`` -here. - -Connecting emulated networks between QEMU instances -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Using the ``-netdev socket`` (or ``-nic socket`` or ``-net socket``) -option, it is possible to create emulated networks that span several -QEMU instances. See the description of the ``-netdev socket`` option in -:ref:`sec_005finvocation` to have a basic -example. |