This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| docu:tutos:net:rpi_to_router [2020/02/08 13:38] – admin | docu:tutos:net:rpi_to_router [2020/02/09 22:24] (current) – admin | ||
|---|---|---|---|
| Line 19: | Line 19: | ||
| - Connect your **usb-to-ethernet** dongle to any free usb slot on your device. | - Connect your **usb-to-ethernet** dongle to any free usb slot on your device. | ||
| - You should see a **new interface** (`ip addr`), our subnet **will be on eth1**. If you don't see the new interface, make sure your **system supports usb-to-ethernet**) | - You should see a **new interface** (`ip addr`), our subnet **will be on eth1**. If you don't see the new interface, make sure your **system supports usb-to-ethernet**) | ||
| + | - Connect a **small ethernet cable** from the usb-to-ethernet to a **switch** (for providing networking to other devices) | ||
| <code txt> | <code txt> | ||
| Line 26: | Line 27: | ||
| </ | </ | ||
| - | I really | + | I also recommend you to **remove** network-manager, |
| \\ | \\ | ||
| Line 59: | Line 60: | ||
| </ | </ | ||
| - | Now, we need to modify | + | We will be using the **192.168.2.0/ |
| + | Modify | ||
| <code bash>vim / | <code bash>vim / | ||
| <file bash dhcpd.conf> | <file bash dhcpd.conf> | ||
| Line 80: | Line 82: | ||
| option broadcast-address 192.168.2.255; | option broadcast-address 192.168.2.255; | ||
| | | ||
| - | # you are the router | + | # we are going to be 192.168.2.1, |
| option routers 192.168.2.1; | option routers 192.168.2.1; | ||
| | | ||
| - | # you will be the dns server | + | # you will be the dns server |
| option domain-name-servers 192.168.2.1; | option domain-name-servers 192.168.2.1; | ||
| # otherwise, you can simply not configure a dns server and use any other | # otherwise, you can simply not configure a dns server and use any other | ||
| Line 95: | Line 97: | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | Set yourself (the router) a **static ip address**: | ||
| + | <code bash> | ||
| + | ifconfig eth1 up | ||
| + | ip addr add 192.168.2.1/ | ||
| + | </ | ||
| + | |||
| + | Configure iptables to **route traffic** from **eth1 to eth0 and viceversa**: | ||
| + | <code bash> | ||
| + | # postrouting to our gateway interface eth0 | ||
| + | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | ||
| + | |||
| + | # this should in theory, block incoming packets that were not established first | ||
| + | iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED, | ||
| + | iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT | ||
| + | |||
| + | # enable ip forwarding if you haven' | ||
| + | echo 1 > / | ||
| + | </ | ||
| + | |||
| + | To finish the setup, **restart the isc-dhcp-server** | ||
| + | <code bash> | ||
| + | |||
| + | \\ | ||
| + | === Setup a DNS Server (Highly recommended) === | ||
| + | |||
| + | We will be using **dnsmasq** as our DNS Server, because it is very easy to install and configure. | ||
| + | <code bash> | ||
| + | |||
| + | Configure the dns server: | ||
| + | <code bash>vim / | ||
| + | <file bash dnsmasq.conf> | ||
| + | |||
| + | # bind on custom interface or ip | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | |||
| + | # log dns queries and dhcp requests | ||
| + | # | ||
| + | #log-dhcp | ||
| + | |||
| + | # expand /etc/hosts hosts to your dns | ||
| + | expand-hosts | ||
| + | |||
| + | # forward dns request to this ip | ||
| + | # when you can't resolve an address | ||
| + | server=1.1.1.1 | ||
| + | # if omitted, dnsmasq will use resolvconf to return | ||
| + | # the dns configuration inherited by the dhcp server | ||
| + | </ | ||
| + | |||
| + | Restart the **dnsmasq** server | ||
| + | <code bash> | ||
| + | |||
| + | \\ | ||
| + | === Connect your server or laptop to the switch you've configured earlier, and wollah! === | ||
| + | ==== Enjoy! ==== | ||