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