Hi

Stock nginx built into Synology DSM won’t cut it, so I decided to install Nginx Proxy Manager. Before doing so, I created a macvlan and assigned the NPM container to use the assigned IP. Once install is finished, and I try to launch NPM, it fails to load. I tried the same install without macvlan, and it works and loads just fine. I have installed many other containers on macvlan, so I know what I am doing and have the knowledge and experience, but I have never run into this before where there seems to be a conflict I am not aware of.

Help? Anyone?

  • Illuminated_Humanoid@alien.topOPB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    I presume you’re talking about this one ?

    sudo ip addr add 192.168.2.201/32 dev macvlan0

    I guess I didn’t explain properly but that is your auxiliary host’s IP. If you look at command 2 you’ll see

    --aux-address=“host=192.168.2.201”

    . Basically the CIDR notation

    /32

    is the same as the subnet mask

    255.255.255.255

    , only one IP address can be served in macvlan0.

    I was actually referring to ‘sudo ip route add 192.168.2.200/29 dev macvlan0’ for #3

    This one has me stumped. I hope you’re not one of those who deletes his Reddit posts because I may need to come back to this post one day 😁

    • isleepbad@alien.topB
      link
      fedilink
      English
      arrow-up
      1
      ·
      10 months ago

      I was actually referring to ‘sudo ip route add 192.168.2.200/29 dev macvlan0’ for #3

      That is the MACVLANs subnet. That’s basically carving a small subnet out of your LAN that your virtual LAN will sit on. See the preparation section of the original post.

      And yes, all proxying goes to the aux IP.

      • Illuminated_Humanoid@alien.topOPB
        link
        fedilink
        English
        arrow-up
        1
        ·
        10 months ago

        Looking at your example. Your original settings are:

        docker network create -d macvlan \
        -o parent=eth0 \
        --subnet=192.168.2.0/24 \
        --gateway=192.168.2.1 \
        --ip-range 192.168.2.200/27 \
        --aux-address=“host=192.168.2.201” \
        dockervlan

        Why did you use 192.168.2.200/29 for your route? This is the last part I dont quite understand. How does it play into the settings you chose above?

        My setup is ip range 192.168.87.96/30 which is ip range 192.168.87.96 to 192.168.87.99 . I chose 192.168.87.99 as my auxillary and my Nginx was automatically given IP 192.168.87.96 . Now my question is how do I go about knowing what to use for route? I blindly first tried 192.168.87.98 from some bad info ChatGPT gave me and then I changed the route to the exact same CIDR notation I use for my IP range which is 192.168.87.96/30 and that seemed to work. Im asking because although it works I have zero clue why it works. My brain doesnt understand this final part.

        🙏🏼

        • isleepbad@alien.topB
          link
          fedilink
          English
          arrow-up
          1
          ·
          10 months ago

          Why did you use 192.168.2.200/29 for your route? This is the last part I dont quite understand. How does it play into the settings you chose above?

          I made a typo here and it should be --ip-range 192.168.2.200/29

          As I mentioned above you are creating a virtual LAN and as such you need to carve out your own subnet.

          My setup is ip range 192.168.87.96/30 which is ip range 192.168.87.96 to 192.168.87.99 . I chose 192.168.87.99 as my auxillary and my Nginx was automatically given IP 192.168.87.96 . Now my question is how do I go about knowing what to use for route?

          What do you mean what to use for route? Given what you said your command should look like:

          docker network create -d macvlan \
          -o parent=eth0 \
          --subnet=192.168.87.0/24 \
          --gateway=192.168.87.1 \ #this is your router's address
          --ip-range 192.168.87.96/30 \
          --aux-address="host=192.168.87.99" \
          dockervlan
          

          So that command is saying: I have an entire LAN that lives on the subnet 192.168.87.0/24. My router (i.e. gateway) has the IP address 192.168.87.1. I have a virtual network (macvlan) that has its own subnet that has the range 192.168.87.96/30.

          So now you need to create the virtual subnet (macvlan) using the command

          sudo ip route add 192.168.87.96/30 dev macvlan0
          

          If you use any other subnet it wouldn’t make any sense. How else would you get the same address space you described in the ip-range option?

          • Illuminated_Humanoid@alien.topOPB
            link
            fedilink
            English
            arrow-up
            1
            ·
            10 months ago

            So essentially the last step where you create a virtual subnet is going to be the same CIDR notation as the IP range. Well, I’ll be damned, it seems like I lucked out on that one and got it right.

            Thanks again. Your method worked great and for some weird reason the other methods out there such as this one and also this one did not work for me. One of the guide creators was also trying to help me, and it just wouldn’t work.

            God bless 🙏🏼