Терминът IP препращане описва изпращането на мрежов пакет от един мрежов интерфейс към друг на същото устройство. Тя трябва да бъде активирана, когато искате вашата система да действа като рутер, който прехвърля IP пакети от една мрежа в друга.
В Linux система ядрото на Linux има променлива на име `ip_forward`, която запазва тази стойност. Достъпен е чрез файла `/proc/sys/net/ipv4/ip_forward`. Стойността по подразбиране е 0, което означава, че няма IP препращане, тъй като обикновен потребител, който работи на един компютър без допълнителни компоненти, обикновено не се нуждае от това. За разлика от това, за рутери, шлюзове и VPN сървъри това е доста съществена функция.
След това ще ви обясним как да активирате препращането на IP временно и за постоянно.
Препращането на IP като временно решение
За да активирате този параметър на ядрото в движение имате две възможности. Вариант 1 просто съхранява стойността на 1 в променливата отгоре, както следва:
#изхвърлен 1 > /процента/sys/мрежа/ipv4/ip_forward
Вариант 2 използва командата `sysctl`, която ви позволява също да регулирате различни параметри на ядрото по време на изпълнение [2]. Като администраторски потребител изпълнете следната команда:
#sysctl-вnet.ipv4.ip_forward =1Имайте предвид, че тази настройка се променя незабавно. Също така резултатът няма да се запази след рестартиране на системата.
Можете да попитате съхранената стойност, както следва:
#котка /процента/sys/мрежа/ipv4/ip_forwardТази команда връща стойност 0 за без препращане на IP и стойност 1 за активирано препращане на IP. Като алтернатива, използването на `sysctl` също ви показва текущото състояние:
# sysctl net.ipv4.ip_forwardnet.ipv4.ip_forward =0
#
Активиране на IP пренасочване за постоянно
За да се постигне това, трябва да се направят някои други стъпки. Първо, редактирайте файла `/etc/sysctl.conf`. Потърсете ред, съдържащ записа # net.ipv4.ip_forward = 1, и премахнете # в началото на реда.
След това запишете файла и изпълнете командата `sysctl`, за да активирате коригираните настройки:
#sysctl-стр /и т.н./sysctl.confОпцията `-p` е съкращение от` –load` и изисква име за конфигурационния файл, който да се следва.
След това рестартирайте файловата система proc, която предоставя информация за състоянието на ядрото на Linux, като използвате следната команда:
#/и т.н./init.d/procps рестартиранеОколо 2015 г. името на файла беше съкратено от `procps.sh` на` procps`. Така че, в по -старите системи на Debian, вместо това скриптът, който трябва да извикате, се нарича `procps.sh`.
Справяне със Systemd
Следващото препятствие дойде с издаването на Systemd версия 221. Препращането на IP е деактивирано по подразбиране и за активирането е необходим допълнителен файл. Ако все още не е там, просто го добавете. Името на файла се състои от името на мрежовия интерфейс, последвано от наставката `.network`, например` eth0.network` за мрежовия интерфейс `/dev/eth0`. Както е посочено в документацията [4], други разширения се игнорират.
Следният кодов фрагмент показва настройката за мрежовия интерфейс `/dev/tun0`. Съдържа два раздела - „Съвпадение“ и „Мрежа“. В секцията Match определете името на мрежовия интерфейс, а в секцията network активирайте IP Forwarding.
# cat /etc/systemd/network/tun0.network[Съвпада]
Име=tun0
[Мрежа]
IPForward= ipv4
Заключение
Активирането на IP Forwarding за IPv4 не е загадка. Само няколко стъпки и вие сте там. Приятно хакване!
Връзки и препратки
* [1] Настройване на Systemd-Networkd, Debian Wiki
* [2] Юрген Хаас: Научете командата sysctl на Linux
* [3] Systemd News за версия 221
* [4] Документация за Systemd