From: Mikko Rapeli <mikko.rapeli@linaro.org>
To: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] [PATCH] qemurunner.py: support setting slirp host ip address
Date: Mon, 14 Nov 2022 12:59:29 +0200 [thread overview]
Message-ID: <Y3IfkUB9tw2Vni+x@nuoska> (raw)
In-Reply-To: <89da82a5-06f3-312f-cbe0-733974fbe908@theobroma-systems.com>
Hi,
On Mon, Nov 14, 2022 at 11:31:11AM +0100, Quentin Schulz wrote:
> Hi Mikko,
>
> On 11/14/22 11:19, Mikko Rapeli wrote:
> > By default host side IP address is not set and qemu listens
> > on all IP addresses on the host machine which is not a good
> > idea when images have root login enabled without password.
> > It make sense to listen only on localhost IP address 127.0.0.1 using
> > config:
> >
> > QB_SLIRP_OPT = "-netdev user,id=net0,hostfwd=tcp:127.0.0.1:2222-:22"
> >
> > Support detecting port number from this too.
> >
> > Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
> > ---
> > meta/lib/oeqa/utils/qemurunner.py | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py
> > index e602399232..f175f8a1de 100644
> > --- a/meta/lib/oeqa/utils/qemurunner.py
> > +++ b/meta/lib/oeqa/utils/qemurunner.py
> > @@ -401,7 +401,8 @@ class QemuRunner:
> > cmdline = re_control_char.sub(' ', cmdline)
> > try:
> > if self.use_slirp:
> > - tcp_ports = cmdline.split("hostfwd=tcp::")[1]
> > + tcp_ports = cmdline.split("hostfwd=tcp:")[1]
> > + tcp_ports = tcp_ports.split(":")[1]
> > host_port = tcp_ports[:tcp_ports.find('-')]
> > self.ip = "localhost:%s" % host_port
>
> But localhost is enforced here?
Is it really? Where?
With default "-netdev user,id=net0,hostfwd=tcp::2222-:22" I am able
to login using all local IP addresses:
$ nc 192.168.1.103 2222
SSH-2.0-OpenSSH_8.9
^C
$ nc -v -v -v 127.0.0.1 2222
Connection to 127.0.0.1 2222 port [tcp/*] succeeded!
SSH-2.0-OpenSSH_8.9
^C
The open port 2222 show on the build machine with:
$ lsof -i|grep qemu | grep 2222
qemu-syst 170445 builder 12u IPv4 45057952 0t0 TCP *:2222 (LISTEN)
By using "hostfwd=tcp:127.0.0.1:2222-:22" this reduces to the more safe:
$ lsof -i|grep qemu
qemu-syst 127592 builder 12u IPv4 44993375 0t0 TCP localhost:2222 (LISTEN)
I don't dare to make that the new default so just enabling
runqemu to work when user configures the host IP address like this.
> This patch basically allows to pass
> hostfwd=tcp:127.0.0.1:2222-:22
> instead of
> hostfwd=tcp::2222-:22
> but with the exact same result (which is, localhost:2222 will be used?)
Nope, now the other non-local IP addresses are not open for the port
2222 on the machine running qemu. The localhost:2222 works in both
cases.
> Also, this could be migrated to using re instead of doing manual lookups.
Yes, but re is more resource consuming.
> I'm not sure the commit log matches what the commit is actually doing?
How could I improve that? If I manually start the qemu machine with
hostfwd=tcp:127.0.0.1:2222-:22 the machine works but with runqemu it
fails due to a confusing error about detecting IP address. I could add that
if it helps. With this patch runqemu doesn't care how the IP address
is configured when looking for the port number, and also doesn't fail
when it's set.
Cheers,
-Mikko
next prev parent reply other threads:[~2022-11-14 10:59 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-14 10:19 [PATCH] qemurunner.py: support setting slirp host ip address Mikko Rapeli
2022-11-14 10:31 ` [OE-core] " Quentin Schulz
2022-11-14 10:59 ` Mikko Rapeli [this message]
2022-11-14 13:17 ` Quentin Schulz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y3IfkUB9tw2Vni+x@nuoska \
--to=mikko.rapeli@linaro.org \
--cc=openembedded-core@lists.openembedded.org \
--cc=quentin.schulz@theobroma-systems.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.