Доброго времени суток, товарищ читатель!
Эта заметка посвящена настройке простейшего роутера под CentOS 7 для раздачи Интернета через NAT. Не буду тянуть кота за хвост и начну :)
Прежде всего я хочу описать часть окружения, на котором происходило всё действие:
- Платформа - Oracle Virtual Box 4.3.28;
- Гостевая ОС - CentOS 7 Minimal, сборка 1503-01;
- Сетевые интерфейсы гостевой ОС - первый используется для имитации провайдера Интернета (смотрит в предварительно созданную сеть NAT), второй направлен во внутреннюю сеть, доступную только виртуальным машинам, никоим образом с хостом не контактирующей (имитация локальной сети).
Сеть NAT
![]() |
Настройки интерфейсов гостевой ОС |
Предупреждаю сразу - это не подробнейшее руководство для чайников; многие детали опущены, как несущественные. Собственно, поэтому установку CentOS описывать не буду - она интуитивно понятна, проста, использует графический интерфейс с поддержкой русского языка. Во время инсталляции я не создавал нового пользователя, лишь установил пароль для root, поэтому все дальнейшие команды и консольные выводы - всё это сделано в shell root-а. Теперь настало время для непосредственной настройки.
Конфигурация гостевой ОС
# настройка интерфейса локальной сети vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
Файл имеет следующее содержимое:
TYPE=Ethernet BOOTPROTO=none NAME=enp0s8 DEVICE=enp0s8 ONBOOT=yes IPADDR=192.168.42.1 PREFIX=24 DNS1=8.8.8.8
На всякий случай стоит проверить и интерфейс, подключённый к Интернету - "ONBOOT" там тоже должен быть равен "YES". Конфигурация сетевых интерфейсов в итоге выглядит так
Установка и настройка DHCP-сервера
yum install dhcp # установка пакета dhcp vi /etc/dhcp/dhcpd.conf # создание конфигурации DHCP-сервера
Файл имеет следующее содержимое:
max-lease-time 7200; # максимально возможное время аренды authoritative; # возможность форсированного обновления аренды subnet 192.168.42.0 netmask 255.255.255.0 { # диапазон адресов, выдача по BOOTP range dynamic-bootp 192.168.42.100 192.168.42.150; # шлюз по умолчанию option routers 192.168.42.1; # DNS-сервер по умолчанию option domain-name-servers 8.8.8.8; }
Старт демона и включение в автозагрузку:
systemctl start dhcpd systemctl enable dhcpd
Настройка NAT
Тут я оговорюсь, что в CentOS 7 появился FirewallD - новый способ управления межсетевым экраном. Почитав документацию, я решил не заморачиваться и настроить NAT через iptables:
systemctl stop firewalld # остановка демона FirewallD systemctl disable firewalld # отключение автозапуска yum install iptables-services # доустановка iptables iptables -t nat -A POSTROUTING -s 192.168.42.0/24 -o enp0s3 -j MASQUERADE # NAT vi /etc/sysconfig/iptables # удаление записей -A из блока *filter iptables-save > /etc/sysconfig/iptables # сохранение конфигурации iptables echo 1 > /proc/sys/net/ipv4/ip_forward # включение перенаправления трафика echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf # автозапуск перенаправления systemctl start iptables # запуск iptables systemctl enable iptables # включение в автозагрузку
Заключение
Перед тем, как написать, что развёртывание роутера завершено, в обязательном порядке нужно подключить к внутренней сети ещё одну виртуалку, проверить работу DHCP-сервера и наличие Интернета. Как только это сделано, и есть уверенность в том, что всё работает, даже после перезагрузки только что сконфигурированного роутера, то можно с чистой совестью поставить точку, что я и делаю, ибо всё заработало.P.S.: конечно, можно проще, можно задействовать другие системы с тривиальным интерфейсом настройки в полуавтоматическом режиме. Да, так и есть. Но, для меня копание в консоли и настройка роутера через неё приносит больше понимания сути всего процесса перенаправления трафика, нежели использование чего-то готового.
На этом всё - всего тебе, читатель, доброго+)
Комментариев нет:
Отправить комментарий