Настройка NAT и маршрутизации в Red Hat9 Linux

Настройка NAT и маршрутизации в Red Hat9 LinuxНастроить Linux как маршрутизатор — дело не из легких, но и не из невозможных, особенно если под рукой есть такие волшебные инструменты, как nmtui, sysctl и nftables. Представьте себе: у вас дома стоит Linux-сервер, который вдруг решил стать главным интернет-дворецким для всей вашей локалки. И вот вы — администратор с большой буквы, вооруженный командной строкой и терпением. Ну что ж, приступим к магии.

Начинается всё с nmtui — это такой текстовый интерфейс для управления сетью, словно старый добрый телефонный справочник: все адреса на виду, только здесь вместо телефонов IP-адреса. Вы заходите туда и назначаете интерфейсам роли: один — «тот самый», который смотрит в интернет (WAN), другой — для домашних устройств (LAN). Представьте себе диалог с сервером: «Ты будешь лицом к миру!» — говорите вы ens160. «А ты оставайся дома и заботься о гостях,» — шепчете ens192. Иногда хочется переименовать интерфейсы по-человечески, чтобы не путаться. Вот так просто вы уже почти режиссёр своей сетевой пьесы.

После этого приходит время перезапустить оболочку bash командой exec bash. Это как проверить зеркало после новой стрижки: «Ну что, обновился?» Иногда необязательно, но лучше перестраховаться — мало ли системные переменные решили устроить забастовку.

Затем мы открываем /etc/sysctl.conf и включаем ip_forward. Тут всё просто: если этот параметр выключен, ваш сервер ведет себя как тихий домосед и не пропускает пакеты дальше себя — эдакий ворчун в сетевом королевстве. Включив net.ipv4.ip_forward = 1, вы превращаете его в настоящего курьера между внутренним миром LAN и внешним интернетом. Применяем настройки командой sysctl -p и радуемся тому, что теперь пакеты бегают свободно.

Теперь самое забавное — настройка NAT через nftables. Если представить мир пакетов как вечеринку, то masquerade — это маскарадный костюм вашего сервера: он прячет всех гостей под своим именем (IP), чтобы никто извне не узнал их настоящих лиц. Вы создаете файл my_nat.nft с таблицей inet nat и цепочкой POSTROUTING. Тут важна каждая строчка: type nat hook postrouting говорит системе обработать пакеты перед тем, как они покинут ваш сервер через внешний интерфейс ens160.

Вспоминается анекдот про айтишника:
— Почему твой сервер такой скрытный?
— Он на маскараде!

Подключаете конфигурацию в /etc/sysconfig/nftables.conf — убираете комментарий и вставляете путь к своему файлу с правилами NAT. Это как дать указание официанту: «Вот меню сегодняшних блюд!»

Дальше systemctl enable —now nftables включает службу nftables сразу же и при каждой загрузке системы автоматически. Можно сказать, что теперь у вас постоянный охранник на посту NAT.

Итог? Ваш Linux-сервер стал полноценным маршрутизатором! Он принимает запросы от устройств в локальной сети через ens192, переправляет их наружу через ens160 с подменой IP-адреса (маскарадинг), получает ответы из интернета и возвращает их обратно клиентам внутри сети.

Если кто-то забудет включить ip_forward или сделает опечатку в имени интерфейса (например ens1060 вместо ens160), то весь этот спектакль рухнет быстрее карточного домика. А если еще забыть запустить nftables или подключить конфиг в nftables.conf… ну тут даже шутить нечего — интернет у вас будет только в мечтах.

Для проверки работы можно вызвать nft list ruleset и убедиться, что правила NAT живы-здоровы; а cat /proc/sys/net/ipv4/ip_forward покажет 1 вместо 0 — знак того, что маршрутизация включена.