Commit 41d03949e198d4ac32cd42419e2b978fb89db461

Authored by bellard
1 parent 7c9d8e07

update


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1623 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 2 changed files with 82 additions and 38 deletions
Changelog
... ... @@ -9,6 +9,7 @@ version 0.7.3:
9 9 - Initial USB support
10 10 - Linux host serial port access
11 11 - Linux host low level parallel port access
  12 + - New network emulation code supporting VLANs.
12 13  
13 14 version 0.7.2:
14 15  
... ...
qemu-doc.texi
... ... @@ -247,29 +247,56 @@ Network options:
247 247  
248 248 @table @option
249 249  
250   -@item -n script
251   -Set TUN/TAP network init script [default=/etc/qemu-ifup]. This script
252   -is launched to configure the host network interface (usually tun0)
253   -corresponding to the virtual NE2000 card.
  250 +@item -net nic[,vlan=n][,macaddr=addr]
  251 +Create a new Network Interface Card and connect it to VLAN @var{n} (@var{n}
  252 += 0 is the default). The NIC is currently an NE2000 on the PC
  253 +target. Optionally, the MAC address can be changed. If no
  254 +@option{-net} option is specified, a single NIC is created.
  255 +
  256 +@item -net user[,vlan=n]
  257 +Use the user mode network stack which requires not administrator
  258 +priviledge to run. This is the default if no @option{-net} option is
  259 +specified.
  260 +
  261 +@item -net tap[,vlan=n][,fd=h][,ifname=name][,script=file]
  262 +Connect the host TAP network interface @var{name} to VLAN @var{n} and
  263 +use the network script @var{file} to configure it. The default
  264 +network script is @file{/etc/qemu-ifup}. If @var{name} is not
  265 +provided, the OS automatically provides one. @option{fd=h} can be
  266 +used to specify the handle of an already opened host TAP interface. Example:
254 267  
255   -@item -nics n
  268 +@example
  269 +qemu linux.img -net nic -net tap
  270 +@end example
  271 +
  272 +More complicated example (two NICs, each one connected to a TAP device)
  273 +@example
  274 +qemu linux.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \
  275 + -net nic,vlan=1 -net tap,vlan=1,ifname=tap1
  276 +@end example
256 277  
257   -Simulate @var{n} network cards (the default is 1).
258 278  
259   -@item -macaddr addr
  279 +@item -net socket[,vlan=n][,fd=h][,listen=[host]:port][,connect=host:port]
260 280  
261   -Set the mac address of the first interface (the format is
262   -aa:bb:cc:dd:ee:ff in hexa). The mac address is incremented for each
263   -new network interface.
  281 +Connect the VLAN @var{n} to a remote VLAN in another QEMU virtual
  282 +machine using a TCP socket connection. If @option{listen} is
  283 +specified, QEMU waits for incoming connections on @var{port}
  284 +(@var{host} is optional). @option{connect} is used to connect to
  285 +another QEMU instance using the @option{listen} option. @option{fd=h}
  286 +specifies an already opened socket.
264 287  
265   -@item -tun-fd fd
266   -Assumes @var{fd} talks to a tap/tun host network interface and use
267   -it. Read @url{http://bellard.org/qemu/tetrinet.html} to have an
268   -example of its use.
  288 +Example:
  289 +@example
  290 +# launch a first QEMU instance
  291 +qemu linux.img -net nic -net socket,listen=:1234
  292 +# connect the VLAN 0 of this instance to the VLAN 0 of the first instance
  293 +qemu linux.img -net nic -net socket,connect=127.0.0.1:1234
  294 +@end example
269 295  
270   -@item -user-net
271   -Use the user mode network stack. This is the default if no tun/tap
272   -network init script is found.
  296 +@item -net none
  297 +Indicate that no network devices should be configured. It is used to
  298 +override the default configuration which is activated if no
  299 +@option{-net} options are provided.
273 300  
274 301 @item -tftp prefix
275 302 When using the user mode network stack, activate a built-in TFTP
... ... @@ -327,13 +354,9 @@ telnet localhost 5555
327 354 Then when you use on the host @code{telnet localhost 5555}, you
328 355 connect to the guest telnet server.
329 356  
330   -@item -dummy-net
331   -Use the dummy network stack: no packet will be received by the network
332   -cards.
333   -
334 357 @end table
335 358  
336   -Linux boot specific. When using this options, you can use a given
  359 +Linux boot specific: When using these options, you can use a given
337 360 Linux kernel without installing it in the disk image. It can be useful
338 361 for easier testing of various kernels.
339 362  
... ... @@ -521,7 +544,7 @@ show various information about the system state
521 544  
522 545 @table @option
523 546 @item info network
524   -show the network state
  547 +show the various VLANs and the associated devices
525 548 @item info block
526 549 show the block devices
527 550 @item info registers
... ... @@ -700,36 +723,49 @@ command (or @key{C-a s} in the serial console).
700 723  
701 724 @section Network emulation
702 725  
703   -QEMU simulates up to 6 networks cards (NE2000 boards). Each card can
704   -be connected to a specific host network interface.
  726 +QEMU can simulate several networks cards (NE2000 boards on the PC
  727 +target) and can connect them to an arbitrary number of Virtual Local
  728 +Area Networks (VLANs). Host TAP devices can be connected to any QEMU
  729 +VLAN. VLAN can be connected between separate instances of QEMU to
  730 +simulate large networks. For simpler usage, a non priviledged user mode
  731 +network stack can replace the TAP device to have a basic network
  732 +connection.
  733 +
  734 +@subsection VLANs
705 735  
706   -@subsection Using tun/tap network interface
  736 +QEMU simulates several VLANs. A VLAN can be symbolised as a virtual
  737 +connection between several network devices. These devices can be for
  738 +example QEMU virtual Ethernet cards or virtual Host ethernet devices
  739 +(TAP devices).
707 740  
708   -This is the standard way to emulate network. QEMU adds a virtual
709   -network device on your host (called @code{tun0}), and you can then
710   -configure it as if it was a real ethernet card.
  741 +@subsection Using TAP network interfaces
  742 +
  743 +This is the standard way to connect QEMU to a real network. QEMU adds
  744 +a virtual network device on your host (called @code{tapN}), and you
  745 +can then configure it as if it was a real ethernet card.
711 746  
712 747 As an example, you can download the @file{linux-test-xxx.tar.gz}
713 748 archive and copy the script @file{qemu-ifup} in @file{/etc} and
714 749 configure properly @code{sudo} so that the command @code{ifconfig}
715 750 contained in @file{qemu-ifup} can be executed as root. You must verify
716   -that your host kernel supports the TUN/TAP network interfaces: the
  751 +that your host kernel supports the TAP network interfaces: the
717 752 device @file{/dev/net/tun} must be present.
718 753  
719 754 See @ref{direct_linux_boot} to have an example of network use with a
720   -Linux distribution.
  755 +Linux distribution and @ref{sec_invocation} to have examples of
  756 +command lines using the TAP network interfaces.
721 757  
722 758 @subsection Using the user mode network stack
723 759  
724   -By using the option @option{-user-net} or if you have no tun/tap init
725   -script, QEMU uses a completely user mode network stack (you don't need
726   -root priviledge to use the virtual network). The virtual network
727   -configuration is the following:
  760 +By using the option @option{-net user} (default configuration if no
  761 +@option{-net} option is specified), QEMU uses a completely user mode
  762 +network stack (you don't need root priviledge to use the virtual
  763 +network). The virtual network configuration is the following:
728 764  
729 765 @example
730 766  
731   -QEMU Virtual Machine <------> Firewall/DHCP server <-----> Internet
732   - (10.0.2.x) | (10.0.2.2)
  767 + QEMU VLAN <------> Firewall/DHCP server <-----> Internet
  768 + | (10.0.2.2)
733 769 |
734 770 ----> DNS server (10.0.2.3)
735 771 |
... ... @@ -738,7 +774,8 @@ QEMU Virtual Machine &lt;------&gt; Firewall/DHCP server &lt;-----&gt; Internet
738 774  
739 775 The QEMU VM behaves as if it was behind a firewall which blocks all
740 776 incoming connections. You can use a DHCP client to automatically
741   -configure the network in the QEMU VM.
  777 +configure the network in the QEMU VM. The DHCP server assign addresses
  778 +to the hosts starting from 10.0.2.15.
742 779  
743 780 In order to check that the user mode network is working, you can ping
744 781 the address 10.0.2.2 and verify that you got an address in the range
... ... @@ -755,6 +792,12 @@ When using the @option{-redir} option, TCP or UDP connections can be
755 792 redirected from the host to the guest. It allows for example to
756 793 redirect X11, telnet or SSH connections.
757 794  
  795 +@subsection Connecting VLANs between QEMU instances
  796 +
  797 +Using the @option{-net socket} option, it is possible to make VLANs
  798 +that span several QEMU instances. See @ref{sec_invocation} to have a
  799 +basic example.
  800 +
758 801 @node direct_linux_boot
759 802 @section Direct Linux Boot
760 803  
... ...