On Mon, 2017-07-10 at 11:47 +0200, Xavier Bestel wrote:

Hi,


> I have a machine with 3 interfaces (well, technically there are more
> of
> them but let's ignore that):
> - one "upstream" eth0 interface with a public IPv4 address
> - one "local" eth0 interface, 192.168.1.x
> - one "local" wlan0 interface, 192.168.2.x
> 
> I want my machine to act a a router for the "local" network, i.e.:
> - NAT-ing the public IPv4 upstream address to local nets
> - have every machines in the local nets to be accessible to each
> other
> - have every machines names visible to each other
> 
> In fact I'd like to configure NM for my machine to act like a regular
> OpenWRT router. However I'm stuck with a few problems:
> - NM creates many dnsmasq instances which do not communicate with
> each
> other, so machines from 192.168.1.x can't see names of 192.168.2.x

Well, NM's ipv4.method=shared is supposed to be something simple, with
simple use-cases. For example, sharing the internet via Wi-Fi to your
phone. Your scenario sounds rather complex, so NM might not be the best
tool.

You can drop dnsmasq configurations to /etc/NetworkManager/dnsmasq-
shared.d/, but I don't think that is sufficient.

You could also not use ipv4.method=manual, but start the dnsmasq
service via a dispatcher script (see `man NetworkManager`). Also
configure forwarding and NAT/iptables.


> - NM fails to setup routes correctly, see
> https://bugzilla.gnome.org/sh
> ow_bug.cgi?id=782348

yeah, that sucks. I don't know why.

> - I can't find a way to have a "global" dnsmasq (manually configured)
> running and still have NM setup the eth1 and wlan0 interfaces
> correctly
> (especially the access point)

How exactly does a global dnsmasq interfere with NM?
Depends on your configuration, but in principle that should work.
As DNS server, the dnsmasq instance(s) should not bind to conflicting
:53 ports. See "listen-address".
If you run a global DNS server, you may want to configure dns=none in
`man NetworkManager.conf`. Or `dns=default && rc-manager=unmanaged`

> Is my need so alien to NM ? Or is there some doc somewhere on how to
> do
> that ?

No. ipv4.method=shared is rather simple though.

- you may add config files to /etc/NetworkManager/dnsmasq-shared.d/
- you may configure ipv4.addresses. The first one, determines the IP 
  range for DHCP.
- ipv4.dns and ipv4.dns-search settings work
- for debugging, set "NM_DNSMASQ_DEBUG=1" environment variable for 
  NetworkManager (in NM's systemd-service file).
- observe the argument that NM passes to dnsmasq.
- see 
  
https://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/src/dnsmasq/nm-dnsmasq-manager.c?id=0c23191b01fb0582d8f3d470f463afdabc2fdf46#n149
  
https://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/src/devices/nm-device.c?id=0c23191b01fb0582d8f3d470f463afdabc2fdf46#n8320

best,
Thomas

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
networkmanager-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to