[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Connectivity for a qemu guest; was Re: Connection of a qemu guest t

From: Berto Furth
Subject: Re: Connectivity for a qemu guest; was Re: Connection of a qemu guest to the 'net.
Date: Sun, 21 Mar 2021 08:23:46 +1100
User-agent: Cyrus-JMAP/3.5.0-alpha0-206-g078a48fda5-fm-20210226.001-g078a48fd

Hi Peter,

> Berto & all,
> The qemu guest here now has full connectivity.

Brilliant. Thanks for going to the effort of documenting exactly what you did 
and how you got it to work. I'm sure that will help lots of people in the 
> These are my notes about differences from "ordinary" qemu usage.
> (1) This qemu host is also a Linux router.  It has Shorewall installed.

Oh I see. That would make things difficult in terms of converting your main 
router IP address from being associated with a physical Ethernet to a bridge 
> (2) Somewhere there's mention of connecting the bridge to the 
> interface to the Internet. Ie. the bridge is assigned the IP address 
> of the Internet interface along with the address for the subnet of the 
> qemu guest.  Here the bridge has the qemu address but not the Internet 
> gateway address.
> peter@joule:/home/peter$ ip addr show dev br0
> 6: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
> group
> default qlen 1000
>     link/ether 1e:e9:74:a2:5a:ef brd ff:ff:ff:ff:ff:ff
>     inet brd scope global br0
>        valid_lft forever preferred_lft forever
>     inet6 fd99:9999:9999:9999::1/64 scope global
>        valid_lft forever preferred_lft forever
>     inet6 fe80::745f:e4ff:fe9f:67b0/64 scope link
>        valid_lft forever preferred_lft forever
> is the subnet of the qemu guest.
> Internet connectivity of the qemu guest is achieved by this line in 
> /etc/shorwall/snat .
> (3) The script /etc/qemu-ifup provided in Debian 10 qemu finds the 
> interface for the default route; in this case wlxe894f6248352 .
> peter@joule:/home/peter$ ip route ls
> default via dev wlxe894f6248352
> dev wlxe894f6248352 proto kernel scope link src 
> dev eth0 proto kernel scope link src linkdown
> dev enx0050b60be9be proto kernel scope link src 
> linkdown
> dev br0 proto kernel scope link src
> wlxe894f6248352 is not the bridge interface and consquently qemu-ifup 
> fails to establish a tap interface. Consequently no connectivity.
> This was corrected with Berto's qemu-ifup which names the bridge 
> explicitly.
> If someone sees a way to identify the bridge interface automatically 
> without assuming it is the default route, the Debian qemu-ifup can be 
> improved.

In regards to identifying the bridge interface automatically, I don't think 
that's a great idea. These auto detect bridge style scripts assume that you 
want to connect your guests to the same bridge network that you're using for 
your real internet connectivity and that's not always the case. Especially in 
your case where the firewall and the QEMU host are one and the same. Much 
cleaner to manually create the bridge, tailor it to your needs and then specify 
the bridge in the scripts directly in my view....but that's just my opinion.

> (4) Q: Why does qemu involve a bridge rather than only routing?
> A: My hypothesis.  Routing requires adjustment of iptables. Direct 
> editing of iptables is difficult and error prone for non-experts. An 
> alternative is to use Shorewall or similar functionality.  Shorewall 
> is large package.  Imposing dependance of qemu on Shorewall will be 
> unwelcome to some users.  A bridge is an expedient solution. 

Agreed. Many people probably don't want to screw around with their router's 

> Comments, corrections, suggestions welcome.

You're a legend for getting this working and sharing the results. Thanks Peter!


> Regards,                                ... P.
> -- 
> cell: +1 236 464 1479            Bcc: peter at easthope. ca
> VoIP: +1 604 670 0140

reply via email to

[Prev in Thread] Current Thread [Next in Thread]