Vraag


  • MJV
  • Registratie: Mei 2003
  • Laatst online: 20:44
Ik draai docker op mijn Synolog DS918+ en maak gebruik van meerdere stacks met containers. De meesten zitten op een eigen bridge netwerk.

Ik gebruik Traefik om deze containers via een hostname die ik in mijn DNS-server (pihole) heb ingesteld te benaderen. Op die manier komen diverse hostnames allemaal bij mijn NAS terecht op IP-adres 192.168.1.10.

Een van de containers die ik gebruik is Wireguard. Dit werkt prima, met een beperking. Ik kan vanuit de bridge-containers (waaronder Wireguard) de host (=NAS) niet bereiken via zijn reguliere IP-adres (192.168.1.10). Ik heb Wireguard de volgende configuratie meegegeven:
YAML:
1
2
    extra_hosts:
      - "host.docker.internal:host-gateway"

En daarmee kan ik de host wel bereiken op het docker-host adres (172.17.0.1), dus ook vanuit 'binnen' de container.

Voor zover ik in docker networking begrijp is bovenstaande conform expected behavior. Maar, ik zou graag vanuit de Wireguard container ook de host willen kunnen bereiken op 192.168.1.10, zodat ik zowel als ik lokaal werk, als via de VPN, dezelfde hostnames (die komen allemaal uit op 192.168.1.10) kan gebruiken.

Wat zie ik in mijn werkwijze over het hoofd? Is er een workaround, of moet ik fundamenteel anders te werk gaan?


Ik heb al geprobeerd de Wireguard container op het host-netwerk te draaien, dat werkte niet. Ook als met een macvlan-constructie kreeg ik het niet werkend.

Volledige Wireguard configuratie, hoewel dit probleem zich dus ook bij andere containers die in een bridge-netwerk hangen voordoet.
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
---
version: "2.1"
services:
  wireguard:
    image: lscr.io/linuxserver/wireguard
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1026
      - PGID=101
      - TZ=Europe/Amsterdam
      - SERVERURL=******
      - SERVERPORT=51338 #optional
      - PEERS=3  #optional
      #- PEERDNS=192.168.1.200 #optional
      #- INTERNAL_SUBNET=10.13.13.0 #optional
      - ALLOWEDIPS=192.168.1.0/24,192.168.10.0/24,10.13.13.0/24, 192.168.1.10
    volumes:
      - /volume1/docker/wireguard:/config
      - /lib/modules:/lib/modules
      #- /usr/src:/usr/src:ro #kernel_headers?
    ports:
      - 51338:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
      - net.ipv6.conf.all.disable_ipv6=1
      - net.ipv6.conf.default.disable_ipv6=1
    extra_hosts:
      - "host.docker.internal:host-gateway"
    restart: unless-stopped

[Voor 33% gewijzigd door MJV op 09-02-2022 20:12]

Alle reacties


  • NimRod1337
  • Registratie: November 2002
  • Laatst online: 17:10
maak een extra macvlan netwerk welke je aan alle containers toekent die met elkaar moet en praten

ik zie nu je toevoeging over macvlan. toon je netwerk eens met docker network inspect. ik snap je netwerk niet helemaal. 2 keer een /24 en dan nog een los ip in het hetzelfde netwerk allowed.

[Voor 48% gewijzigd door NimRod1337 op 09-02-2022 20:28]


  • MJV
  • Registratie: Mei 2003
  • Laatst online: 20:44
NimRod1337 schreef op woensdag 9 februari 2022 @ 20:11:
maak een extra macvlan netwerk welke je aan alle containers toekent die met elkaar moet en praten

ik zie nu je toevoeging over macvlan. toon je netwerk eens met docker network inspect. ik snap je netwerk niet helemaal. 2 keer een /24 en dan nog een los ip in het hetzelfde netwerk allowed.
Ik heb zitten knoeien met die AllowedIPs, 192.168.1.0/24 is het netwerk waar het omgaat. 10.13.13.0/24 is het Wireguard netwerk. Maar, het probleem zit 'm echt in de NAS/host zelf. Want ik kan via Wireguard bijv. wel bij mijn router (192.168.1.1) komen.

Misschien dat het met een extra macvlan netwerk werkt, maar dan moet ik een hele berg containers migreren naar dat macvlan netwerk. Of kan een container aan zowel het bridge netwerk als aan het extra macvlan netwerk hangen? Overigens vrees ik ook dat het dan niet werkt, want vanuit mijn pihole (die zit op een macvlan) kan ik ook al niet bij de host komen.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
ash-4.4# docker network inspect wireguard_default
[
    {
        "Name": "wireguard_default",
        "Id": "da3c925b3740570dd62de7490b1e339067a06177a6ee8eaaaf6712f94132db0c",
        "Created": "2022-02-09T10:13:15.475107418+01:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.31.0.0/16",
                    "Gateway": "172.31.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "7689b20aba09cf52cb6a44254723ff8a9cb75702668a74a80110cb85426cfe26": {
                "Name": "wireguard",
                "EndpointID": "52ec34504617e9df83abc4be44f3213b31aa47acc45f972d1ea87d513f54bcc3",
                "MacAddress": "02:42:ac:1f:00:02",
                "IPv4Address": "172.31.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {
            "com.docker.compose.network": "default",
            "com.docker.compose.project": "wireguard",
            "com.docker.compose.version": "1.28.5"
        }
    }
]


docker network inspect host
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[
    {
        "Name": "host",
        "Id": "682c113faacb3053cee0a8c8d782d3ae76379064e471c778e3c8d313004b7a27",
        "Created": "2019-03-28T17:50:26.528773163+01:00",
        "Scope": "local",
        "Driver": "host",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": []
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "73efecf1fe2e7ed592f150ecd8a1925c946cc6b2bc9b198c2264447aec530478": {
                "Name": "homeassistant",
                "EndpointID": "d1aadc257fcaa463289953aed33ea057834d301d2dc1d195b3bdad0f3798a0e6",
                "MacAddress": "",
                "IPv4Address": "",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

  • NimRod1337
  • Registratie: November 2002
  • Laatst online: 17:10
Je kan zoveel netwerken eraan hangen als je wil. De containers moeten in het netwerk zitten waar ze bij moeten kunnen, of je moet de juiste routes op de docker hosts aanmaken. Maw, kan de host zelf wel bij alle netwerken?

[Voor 11% gewijzigd door NimRod1337 op 09-02-2022 21:05]


  • MJV
  • Registratie: Mei 2003
  • Laatst online: 20:44
Ik kan vanaf de host inderdaad bij alle bridge-netwerken. En, vanuit de bridges dus, als ik dat zo instel, ook bij de host; alleen niet via het LAN-ip.

Ik heb het nu opgelost met een beetje een houtje-touwtje oplossing:
- Aparte pihole-docker instance gemaakt voor de VPN devices
- In die pihole het docker-host IP (172.17.0.1) ingesteld voor de hostnames die ik wil benaderen

Dat werkt :). Want de VPN-bridges devices bezoeken de host dus via het interne docker IP-adres.

Ik denk dat als ik e.e.a. met een echte (externe) domeinnaam zou instellen ik mogelijk deze problemen niet zou hebben?


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee