Для того чтобы использовать сервер как роутер, нам понадобится настроить NAT. В данном руководстве у сервера 2 физических порта:
- enp3s0 - Интернет (192.168.1.12)
- enp1s0 - Локальная сеть (100.100.100.1)
1. Конфигурация enp1s0
more /etc/network/interfaces
auto enp1s0
iface enp1s0 inet static
address 100.100.100.1
netmask 255.255.255.0
2. Настройка NAT
apt install iptables
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE
iptables -A FORWARD -i enp1s0 -j ACCEPT
2.1 Настройка локального шлюза как DNS сервера
В нашем случае мы используем пересылку на DNS сервер 8.8.8.8
iptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to 8.8.8.8:53
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to 8.8.8.8:53
iptables -t nat -A POSTROUTING -j MASQUERADE
2.2 Сохраним настройки модулей
nano /etc/modules
iptable_nat
2.3 Сохраним настройки трафика
nano /etc/sysctl.conf
net.ipv4.ip_forward=1
2.4 Сохраним настройки iptables
apt install iptables-persistent
iptables-save > /etc/iptables/rules.v4
3. Проверка работы
Так как на одном порту у нас интернет, а на втором локальная сеть, то все устройства подключенные к порту локальной сети должны получить доступ в интернет. Иногда бывает что сам шлюз не настроен как DNS сервер и правильная проверка будет по пингу внешнего IP адреса.
Например:
ping 8.8.8.8
Обмен пакетами с 8.8.8.8 по с 32 байтами данных:
Ответ от 8.8.8.8: число байт=32 время=23мс TTL=59
Ответ от 8.8.8.8: число байт=32 время=23мс TTL=59
Или
ping 1.1.1.1
Обмен пакетами с 1.1.1.1 по с 32 байтами данных:
Ответ от 1.1.1.1: число байт=32 время=4мс TTL=57
Ответ от 1.1.1.1: число байт=32 время=4мс TTL=57
Как мы видим все работает корректно. Теперь наш сервер выполняет функцию роутера.
Нет комментариев