mirror of
https://github.com/outbackdingo/matchbox.git
synced 2026-01-27 10:19:35 +00:00
dnsmasq: Update references to quay.io/coreos/dnsmasq
* Convenience image for using dnsmasq, hosted to get users started quickly * Resolves #28
This commit is contained in:
@@ -29,7 +29,9 @@ Note, the kernel options in the `Spec` [examples](../examples) reference 172.17.
|
||||
|
||||
Your network may already have a configurable PXE or iPXE server, configurable DHCP, a DHCP server you cannot modify, or no DHCP server at all. We'll show how to setup each network environment to talk to `bootcfg`, depending on your circumstances.
|
||||
|
||||
Several setups use the [dnsmasq](http://www.thekelleys.org.uk/dnsmasq/doc.html) program and included [coreos/dnsmasq](../dockerfiles/dnsmasq) docker image to run a PXE-enabled DHCP server, proxy DHCP server, or TFTP server as needed. Build the Docker image if needed.
|
||||
The [quay.io/coreos/dnsmasq](https://quay.io/repository/coreos/dnsmasq) image can be used to run DHCP, proxy DHCP, and TFTP. It can be built from the [dockerfiles](../dockerfiles/dnsmasq) or pulled from Quay.
|
||||
|
||||
docker pull quay.io/coreos/dnsmasq
|
||||
|
||||
### Configurable iPXE
|
||||
|
||||
@@ -66,7 +68,7 @@ If the network already runs a DHCP service, setup a PXE/iPXE network environment
|
||||
Run DHCP in proxy mode to respond to DHCP requests on the subnet. Optionally, serve the `undionly.pxe` boot file to older, non-iPXE clients (the '#' means not). Detect iPXE clients by the user class sent in their DHCPDISCOVER (or by Option 175) and point them to the `bootcfg` iPXE boot script.
|
||||
|
||||
```
|
||||
sudo docker run --net=host --rm --cap-add=NET_ADMIN coreos/dnsmasq -d -q -i enp0s25 --dhcp-range=192.168.1.1,proxy,255.255.255.0 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-userclass=set:ipxe,iPXE --pxe-service=tag:#ipxe,x86PC,"PXE chainload to iPXE",undionly.kpxe --pxe-service=tag:ipxe,x86PC,"iPXE",http://192.168.1.100:8080/boot.ipxe
|
||||
sudo docker run --net=host --rm --cap-add=NET_ADMIN quay.io/coreos/dnsmasq -d -q -i enp0s25 --dhcp-range=192.168.1.1,proxy,255.255.255.0 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-userclass=set:ipxe,iPXE --pxe-service=tag:#ipxe,x86PC,"PXE chainload to iPXE",undionly.kpxe --pxe-service=tag:ipxe,x86PC,"iPXE",http://192.168.1.100:8080/boot.ipxe
|
||||
```
|
||||
|
||||
Change the `dhcp-range`, `-i interface`, and boot.ipxe endpoint to match your environment.
|
||||
@@ -82,7 +84,7 @@ Identify a host machine which should run the DHCP service. If this machine has t
|
||||
Run DHCP to allocate IP address leases and TFTP to serve the `undionly.pxe` boot file to older, non-iPXE clients (the '#' means not). Point iPXE clients to the `bootcfg` iPXE boot script.
|
||||
|
||||
```
|
||||
sudo docker run --net=host --rm --cap-add=NET_ADMIN coreos/dnsmasq -d -q -i enp0s20u1 --dhcp-range=192.168.1.101,192.168.1.150 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-userclass=set:ipxe,iPXE --dhcp-boot=tag:#ipxe,undionly.kpxe --dhcp-boot=tag:ipxe,http://192.168.1.100:8080/boot.ipxe
|
||||
sudo docker run --net=host --rm --cap-add=NET_ADMIN quay.io/coreos/dnsmasq -d -q -i enp0s20u1 --dhcp-range=192.168.1.101,192.168.1.150 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-userclass=set:ipxe,iPXE --dhcp-boot=tag:#ipxe,undionly.kpxe --dhcp-boot=tag:ipxe,http://192.168.1.100:8080/boot.ipxe
|
||||
```
|
||||
|
||||
Change the `dhcp-range`, `-i interface`, and boot.ipxe endpoint to match your environment.
|
||||
|
||||
@@ -24,7 +24,9 @@ Note, the kernel options in the `Spec` [examples](../examples) reference 172.17.
|
||||
|
||||
We'll show how to setup PXE, iPXE, or Pixiecore network boot environments on the `docker0` bridge and configure them to use `bootcfg`.
|
||||
|
||||
The [dnsmasq](http://www.thekelleys.org.uk/dnsmasq/doc.html) program and included [coreos/dnsmasq](../dockerfiles/dnsmasq) docker image will be used to run DHCP and TFTP. Build the Docker image before continuing.
|
||||
The [quay.io/coreos/dnsmasq](https://quay.io/repository/coreos/dnsmasq) image can be used to run DHCP, proxyDHCP, and TFTP. It can be built from the [dockerfiles](../dockerfiles/dnsmasq) or pulled from Quay.
|
||||
|
||||
docker pull quay.io/coreos/dnsmasq
|
||||
|
||||
### PXE
|
||||
|
||||
@@ -42,7 +44,7 @@ With `dnsmasq`, the relevant `dnsmasq.conf` settings would be:
|
||||
Create a PXE/iPXE network environment by running a PXE-enabled DHCP server and TFTP server on the `docker0` bridge, alongside `bootcfg`.
|
||||
|
||||
```
|
||||
sudo docker run --rm --cap-add=NET_ADMIN coreos/dnsmasq -d -q --dhcp-range=172.17.0.43,172.17.0.99 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-userclass=set:ipxe,iPXE --dhcp-boot=tag:#ipxe,undionly.kpxe --dhcp-boot=tag:ipxe,http://172.17.0.2:8080/boot.ipxe
|
||||
sudo docker run --rm --cap-add=NET_ADMIN quay.io/coreos/dnsmasq -d -q --dhcp-range=172.17.0.43,172.17.0.99 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-userclass=set:ipxe,iPXE --dhcp-boot=tag:#ipxe,undionly.kpxe --dhcp-boot=tag:ipxe,http://172.17.0.2:8080/boot.ipxe
|
||||
```
|
||||
|
||||
The `coreos/dnsmasq` image runs DHCP and TFTP as a container. It allocates IPs in the `docker0` subnet to VMs and sends options to chainload older PXE clients to iPXE. iPXE clients are pointed to the `bootcfg` service iPXE endpoint (assumed to be running on 172.17.0.2:8080).
|
||||
@@ -73,7 +75,7 @@ Create a Pixiecore network environment by running a DHCP server and `danderson/p
|
||||
Run a DHCP server (not PXE-enabled)
|
||||
|
||||
```
|
||||
sudo docker run --rm --cap-add=NET_ADMIN coreos/dnsmasq -d -q --dhcp-range=172.17.0.43,172.17.0.99
|
||||
sudo docker run --rm --cap-add=NET_ADMIN quay.io/coreos/dnsmasq -d -q --dhcp-range=172.17.0.43,172.17.0.99
|
||||
```
|
||||
|
||||
Run Pixiecore, using a script which detects the `bootcfg` container IP:port on docker0.
|
||||
@@ -119,4 +121,4 @@ Restart the client machine and it should PXE boot using settings from `bootcfg`.
|
||||
|
||||
## Next
|
||||
|
||||
If you'd like to boot and configure a baremetal machine network, follow the [baremetal guide](physical-hardware.md).
|
||||
If you'd like to boot and configure a baremetal machine network, follow the [baremetal guide](physical-hardware.md).
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
|
||||
# coreos/dnsmasq
|
||||
|
||||
The coreos/dnsmasq Docker image provides an entrypoint to [dnsmasq](http://www.thekelleys.org.uk/dnsmasq/doc.html) for running dnsmasq DHCP, proxyDHCP, and TFTP. This is useful for testing different network setups without requiring changes to `dnsmasq.conf` on your host. The image also bundles `undionly.kpxe` which can be used to chainload PXE clients to iPXE.
|
||||
[coreos/dnsmasq](https://quay.io/repository/coreos/dnsmasq) is a convenience entrypoint to [dnsmasq](http://www.thekelleys.org.uk/dnsmasq/doc.html) for running DHCP, proxy DHCP, and TFTP without making changes to the host `/etc/dnsmasq.conf`.
|
||||
|
||||
The image bundles `undionly.kpxe` which chainloads PXE clients to iPXE.
|
||||
|
||||
## Usage
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ The following examples require a few additional assets be downloaded or generate
|
||||
|
||||
Run an iPXE setup with DHCP and TFTP on the virtual network on your machine similar to what would be present on a real network. This allocates IP addresses to VM hosts, points PXE booting clients to the config service, and chainloads iPXE.
|
||||
|
||||
docker run --rm --cap-add=NET_ADMIN coreos/dnsmasq -d -q --dhcp-range=172.17.0.43,172.17.0.99 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-userclass=set:ipxe,iPXE --dhcp-boot=tag:#ipxe,undionly.kpxe --dhcp-boot=tag:ipxe,http://172.17.0.2:8080/boot.ipxe
|
||||
docker run --rm --cap-add=NET_ADMIN quay.io/coreos/dnsmasq -d -q --dhcp-range=172.17.0.43,172.17.0.99 --enable-tftp --tftp-root=/var/lib/tftpboot --dhcp-userclass=set:ipxe,iPXE --dhcp-boot=tag:#ipxe,undionly.kpxe --dhcp-boot=tag:ipxe,http://172.17.0.2:8080/boot.ipxe
|
||||
|
||||
You may need to update your firewall to allow DHCP and TFTP services. If your config service container has a different IP address or subnet, the IPs in examples will require some adjustments to match your local setup.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user