Беспроводной машрутизатор своими руками / Хабр
- Выбор комплектующих
- Запуск сетевых интерфейсов
- Установка точки доступа 802.11ac (5 ГГц)
- Настройка виртуального SSID с помощью hostapd
Последние десять лет я покупал дешёвое сетевое оборудование и ставил на него DD-WRT, чтобы вернуть «функции» ценой более $500, удалённые из ядра Linux, на котором основаны стоковые прошивки.
Несмотря на нестабильные сборки, неисправленные ошибки и споры, DD-WRT всё равно предпочтительнее стоковых прошивок. Но сейчас достойные комплектующие дешевле, чем когда-либо, а DIY-сообщество поголовно перешло на Linux (я смотрю на вас, м-р Raspberry), так почему бы не собрать собственный беспроводной маршрутизатор раз и навсегда?
Первым делом нужно определиться с платформой: x86 или ARM? Не буду подробно обсуждать ключевые различия, но вкратце: у первой лучше производительность, а вторая дешевле и энергоэффективнее.
Конечно, самая важная деталь — это чипсет. Сегодня стандартами де-факто являются 802.11n (2,4 ГГц) и 802.11ac (5 ГГц), но подобрать драйверы под Linux — та ещё задачка, тем более с поддержкой режима AP (точка доступа). Короче, если не хотите проблем, то выбирайте чипсеты Atheros. Драйверы ath9k и ath20k хорошо поддерживаются, вы легко найдёте их с интерфейсами USB и/или mini-PCIe.
Хотя бы один контроллер сетевого интерфейса (NIC) — необходимый минимум, а RAM и накопитель выбирайте на свой вкус.
Список материалов
Принеся в жертву цену и энергопотребление, я выбрал x86-платформу ради модульной, относительно мощной конфигурации, доступной для апгрейда.
Если вам не нужен ARM, то и вентилятор не обязателен.
- Gigabyte GA-J1900N-D3V (J1900 четырёхъядерный 2 ГГц Celeron, два NIC)
- Airetos AEX-QCA9880-NX (двухдиапазонный 802.11ac, MIMO)
- 4 ГБ RAM (DDR3-LP, 1333 МГц, 1,35 В)
- Удлинитель mPCIe
- Корпус MX500 mini-ITX
- Три двухдиапазонных антенны 6dBi RP-SMA + кабель RP-SMA
- PicoPSU-90
- Запасной HDD 2.5”
Корпус просторный, с двумя подготовленными отверстиями для штепсельной вилки AC/DC. Установка материнской платы, RAM и Pico-PSU прошла гладко:
Железячное порно
Самым сложным оказалась установка mini-PCIe WiFi, потому что плата поддерживает только карты половинного размера: здесь на помощь пришёл удлинитель mPCIe. Я взял кабель FFC на 20 см (входит в комплект) для подключения обеих сторон адаптера и закрепил mini-PCIe на шасси с помощью двустороннего скотча.
Расширитель mini-PCIe
К счастью, корпус поставляется с тремя предварительно вырезанными отверстиями для антенн. Вот окончательный результат:
Понятно, что ставим Linux. В зависимости от оборудования, это может быть оптимизированный дистрибутив вроде Raspbian (для Raspberry Pi) или любой другой дистрибутив Linux, который вам нравится. Поскольку я много лет использую Ubuntu, то выбрал Ubuntu Server 18.04 LTS, с которым мне привычнее работать и которому обеспечена долгосрочная поддержки.
В дальнейшем статья предполагает, что вы используете дистрибутив на базе Debian.
Если установка прошла нормально и вы зашли в консоль, определим имена интерфейсов:
$ ip -br a | awk '{print $1}' lo enp1s0 enp2s0 wlp5s0
На материнской плате два встроенных NIC: это enp1s0
и enp2s0
. Беспроводная карта отображается как wlp5s0
и поддерживает режим AP, как и предполагалось:
$ iw list ... Supported interface modes: * managed * AP * AP/VLAN * monitor * mesh point
Теперь можем обрисовать, что нам нужно: первый NIC поставим как WAN-порт, а второй соединим с беспроводным интерфейсом:
Сеть
Если у вас Ubuntu 18. ENABLED=1$/ENABLED=0/g» /etc/default/dnsmasq
Напишем предварительную конфигурацию сетевых интерфейсов в соответствии с диаграммой, включая минимальную настройку
:
$ cat /etc/network/interfaces # Loopback auto lo iface lo inet loopback # WAN interface auto enp1s0 iface enp1s0 inet dhcp # Bridge (LAN) auto br0 iface br0 inet static address 192.168.1.1 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 bridge_ports enp2s0 post-up /usr/sbin/dnsmasq \ --pid-file=/var/run/dnsmasq.$IFACE.pid \ --dhcp-leasefile=/var/lib/misc/dnsmasq.$IFACE.leases \ --conf-file=/dev/null \ --interface=$IFACE --except-interface=lo \ --bind-interfaces \ --dhcp-range=192.168.1.10,192.168.1.150,24h pre-down cat /var/run/dnsmasq.$IFACE.pid | xargs kill
Документация /etc/network/interfaces
здесь
Как вы могли заметить по секции post-up
, dnsmasq стартует, как только поднимается мост.
--conf-file=/dev/null
), и процесс остановится при отключении интерфейса.В поле bridge_ports
специально не указан интерфейс wlp5s0
, потому что hostapd
добавит его к мосту автоматически (brctl может отказаться делать это, прежде чем запущен hostapd для изменения режима интерфейса).
См. документацию по dnsmasq
.
Теперь можно перезапустить сеть (sudo service networking restart
) или просто перезагрузиться, чтобы проверить правильность настройки конфигурации сети.
Обратите внимание: хотя мы в данный момент можем получить DHCP от enp2s0
, но у нас не будет ни беспроводной связи (позже подробнее об этом),
Маршрутизация
На этом этапе нужно маршрутизировать пакеты между интерфейсами LAN (enp2s0
) и WAN (enp1s0
) и включить трансляцию сетевых адресов.
Включить переадресацию пакетов легко:
$ sudo sysctl -w net.ipv4.ip_forward=1 $ echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
Последняя команда гарантирует, что конфигурация сохранится до следующей перезагрузки.
Трансляция сетевых адресов — другое дело, обычно придётся разбираться (или, скорее, бороться) с iptables
. К счастью, каменный век давно закончился, и ребята из FireHol приложили немало усилий, добавив необходимый уровень абстракции:
$ sudo apt-get install firehol
FireHOL — это язык для защищённого файрвола с сохранением состояния, его конфигурация легко понятна и доступна. Больше не надо писать операторы iptables
: конфигурационный файл сам транслируется в операторы iptables
и применяется как надо. Никакого демона в фоновом режиме.
Включение трансляции сетевых адресов для интерфейсов локальной сети с добавлением минимальных правил файрвола делается элементарно:
$ cat /etc/firehol/firehol.START_FIREHOL=.+$/START_FIREHOL=YES/g" /etc/default/firehol
Не буду вдаваться в детали всего синтаксиса firehol
, конфигурационный файл сам себя объясняет, рекомендую обратиться к документации в случае более сложной настройки. Если вам действительно интересно, что firehol
сотворил с iptables
, просто введите sudo firehol status
в командной строке.
Беспроводная точка доступа
$ sudo apt-get install hostapd
Ниже вы найдёте минимальный и почти не требующий пояснений файл конфигурации 802.11 n/2.4 Ghz/WPA2-AES:
$ cat /etc/hostapd/hostapd-simple.conf #### Interface configuration #### interface=wlp5s0 bridge=br0 driver=nl80211 ##### IEEE 802.11 related configuration ##### ssid=iCanHearYouHavingSex hw_mode=g channel=1 auth_algs=1 wmm_enabled=1 ##### IEEE 802.11n related configuration ##### ieee80211n=1 ##### WPA/IEEE 802.11i configuration ##### wpa=2 wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP wpa_passphrase=YouCantGuess
Документацию hostpad.conf
см. в /usr/share/doc/hostapd/examples/hostapd.conf
.
Описанную конфигурацию можно протестировать вручную:
$ sudo hostapd /etc/hostapd/hostapd-simple.conf
Если всё идёт хорошо, появится беспроводное подключение. Если вы удовлетворены результатом, не забудьте изменить конфигурацию, чтобы запустить hostapd
сразу как поднимется интерфейс (как показано ниже).
Вот ваш окончательный /etc/network/interfaces:
$ cat /etc/network/interfaces # Loopback auto lo iface lo inet loopback # WAN interface auto enp1s0 iface enp1s0 inet dhcp # Bridge (LAN) auto br0 iface br0 inet static address 192.168.1.1 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 bridge_ports enp2s0 post-up /usr/sbin/hostapd \ -P /var/run/hostapd.$IFACE.pid \ -B /etc/hostapd/hostapd-simple.conf post-up /usr/sbin/dnsmasq \ --pid-file=/var/run/dnsmasq.$IFACE.pid \ --dhcp-leasefile=/var/lib/misc/dnsmasq.$IFACE.leases \ --conf-file=/dev/null \ --interface=$IFACE --except-interface=lo \ --bind-interfaces \ --dhcp-range=192.168.1.10,192.168.1.150,24h pre-down cat /var/run/dnsmasq.$IFACE.pid | xargs kill pre-down cat /var/run/hostapd.$IFACE.pid | xargs kill
Пассивное сканирование
Согласно документации Airetos AEX-QCA9880-NX, чипсет поддерживает 802.11ac, так что мы можем уйти из переполненных каналов 2,4 ГГц в райские 5 ГГц.
Посмотрим, какие частоты поддерживаются:
$ iw list ... Frequencies: * 2412 MHz [1] (20.0 dBm) * 2417 MHz [2] (20.0 dBm) * 2422 MHz [3] (20.0 dBm) * 2427 MHz [4] (20.0 dBm) * 2432 MHz [5] (20.0 dBm) * 2437 MHz [6] (20.0 dBm) * 2442 MHz [7] (20.0 dBm) * 2447 MHz [8] (20.0 dBm) * 2452 MHz [9] (20.0 dBm) * 2457 MHz [10] (20.0 dBm) * 2462 MHz [11] (20.0 dBm) * 2467 MHz [12] (disabled) * 2472 MHz [13] (disabled) * 2484 MHz [14] (disabled) ... Frequencies: * 5180 MHz [36] (17.0 dBm) (no IR) * 5200 MHz [40] (17.0 dBm) (no IR) * 5220 MHz [44] (17.0 dBm) (no IR) * 5240 MHz [48] (17.0 dBm) (no IR) * 5260 MHz [52] (23.0 dBm) (no IR, radar detection) * 5280 MHz [56] (23.0 dBm) (no IR, radar detection) * 5300 MHz [60] (23.0 dBm) (no IR, radar detection) * 5320 MHz [64] (23.0 dBm) (no IR, radar detection) * 5500 MHz [100] (23.
0 dBm) (no IR, radar detection) * 5520 MHz [104] (23.0 dBm) (no IR, radar detection) * 5540 MHz [108] (23.0 dBm) (no IR, radar detection) * 5560 MHz [112] (23.0 dBm) (no IR, radar detection) * 5580 MHz [116] (23.0 dBm) (no IR, radar detection) * 5600 MHz [120] (23.0 dBm) (no IR, radar detection) * 5620 MHz [124] (23.0 dBm) (no IR, radar detection) * 5640 MHz [128] (23.0 dBm) (no IR, radar detection) * 5660 MHz [132] (23.0 dBm) (no IR, radar detection) * 5680 MHz [136] (23.0 dBm) (no IR, radar detection) * 5700 MHz [140] (23.0 dBm) (no IR, radar detection) * 5720 MHz [144] (23.0 dBm) (no IR, radar detection) * 5745 MHz [149] (30.0 dBm) (no IR) * 5765 MHz [153] (30.0 dBm) (no IR) * 5785 MHz [157] (30.0 dBm) (no IR) * 5805 MHz [161] (30.0 dBm) (no IR) * 5825 MHz [165] (30.0 dBm) (no IR) ...
В приведённом списке видим, что чипсет поддерживает каналы 1−14 (2,4 ГГц) и каналы 36−165 (5 ГГц), но вы заметили флаг no IR
?
Флаг no IR
обозначает no-initiating-radiation (то есть пассивное сканирование). Это значит, что данный режим запрещён в случае, когда устройство первым инициирует излучение (включая маяки). Другими словами, нельзя запускать точку доступа на этих каналах!
Нормативные требования
Вышеописанная ситуация объясняется нормативными требованиями Linux, которые регулируют использование радиочастотного спектра в зависимости от страны.
Но погодите!
Я живу в США, а по ссылке написано, что я имею право инициировать излучение на каналах 36-48, так в чём дело? Посмотрим, какой домен регулирования используется в данный момент:
$ iw reg get country 00: DFS-UNSET (2402 - 2472 @ 40), (N/A, 20), (N/A) (2457 - 2482 @ 40), (N/A, 20), (N/A), NO-IR (2474 - 2494 @ 20), (N/A, 20), (N/A), NO-OFDM, NO-IR (5170 - 5250 @ 80), (N/A, 20), (N/A), NO-IR (5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS, NO-IR (5490 - 5730 @ 160), (N/A, 20), (0 ms), DFS, NO-IR (5735 - 5835 @ 80), (N/A, 20), (N/A), NO-IR (57240 - 63720 @ 2160), (N/A, 0), (N/A)
Выдача показывает, что сейчас активен мировой домен (или не установлен), то есть минимальные значения, разрешённые в каждой стране.
К сожалению, вручную установить домен sudo iw reg set
не получится, потому что домен зашит в EEPROM:
$ dmesg | grep EEPROM [ 12.123068] ath: EEPROM regdomain: 0x6c
Патч!
К счастью, нормативные требования обрабатываются на уровне драйвера, так что их можно легко изменить: находим патч в исходниках Open-WRT.
Прежде всего, не забудьте подключить репозиторий исходного кода из /etc/apt/sources.list
:
$ cat /etc/apt/sources.list ... deb-src http://us.archive.ubuntu.com/ubuntu/ bionic main restricted ...
Затем подготовьте окружение, установив необходимые зависимости:
$ sudo apt-get install build-essential fakeroot $ sudo apt-get build-dep linux
Скачайте источники своего ядра:
$ apt-get source linux
Поскольку оригинальный патч Open-WRT нельзя применить «как есть» к дереву ядра Ubuntu из-за тонких различий в системе сборки, пришлось его исправить:
$ VERSION=$(uname -r) $ cd linux-${VERSION%%-*} $ wget -O - https://gist.github.com/renaudcerrato/02de8b2e8dc013bc71326defd2ef062c/raw/a2db325e520e6442c8c12f7599d64ac1b7596a3e/402-ath_regd_optional.patch | patch -p1 -b
Всё готово для сборки:
$ fakeroot debian/rules clean $ fakeroot debian/rules binary-generic
Если проблем нет, то теперь можно установить исправленное ядро поверх предыдущего:
$ cd .. $ sudo dpkg -i linux*.deb
Перезагрузка, и вуаля:
$ sudo iw reg set US $ iw list ... Frequencies: * 5180 MHz [36] (17.0 dBm) * 5200 MHz [40] (17.0 dBm) * 5220 MHz [44] (17.0 dBm) * 5240 MHz [48] (17.0 dBm) * 5260 MHz [52] (23.0 dBm) (radar detection) * 5280 MHz [56] (23.0 dBm) (radar detection) * 5300 MHz [60] (23.0 dBm) (radar detection) * 5320 MHz [64] (23.0 dBm) (radar detection) * 5500 MHz [100] (23.0 dBm) (radar detection) * 5520 MHz [104] (23.0 dBm) (radar detection) * 5540 MHz [108] (23.0 dBm) (radar detection) * 5560 MHz [112] (23.0 dBm) (radar detection) * 5580 MHz [116] (23.0 dBm) (radar detection) * 5600 MHz [120] (23.0 dBm) (radar detection) * 5620 MHz [124] (23.0 dBm) (radar detection) * 5640 MHz [128] (23.0 dBm) (radar detection) * 5660 MHz [132] (23.0 dBm) (radar detection) * 5680 MHz [136] (23.0 dBm) (radar detection) * 5700 MHz [140] (23.0 dBm) (radar detection) * 5720 MHz [144] (23.0 dBm) (radar detection) * 5745 MHz [149] (30.0 dBm) * 5765 MHz [153] (30.0 dBm) * 5785 MHz [157] (30.0 dBm) * 5805 MHz [161] (30.0 dBm) * 5825 MHz [165] (30.0 dBm) ...
Во избежание автоматического обновления может потребоваться закрепить версию ядра Linux.
Конфигурация
Новый файл конфигурации hostapd
будет довольно простым: hw_mode=a
включает диапазоны 5 ГГц, а ieee80211ac=1
включает 802. 11ac (VHT). Опция
ieee80211d=1
с указанием country_code=US
определяет нормативный домен, под которым мы работаем.
Чтобы максимально использовать пропускную способность, ht_capab
и vht_capab
должны отражать возможности оборудования:
$ iw list ... Band 1: Capabilities: 0x19e3 RX LDPC HT20/HT40 Static SM Power Save RX HT20 SGI RX HT40 SGI TX STBC RX STBC 1-stream Max AMSDU length: 7935 bytes DSSS/CCK HT40 ... Band 2: VHT Capabilities (0x338001b2): Max MPDU length: 11454 Supported Channel Width: neither 160 nor 80+80 RX LDPC short GI (80 MHz) TX STBC RX antenna pattern consistency TX antenna pattern consistency
С учётом этого вот окончательныйhostapd.
: conf
$ cat /etc/hostapd/hostapd.conf #### Interface configuration #### interface=wlp5s0 bridge=br0 driver=nl80211 ##### IEEE 802.11 related configuration ##### ssid=iCanHearYouHavingSex hw_mode=a channel=0 auth_algs=1 wmm_enabled=1 country_code=US ieee80211d=1 ieee80211h=0 ##### IEEE 802.11n related configuration ##### ieee80211n=1 ht_capab=[HT40+][SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1][DSSS_CK-40][LDPC][MAX-AMSDU-7935] ##### IEEE 802.11ac related configuration ##### ieee80211ac=1 vht_capab=[MAX-MPDU-11454][RXLDPC][SHORT-GI-80][TX-STBC-2BY1][RX-STBC-1][MAX-A-MPDU-LEN-EXP7][TX-ANTENNA-PATTERN][RX-ANTENNA-PATTERN] vht_oper_chwidth=1 ##### WPA/IEEE 802.11i configuration ##### wpa=2 wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP wpa_passphrase=YouCantGuess
Документацию hostpad.conf
см. в /usr/share/doc/hostapd/examples/hostapd.conf
.
На этом этапе беспроводной маршрутизатор полностью работоспособен, и если нужна более сложная настройка, то вы можете теперь погрузиться в конфигурационные файлы.
Независимо от того, хотите вы настроить гостевую точку доступа или выделенную беспроводную сеть для своего VPN, в какой-то момент придётся настроить виртуальный SSID.
Диаграмма
Исходя из текущей конфигурации, вот обновлённая диаграмма, что мы хотим получить. Предполагая, что wlp5s0
является физическим беспроводным интерфейсом, виртуальный SSID будет работать на виртуальном интерфейсе wlan0
, используя собственную подсеть 192.168.2.0/24
:
Подготовка
Прежде всего проверим, что ваше беспроводное устройство поддерживает несколько SSID:
$ iw list ... valid interface combinations: * #{ AP, mesh point } <= 8, total <= 8, #channels <= 1, STA/AP BI must match ...
Как видим, чипсет поддерживает до восьми точек доступа на одном канале. Это означает, что можно настроить до семи виртуальных SSID, и все они будут работать на одном канале.
Сетевой интерфейс
Согласно документации в hostapd.conf, существует строгая связь между MAC-адресом физического интерфейса и BSSID виртуальных интерфейсов:
hostapd will generate a BSSID mask based on the BSSIDs that are configured. hostapd will verify that dev_addr & MASK == dev_addr. If this is not the case, the MAC address of the radio must be changed before starting hostapd. If a BSSID is configured for every secondary BSS, this limitation is not applied at hostapd and other masks may be used if the driver supports them (e.g., swap the locally administered bit)BSSIDs are assigned in order to each BSS, unless an explicit BSSID is specified using the ‘bssid’ parameter.
If an explicit BSSID is specified, it must be chosen such that it:
— results in a valid MASK that covers it and the dev_addr
— is not the same as the MAC address of the radio
— is not the same as any other explicitly specified BSSID
Чтобы выполнить эти требования и позволить hostapd
автоматически назначать BSSID виртуального интерфейса(ов), обновим MAC-адрес физического беспроводного интерфейса, обнулив четыре наименее значимых бита. Этого хватит на 15 виртуальных BSSID — намного больше, чем необходимо.
Сначала определим текущий MAC-адрес:
$ ip addr show wlp5s0 | grep link | awk '{print $2}' 44:c3:06:00:03:eb
Если очистить четыре последних бита и установить бит U/L, получится MAC-адрес 46:c3:06:00:03:e0
.
Теперь обновим конфигурацию, чтобы установить правильный MAC-адрес прямо перед загрузкой интерфейса, а также объявить виртуальный беспроводной интерфейс в соответствии с нашей диаграммой:
$ cat /etc/network/interfaces ... # Physical Wireless auto wlp5s0 iface wlp5s0 inet manual pre-up ip link set dev wlp5s0 address 46:c3:06:00:03:e0 # Virtual Wireless allow-hotplug wlan0 iface wlan0 inet static address 192.168.2.1 network 192.168.2.0 netmask 255.255.255.0 broadcast 192.168.2.255 post-up /usr/sbin/dnsmasq \ --pid-file=/var/run/dnsmasq-wlan0.pid \ --conf-file=/dev/null \ --interface=wlan0 --except-interface=lo \ --bind-interfaces \ --dhcp-range=192.168.2.10,192.168.2.150,24h post-down cat /var/run/dnsmasq-wlan0.pid | xargs kill ...
Отлично. Я использую dnsmasq
как DHCP-сервер — не стесняйтесь заменить на то, что вам нравится. Обратите внимание, что для корректной работы виртуального интерфейса требуется allow-hotplug
.
Конфигурация точки доступа
Теперь самое простое: добавим виртуальный SSID к текущей конфигурации hostapd
. Просто добавьте это в конец существующего файла hostapd.conf
:
$ cat /etc/hostapd/hostapd.conf ... ### Virtual SSID(s) ### bss=wlan0 ssid=MyVirtualSSID wpa=2 wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP wpa_passphrase=you_cant_guess
В приведённом примере я применил шифрование WPA2, но тут доступно большинство опций радиоинтерфейса (например, channel
). Можно добавить больше виртуальных SSID, просто дописав строчки в конфигурационном файле, согласно объявленным и правильно настроенным виртуальным интерфейсам.
Теперь перезагрузимся — и видим свой новый SSID вместе с новым беспроводным интерфейсом (обратите внимание на MAC-адрес):
$ ip addr show wlan0 | grep link | awk '{print $2}' 46:c3:06:00:03:e1
Вот и всё, ребята!
Как создать простой маршрутизатор с Ubuntu Server 18.04.1 LTS (Bionic Beaver)
Недавно нашей задачей было установить общедоступные компьютеры за отдельным маршрутизатором для контроля доступа в Интернет. Поскольку у нас полно компьютерных компонентов, мы решили построить маршрутизатор на более старом компьютере с операционной системой Ubuntu Server 18.04.1 LTS (Bionic Beaver).
Мы написали это руководство, чтобы помочь другим с подобной задачей.
ПРЕДПОСЫЛКИ
- Компьютер под управлением Ubuntu Server 18.04.1 LTS. Не будем вдаваться в подробности установки операционной системы Ubuntu. Это довольно просто.
- Как минимум два сетевых интерфейса. Один предназначен для глобальной сети, а другой — для локальной сети маршрутизатора.
Вы также можете использовать некоторые коммутаторы в случае, если вы собираетесь подключить несколько устройств в локальной сети, купить коммутаторы или маршрутизаторы можно на сайте http://spw.ru/. Но это почти все, что вам нужно для работающего роутера.
Примечание
Поскольку мы будем изменять брандмауэр, мы бы не советовали настраивать его через SSH. Вы можете заблокировать себя во время процесса.
1. НАСТРОЙКА СЕТЕВЫХ ИНТЕРФЕЙСОВ
Во-первых, нам нужно настроить сетевые интерфейсы, которые мы будем использовать. В нашем случае eth0 будет WAN, а eth2 LAN.
WAN (eth0) — этот интерфейс получит IP от провайдера, поэтому мы оставляем его с помощью DHCP.
LAN (eth2) — мы настраиваем интерфейс со статическим IP внутри подсети, которую мы будем использовать для локальной сети
Небольшое замечание: Ubuntu 18.04 не использует традиционный файл конфигурации сети /etc/network/interfaces. Он использует NETPLAN. В нашем случае, есть конфигурационный файл, называется 50-cloud-init. yaml внутри папки /etc/netplan/. В вашем случае файл может иметь другое имя, просто найдите файл с расширением.yaml внутри папки netplan.
Давайте откроем это с помощью nano:
sudo nano /etc/netplan/50-cloud-init.yaml
Отредактируйте его в соответствии с потребностями вашей сети, в моем примере я настроил это так:
# Этот файл создан на основе информации, предоставленной # источник данных. Изменения в нем не будут сохраняться во всем экземпляре. # Чтобы отключить возможности сетевой конфигурации cloud-init, напишите файл # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg со следующим: # network: {config: disabled}
network: ethernets: eth0: dhcp4: true eth2: addresses: - 192.168.1.1/24 dhcp4: false nameservers: addresses: - 8.8.8.8 - 8.8.4.4 search: [] version: 2
Подводя итог: eth0, который является WAN, получает IP от модема интернет-провайдера. Eth2 является частью локальной сети маршрутизатора. Нам нужен статический IP и DNS-серверы (в нашем примере мы использовал Google). Также мы не настроили ни один шлюз на eth2.
Сохраните конфигурацию с помощью следующих команд:
sudo netplan generate sudo netplan apply
2. НАСТРОЙКА СЕРВЕРА DHCP
Далее мы настроим DHCP-сервер. Мы действительно не хотим настраивать каждый клиент со статическим IP в сети LAN. Для этой задачи нам нужно установить следующий пакет.
sudo apt-get install isc-dhcp-server
Далее нам нужно отредактировать файл /etc/default/isc-dhcp-server. Это сообщает DHCP-серверу, какой сетевой интерфейс он должен прослушивать. В нашем случае это конечно eth2, интерфейс локальной сети.
Вводим команду:
sudo nano /etc/default/isc-dhcp-server
А под «INTERFACESv4» вставьте сетевой интерфейс вашей локальной сети. В нашем случае это eth2 :
INTERFACESv4 = "eth2"
Следующим шагом будет настройка DHCP-сервера. Это делается путем редактирования файла /etc/dhcp/dhcpd.conf
sudo nano /etc/dhcp/dhcpd.conf
Вот куча разных параметров, большинство из них комментируются # перед каждой строкой. Короче говоря, мы запишем только те параметры, которые мы использовал, и/или отредактируем их в соответствии со своими потребностями. Если вы хотите, вы можете удалить все содержимое этого файла и просто скопировать/вставить код ниже. Конечно, вы меняете IP-адреса, шлюзы и т. д. В соответствии с вашей собственной конфигурацией сети.
option domain-name "whatever.you.want"; option domain-name-servers 8.8.8.8, 8.8.4.4; default-lease-time 600; max-lease-time 7200; ddns-update-style none; authoritative; log-facility local7; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.101 192.168.1.200; option subnet-mask 255.255.255.0; option routers 192.168.1.1; option broadcast-address 192.168.1.255; }
Теперь давайте применим настройки и включим DHCP-сервер при загрузке с помощью следующих команд:
sudo systemctl restart isc-dhcp-server sudo systemctl enable isc-dhcp-server
С помощью следующей команды мы проверяем статус.
sudo systemctl status isc-dhcp-server
Если все настроено правильно, должна быть строка «ACTIVE». В противном случае вы что-то напутали в файле /etc/dhcp/dhcpd.conf. Возможно, отсутствует точка с запятой или скобка.
3. НАСТРОЙКА ФАЙЕРВОЛА
Чтобы иметь функциональный маршрутизатор, нам нужно правильно настроить брандмауэр. Это делается путем записи некоторых правил iptables. Чтобы сохранить правила при перезапуске сервера, мы создали скрипт, который будет выполняться во время загрузки.
Сначала давайте включим UFW с…
sudo ufw enable
Далее нам нужно включить пересылку пакетов из WAN в LAN. У нас следующий параметр внутри файла /etc/ufw/sysctl.conf:
Открываем файл…
sudo nano /etc/ufw/sysctl.conf
… и мы просто удаляем # перед следующей строкой:
net/ipv4/ip_forward=1
В Ubuntu 18.04 файл /etc/rc.local больше не существует. Но мы все еще можем создать это с:
sudo nano /etc/rc.local
Затем скопируйте/вставьте следующий скрипт. Есть комментарии, объясняющие каждое правило iptables. Вы можете удалить их, если хотите, но вы НЕ должны удалять #! /bin/bash. Также измените eth0 и eth2, если ваши сетевые интерфейсы имеют несколько разных имен.
#!/bin/bash # /etc/rc.local # Default policy to drop all incoming packets. iptables -P INPUT DROP iptables -P FORWARD DROP # Accept incoming packets from localhost and the LAN interface. iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth2 -j ACCEPT # Accept incoming packets from the WAN if the router initiated the connection. iptables -A INPUT -i eth0 -m conntrack \ --ctstate ESTABLISHED,RELATED -j ACCEPT # Forward LAN packets to the WAN. iptables -A FORWARD -i eth2 -o eth0 -j ACCEPT # Forward WAN packets to the LAN if the LAN initiated the connection. iptables -A FORWARD -i eth0 -o eth2 -m conntrack \ --ctstate ESTABLISHED,RELATED -j ACCEPT # NAT traffic going out the WAN interface. iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # rc.local needs to exit with 0 exit 0
Этот сценарий должен выполняться во время загрузки, поэтому нам нужно сделать файл исполняемым с помощью следующей команды:
sudo chmod 755 /etc/rc.local
И это все. Мы перезагружаем маршрутизатор с помощью команды sudo reboot, и мы готовы к работе. 🙂
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Linux, Ubuntu, Ubuntu 18.04, брандмауэр, маршрутизатор Кол-во комментариев: 7
Лучшее бесплатное программное обеспечение для маршрутизаторов и брандмауэров Linux 2023 (4 рекомендации)
Последнее обновление этой статьи: 30 декабря 2022 г. Однако в Интернете есть много устаревших рекомендаций, так что это не простой выбор. Поэтому мы решили создать окончательное сравнение брандмауэров на 2023 год.
В Википедии есть список дистрибутивов маршрутизаторов и брандмауэров, но этот список бесполезен, поскольку он неточен (по состоянию на январь 2023 г. ), и на самом деле он не сравнивает эти системы таким образом, чтобы помочь сделать выбор, не проверяя их все по очереди. В нем также перечислены многие устаревшие и неактуальные системы, которых следует избегать в 2023 году9.0005
Если вы хотите получить максимальную отдачу от своего аппаратного устройства или строите новый брандмауэр, мы провели для вас исследование.
Почему наше сравнение дистрибутивов маршрутизаторов лучше, чем у других?
Уже много лет мы продаем оборудование для создания брандмауэров и маршрутизаторов с открытым исходным кодом. За последний год мы установили и настроили большинство, если не все дистрибутивы. Мы ежедневно устанавливаем и настраиваем pfSense, OPNSense, OpenWRT, Vyos, IPFire и другие системы, поэтому у нас есть хорошее представление о том, какие операционные системы работают лучше других. Кроме того, мы не зарабатываем деньги на каких-либо поставщиках программного обеспечения, что делает эту рекомендацию относительно объективной.
Мы ежедневно слышим отзывы клиентов; если есть проблемы с производительностью или проблемы с обновлениями, мы слышим об этом.
10 лучших брандмауэров с открытым исходным кодом
, которых следует избегать – что НЕ следует использовать.Другие сравнения рекомендуют операционные системы, которые давно мертвы или больше не актуальны. Скорее всего, это связано с тем, что эти списки «10 лучших программ для брандмауэров Linux с открытым исходным кодом» копируются из года в год нетехническими пользователями, не выполняя реальной работы по их сравнению.
Некоторые операционные системы были заменены или перестали поддерживаться и стали неактуальными. Вы хотите избегать таких систем из соображений безопасности — эти дистрибутивы устарели и имеют небезопасные ядра Linux/BSD, что может привести к уязвимостям безопасности.
1. IPCop – избегать любой ценой.
Некогда популярная операционная система, включенная во все списки «10 лучших», такие как этот. Вам следует избегать его использования. Последний релиз был в 2015 году, а система по нынешним меркам древняя. Официальный сайт мертв, но исходный код все еще там. Не используйте его.
2. Гладкостен — давно мертв.
Smoothwall заработал хорошую репутацию в первые дни, когда он конкурировал с IPCop. В 2014 году он замолчал. Операционная система Smoothwall была заброшена и больше не актуальна и не безопасна. Вам следует избегать этого. Сайт по-прежнему работает, но не обновлялся уже много лет.
3. DD-WRT — больше не конкурентоспособен.
Это спорная рекомендация, поскольку многие пользователи по-прежнему считают, что DD-WRT — это хорошо. Это определенно было в те времена. Сегодня DD-WRT все еще функционален и работает, но он не является отличным или инновационным. Он в основном не изменился с 2014 года и сильно отстал от других конкурентов с открытым исходным кодом. Сегодня есть много хороших альтернатив, таких как OpenWRT.
4. M0n0wall – удален.
M0n0wall — крестный отец самых успешных операционных систем, которые у нас есть сегодня. Это был один из самых инновационных проектов своего времени, но сейчас он закрыт. Система не получала никаких обновлений с начала 2014 года и официально заброшена.
Мануэль Каспер, автор M0n0wall, рекомендует OPNSense в качестве преемника.
5. Помидор — не для новых роутеров.
Tomato — это круто, и нам это нравится, но это минимальная прошивка, предназначенная для прошивки готовых роутеров, таких как D-Link и Asus. Система по-прежнему актуальна, если вы хотите воскресить свое старое оборудование и сделать его снова работоспособным, но если вы собираете новый маршрутизатор, вы, вероятно, не захотите использовать на нем томат. Мы создаем мощные маршрутизаторы с нуля, поэтому обычно не используем эту систему (до сих пор ее любим).
6. Zeroshell — заброшен.
Хотя Zeroshell так и не достиг уровня, достаточного для того, чтобы его рекомендовали, мы возлагали на него большие надежды в 2019 году, когда начали поддерживать этот список рекомендаций, потому что он был разработан с нуля, а не на основе другой системы, и имел некоторые инновационные функции. К сожалению, в сентябре 2021 года система была официально заброшена. Больше не поддерживается и не безопасна.
Не рекомендуется, поскольку они неудобны в использовании
Эти системы актуальны и получают обновления, но мы все равно не рекомендуем их, по крайней мере, менее технически подготовленным пользователям.
Мы не рекомендуем перечисленные ниже системы, поскольку они требуют относительно высоких знаний для выполнения простых задач . В наши дни маршрутизаторы SOHO (для малых и домашних офисов) должны быть просты в настройке и иметь интуитивно понятный веб-интерфейс для управления. Обновление маршрутизатора не должно требовать многочасовой работы в командной строке. По этим причинам мы не рекомендуем следующие системы:
7. VyOS — без веб-интерфейса.
Нам действительно нравится VyOS. Это хорошая инновационная система, которая активно развивается и регулярно обновляется. Так почему же мы не рекомендуем его?
Управление VyOS должно осуществляться из командной строки, и для его обслуживания и использования требуется высокий уровень знаний. Если вы эксперт по Linux, у вас есть свободное время и вам нравится интерфейс командной строки, вы можете попробовать его — некоторые из наших клиентов успешно его используют. Однако это не лучший выбор, если вы домашний пользователь, который просто хочет добиться своей цели.
Существует два варианта выпуска системы. «Стабильный» выпуск и «плавающий» выпуск. Большинство пользователей, вероятно, захотят использовать стабильную версию; однако этот выпуск бесплатен только в том случае, если вы самостоятельно скомпилируете его из исходного кода. Это препятствие обескураживает многих пользователей. Скользящий выпуск бесплатен, но его стабильность не гарантируется — и мы можем подтвердить это, так как несколько раз сталкивались с ошибкой при его установке. Скользящий выпуск также не охвачен официальной документацией.
8. OpenBSD и FreeBSD — используйте, только если у вас есть опыт работы с командной строкой более 10 лет.
OpenBSD и FreeBSD активно разрабатываются и очень функциональны, но эти системы требуют высокого уровня понимания внутреннего устройства операционной системы и низкоуровневой сети для использования в качестве маршрутизаторов.
Мы регулярно устанавливаем обе системы для клиентов, которые являются экспертами, такими как сетевые администраторы или разработчики программного обеспечения. Если вы не хотите возиться с внутренними компонентами системы и часами читать руководства, эта система не для вас. Он не предоставляет каких-либо инструментов веб-интерфейса или графического интерфейса пользователя для настройки. Это базовая система на основе терминала.
9. Debian и Ubuntu – не используйте для маршрутизатора ОС общего назначения.
Эти системы не предназначены для маршрутизаторов. Это операционные системы общего назначения, и их не следует использовать в качестве маршрутизаторов. Как и в случае с OpenBSD и VyOS, вам придется настраивать все вручную без веб-интерфейса. Легко сделать ошибку и оставить дыру, открывающую доступ к внутренним системам злоумышленникам.
Не рекомендуется, поскольку они на самом деле не бесплатны
Есть также несколько систем, которые мы не рекомендуем, поскольку они не совсем бесплатный или с открытым исходным кодом .
10. Распутать — действительно ли это бесплатно, если ОС просит вас перейти на платную версию?
Untangle NG Firewall — действительно отличное программное обеспечение, которым пользуются многие довольные пользователи. Однако мы не рекомендуем это делать, потому что бесплатная версия очень ограничена, а операционная система постоянно побуждает пользователей перейти на платную подписку, чтобы разблокировать интересные функции. Самая дешевая лицензия стоит 50 долларов США в год.
11. Софос — рыбка в пруду предприятия.
Дистрибутив Sophos «XG Firewall» имеет очень удобный пользовательский интерфейс и бесплатен для домашнего использования. Однако обычно мы не рекомендуем ее, потому что это не та система, которую продвигает сама Sophos. Веб-сайт Sophos, кажется, намеренно затрудняет поиск, а сообщество очень маленькое. Sophos, в целом, является компанией-разработчиком корпоративного программного обеспечения с одним продуктом для сообщества. Это не система с открытым исходным кодом — это бесплатный корпоративный продукт.
12. Endian — за полноценное использование нужно платить.
Endian на самом деле довольно крут и имеет бесплатную версию. Мы не рекомендуем это, потому что такие функции, как Wi-Fi, доступны только в платных подписках. Подобно Untangle, это хорошее программное обеспечение, но за него нужно платить — это исключает его из нашего рассмотрения.
Чтобы выбрать лучшую операционную систему для маршрутизаторов, мы установили несколько основных рекомендаций. Все системы, несовместимые с этими рекомендациями, были отклонены.
Основные требования для выбора операционной системы межсетевого экрана
- Система должна активно поддерживаться и регулярно получать исправления безопасности.
- Система должна быть полностью бесплатной и с открытым исходным кодом
- Система должна иметь веб-интерфейс или графический интерфейс. Операционные системы командной строки дисквалифицированы.
- Система должна быть производительной и хорошо работать для обычного пользователя.
Эти базовые требования сокращают список рекомендаций до 4 систем. pfSense, OpenWRT, OPNSense и IPFire.
1. OPNsense — наша главная рекомендация.
OPNsense занимает первое место в списке в 2023 году, потому что за последние четыре года ведения этого списка она оказалась одной из самых быстро развивающихся операционных систем на рынке. Это простая в использовании зрелая система с приятным пользовательским интерфейсом. OPNSense включает в себя большинство, если не все, функции дорогих коммерческих корпоративных брандмауэров. Он имеет качество коммерческого продукта, будучи полностью бесплатным и с открытым исходным кодом. Форум сообщества особенно дружелюбный и полезный.
OPNsense часто первым внедряет новые функции. Например, поддержка WireGuard впервые появилась в OPNsense. Другие системы включали его намного медленнее.
OPNSense предлагает еженедельные обновления безопасности, что делает его одним из самых безопасных решений на рынке. Кроме того, каждый год выпускаются два основных выпуска операционной системы, которые привносят множество новых функций.
Это стабильное решение, которое мы часто рекомендуем пользователям, которые не уверены, какую операционную систему выбрать.
2. OpenWRT — проверенный ветеран
OpenWRT — операционная система на базе Linux для маршрутизаторов, признанная практически всеми. Впервые он был выпущен в 2004 году, более 15 лет назад, и до сих пор активно развивается и поддерживается.
В отличие от IPFire, OpenWRT имеет большое количество необязательных пакетов в своем репозитории. В результате вы можете настроить эту ОС бесчисленным количеством различных способов. Самое главное, что в OpenWRT есть драйверы для всего оборудования, поддерживаемого Linux. Это означает, что поддерживается почти все беспроводное оборудование, что делает его наиболее универсальной ОС для создания точек доступа.
OpenWRT имеет самые низкие требования к оборудованию из всех рассмотренных нами операционных систем. Он обеспечивает гораздо более высокую пропускную способность на устройствах с низким энергопотреблением, чем pfSense и OPNsense.
3. pfSense — самая популярная
pfSense — одна из самых популярных операционных систем на сегодняшний день. Это система на основе BSD, похожая на OPNSense, но с более длинной историей. pfSense был запущен в 2004 году и с тех пор стал самой известной платформой с открытым исходным кодом в отрасли. Хотя она постепенно теряет пользователей из-за OPNsense, она по-прежнему остается отличной системой для новых пользователей, поскольку у нее самая обширная документация и самое большое сообщество. Кроме того, в Интернете есть тысячи руководств, форумов, блогов и видеороликов на YouTube, которые будут полезны, если вы застряли на чем-то.
Преимущества
- Стабильность и надежность
- Самое большое сообщество
- Большое количество руководств/документации в Интернете
Недостатки
Подобно OPNSense, pfSense основан на BSD, поэтому:
- Поддержка Wi-Fi очень ограничена.
Если вы планируете использовать Wi-Fi на своем маршрутизаторе, установите операционную систему на базе Linux.
- BSD также ограничивает максимальную пропускную способность на соединение. Одно соединение в OPNSense не будет использовать всю мощность многоядерного процессора. (это часто не важно, если у вас нет гигабитного интернет-соединения)
- Редкие выпуски по сравнению с другими системами. Примерно 1 крупный релиз каждые 12-18 месяцев.
4. IPFire – претендент
IPFire – это дистрибутив на базе Linux, предназначенный для брандмауэров и маршрутизаторов.
IPfire является продолжением IPCop (упомянутого выше), но переписан с нуля. Система регулярно обновляется и поддерживается, но в ней не так много функций, как в pfSense или OPNSense. Она соответствует всем нашим требованиям, но едва входит в этот список рекомендаций, потому что не имеет преимуществ перед тремя другими перечисленными системами. Мы рекомендуем попробовать ее, только если другие три системы не удовлетворяют ваши потребности.
Короче говоря, если вы планируете использовать WiFi в своем маршрутизаторе, выберите OpenWRT . У него лучшая поддержка беспроводной связи из всех протестированных нами систем.
Если вам не нужна поддержка WiFi или вы планируете использовать отдельные точки доступа, мы рекомендуем OPNSense или pfSense .
Настройка Linux в качестве маршрутизатора (IP-переадресация) | Линод
 results соответствие 
 results
Нет результатов
Фильтры
Фильтры ( )
Все
0, ‘текст-белый’: checkbox.checked, ‘текст-серый-400’: !checkbox.checked && checkbox.count === 0 }» style=letter-spacing:.07px x-text=checkbox.title>
Добавить теги
Все
0, ‘текст-белый’: checkbox.checked, ‘текст-серый-400’: !checkbox. checked && checkbox.count === 0 }» style=letter-spacing:.07px x-text=checkbox.title>
Обновлено , by Linode
Traducciones al EspañolEstamos traduciendo nuestros guías y tutoriales al Español. Эс posible que usted esté viendo una traducción generada автоматический. Estamos trabajando con traductores profesionales пункт verificar лас traducciones де нуэстро ситио сети. Эсте проект es un trabajo en curso.
Создать учетную запись Linode чтобы попробовать это руководство с кредитом в долларах США.
Этот кредит будет применяться к любым действительным услугам, использованным во время вашего первого дней.
Компьютерная сеть — это совокупность компьютерных систем, которые могут взаимодействовать друг с другом. Для связи с компьютером, находящимся в другой сети , системе нужен способ подключения к этой другой сети. Маршрутизатор — это система, которая действует как посредник между несколькими различными сетями. Он получает трафик из одной сети, который в конечном итоге предназначен для другой. Он может определить, куда должен быть доставлен конкретный пакет, а затем переслать этот пакет через соответствующий сетевой интерфейс.
Существует множество вариантов готовых маршрутизаторов как для дома, так и для предприятия. В большинстве случаев предпочтение отдается этим решениям, поскольку они относительно просты в настройке, имеют множество функций, как правило, имеют удобный интерфейс управления и могут поставляться с вариантами поддержки. Под капотом эти маршрутизаторы представляют собой урезанные компьютеры, работающие под управлением обычных операционных систем, таких как Linux.
Вместо того, чтобы использовать одно из этих готовых решений, вы можете создать свое собственное, используя любой сервер Linux, например экземпляр Linode Compute. Используя программное обеспечение для маршрутизации, такое как iptables, вы полностью контролируете настройку маршрутизатора и брандмауэра в соответствии с вашими индивидуальными потребностями. В этом руководстве рассказывается, как настроить систему Linux в качестве базового маршрутизатора, включая включение переадресации IP и настройку iptables.
Варианты использования облачного маршрутизатора
Многие рабочие нагрузки выигрывают от настраиваемых решений маршрутизации или переадресации портов, включая рабочие нагрузки, размещенные на облачных платформах, таких как Linode. Например, для приложений, ориентированных на безопасность, обычной практикой является соединение большинства своих систем через частную сеть, такую как VLAN. Этим системам может потребоваться доступ к внешней сети, такой как другие VLAN или общедоступный Интернет. Вместо того, чтобы предоставлять каждому свой собственный интерфейс к другой сети, одна система в частной сети может действовать как маршрутизатор. Маршрутизатор настроен с несколькими сетевыми интерфейсами (один для частной VLAN и один для другой сети) и перенаправляет пакеты с одного интерфейса на другой. Это может значительно упростить мониторинг, контроль и защиту трафика, поскольку все это можно сделать из одной системы. Вычислительные экземпляры Linode могут быть настроены с использованием до 3 интерфейсов, каждый из которых подключается либо к общедоступному Интернету, либо к частной VLAN.
- Подключите системы в частной VLAN к общедоступному Интернету.
- Соедините системы в двух отдельных частных VLAN.
- Переадресация IPv6-адресов из маршрутизируемого диапазона
/56
.
Настройка системы Linux в качестве маршрутизатора
- Разверните не менее 2 вычислительных экземпляров (или других виртуальных машин) в том же центре обработки данных. Все системы должны быть подключены к одной и той же частной сети, такой как VLAN. Одна система должна быть назначена маршрутизатором и также должна быть подключена к общедоступному Интернету или другой частной сети. См. Развертывание вычислительных экземпляров.
- Включить IP-переадресацию на вычислительном экземпляре, назначенном маршрутизатором.
См. Включение IP-переадресации.
- Настройте программное обеспечение маршрутизации на том же экземпляре (маршрутизаторе). В этом руководстве рассматривается использование iptables, но вы также можете использовать другое программное обеспечение. См. Настройка iptables.
- Определите шлюз в каждой системе кроме маршрутизатора. Этот шлюз должен указывать на IP-адрес маршрутизатора в этой сети. См. Определение шлюза.
Развертывание вычислительных экземпляров
Для начала вы можете использовать платформу Linode для развертывания нескольких вычислительных экземпляров. Они могут имитировать базовое приложение, работающее в частной VLAN с одним маршрутизатором. Если у вас уже развернуто приложение и вы просто хотите узнать, как настроить переадресацию IP-адресов или iptables, вы можете пропустить этот раздел.
Разверните 2 или более вычислительных экземпляра и назначьте один из них в качестве маршрутизатора.
Каждый из них должен быть развернут в одном и том же регионе. На странице развертывания вы можете пока пропустить раздел VLAN. См. Создание вычислительного экземпляра, чтобы узнать, как развернуть вычислительные экземпляры Linode.
На каждом вычислительном экземпляре , отличном от маршрутизатора , отредактируйте профиль конфигурации экземпляра. Информацию о просмотре и редактировании профилей конфигурации см. в разделе Управление профилями конфигурации.
- На вычислительном экземпляре, обозначенном как маршрутизатор , оставьте eth0 общедоступным Интернетом и установите eth2 для настройки в качестве VLAN. Введите имя для VLAN и назначьте ей IP-адрес из любого диапазона подсети, который вы хотите использовать. Например, если вы хотите использовать
10.0.2.0/24
диапазон подсети, назначьте IP-адрес10.0.2.1/24
. По соглашению маршрутизатору должно быть присвоено значение1
в последнем сегменте. - На каждом вычислительном экземпляре , отличном от маршрутизатора , удалите все существующие сетевые интерфейсы. Установите eth0 в качестве VLAN, выберите только что созданную VLAN и введите другой IP-адрес в нужной подсети (например,
10.0.2.2/24
и10.0.2.3/24
).
- На вычислительном экземпляре, обозначенном как маршрутизатор , оставьте eth0 общедоступным Интернетом и установите eth2 для настройки в качестве VLAN. Введите имя для VLAN и назначьте ей IP-адрес из любого диапазона подсети, который вы хотите использовать. Например, если вы хотите использовать
Убедитесь, что Network Helper включен, и перезагрузите каждый вычислительный экземпляр, чтобы изменения вступили в силу.
Проверьте подключение на каждом вычислительном экземпляре, чтобы обеспечить правильную конфигурацию. Войдите в каждый экземпляр и убедитесь, что верно следующее:
Пропингуйте IPv4-адрес VLAN другой системы в той же VLAN. Каждый вычислительный экземпляр должен иметь возможность пинговать IP-адреса всех других экземпляров в этой VLAN.
эхо-запрос 10.0.2.1
Пропингуйте IP-адрес или веб-сайт системы в общедоступном Интернете. Этот эхо-запрос должен быть успешным только для вычислительного экземпляра, настроенного в качестве маршрутизатора.
ping linode.com
Включить IP-переадресацию
IP-переадресация играет фундаментальную роль на маршрутизаторе. Это функция, которая позволяет маршрутизатору перенаправлять трафик с одного сетевого интерфейса на другой сетевой интерфейс. Таким образом, он позволяет компьютерам в одной сети подключаться к компьютеру в другой сети (при настройке вместе с программным обеспечением маршрутизации). Переадресация адресов IPv4 и IPv6 контролируется ядром Linux. Следующие параметры ядра используются для включения или отключения переадресации IPv4 и IPv6 соответственно.
- IPv4:
net.ipv4.ip_forward
илиnet.ipv4 отключен в большинстве систем Linux. Чтобы настроить Linux в качестве маршрутизатора, это необходимо включить. Чтобы включить переадресацию, соответствующий параметр должен быть установлен на
1
. Значение0
указывает, что переадресация отключена.Чтобы обновить эти параметры ядра, отредактируйте файл
/etc/sysctl.conf
, как показано в шагах ниже.Войдите в систему Linux, которую вы собираетесь использовать в качестве маршрутизатора. Вы можете использовать SSH или Lish (если вы используете вычислительный экземпляр Linode).
Определите, включена или отключена переадресация IPv4 в данный момент. Команда ниже выводит значение данного параметра. Значение
1
указывает, что параметр включен, а0
указывает, что он отключен. Если вы собираетесь настроить переадресацию IPv6, проверьте также этот параметр ядра.судо sysctl net.ipv4.ip_forward
Если этот параметр отключен (или не находится в требуемом состоянии по другим причинам), продолжайте выполнять приведенные ниже инструкции.
Откройте файл
/etc/sysctl.conf
с помощью предпочитаемого редактора командной строки, например nano.судо нано /etc/sysctl.
conf
Найдите строку, соответствующую типу переадресации, которую вы хотите включить, раскомментируйте ее и установите значение
1
. Кроме того, вы можете добавить строки в любом месте файла.- Файл: /etc/sysctl.conf
1 2 3 4 5 6 7
... ## Настроить переадресацию IPv4 net.ipv4.ip_forward = 1 ## Настроить переадресацию IPv6 net.ipv6.conf.all.forwarding = 1 ...
После сохранения изменений примените их, выполнив следующую команду или перезагрузив компьютер.
sudo sysctl -p
Настройка iptables
Утилита iptables может служить как брандмауэром (через стандартную таблицу
filter
), так и маршрутизатором (например, при использовании таблицыnat
). В этом разделе рассказывается, как настроить iptables для работы в качестве базового маршрутизатора.При желании вы можете использовать любой другой брандмауэр или программное обеспечение для маршрутизации, например nftables или коммерческое приложение.
Войдите в систему Linux, которую вы собираетесь использовать в качестве маршрутизатора. Вы можете использовать SSH или Lish (если вы используете вычислительный экземпляр Linode).
Просмотрите существующие правила iptables. Если вы используете новую установку Linux и у вас нет предварительно настроенных правил, вывод приведенной ниже команды должен быть пустым.
iptables-сохранить
Если выходные данные получены, найдите правила, которые могут помешать предполагаемой конфигурации. Если вы не уверены, вы можете проконсультироваться со своим системным администратором или обратиться к документации по iptables. При необходимости вы можете сбросить правила iptables и разрешить весь трафик.
iptables -F iptables -X iptables -t физ -F iptables -t физ -X iptables -t мангл -F iptables -t мангл -X iptables -P ВВОД ПРИНЯТЬ iptables -P ВЫВОД ПРИНЯТЬ iptables -P ПЕРЕДАТЬ ПРИНЯТЬ
Настройте iptables, чтобы разрешить переадресацию портов.
Это настройка по умолчанию для многих систем.
iptables -A ВПЕРЕД -j ПРИНЯТЬ
Далее настройте NAT (преобразование сетевых адресов) на iptables. Это изменяет детали IP-адреса в сетевых пакетах, позволяя всем системам в частной сети использовать один и тот же общедоступный IP-адрес маршрутизатора. Добавьте следующее правило iptables, заменив
10.0.2.0/24
с подсетью вашей частной VLAN.iptables -t nat -s 10.0.2.0/24 -A POSTROUTING -j MASQUERADE
Вы также можете отказаться от указания какой-либо конкретной подсети и разрешить NAT для всего трафика с помощью приведенной ниже команды.
iptables -t nat -A POSTROUTING -j MASQUERADE
По умолчанию правила iptables эфемерны. Чтобы сделать эти изменения постоянными, установите пакет
iptables-persistent
. Когда вы делаете это, правила сохраняются в течение/etc/iptables/rules.v4
(иrules.v6
для IPv6) загружаются при загрузке системы.Вы можете продолжать вносить изменения в iptables как обычно. Когда вы будете готовы к сохранению, сохраните вывод iptables-save в файл
/etc/iptables/rules.v4
(илиrules.v6
). Дополнительные сведения см. в соответствующем разделе руководства «Управление сетевым трафиком с помощью iptables».iptables-сохранить | судо тройник /etc/iptables/rules.v4
Определение шлюза
Последним шагом является ручная настройка параметров конфигурации сети для каждого вычислительного экземпляра , отличного от маршрутизатора.
Войдите в Cloud Manager и отключите Network Helper для каждого развернутого вами вычислительного экземпляра без маршрутизатора. Хотя Network Helper был полезен для автоматической настройки IP-адресов VLAN, файлы конфигурации, контролируемые Network Helper, теперь необходимо редактировать вручную.
Войдите в каждую систему Linux, которая , а не , назначенный маршрутизатором.
Вы можете использовать SSH или Lish (если вы используете вычислительный экземпляр Linode).
Отредактируйте файл конфигурации, содержащий настройки интерфейса частной VLAN. Это имя и расположение этого файла зависят от используемого вами дистрибутива Linux. См. серию руководств по настройке сети вручную в вычислительном экземпляре и выберите конкретное руководство для своего дистрибутива. Для системы, работающей с ifupdown в Debian 10, сетевая конфигурация обычно хранится в течение
/etc/network/interfaces
.sudo nano /etc/network/interfaces
В этом файле настройте параметр, определяющий шлюз для интерфейса VLAN. Значение должно быть установлено на IP-адрес, назначенный интерфейсу VLAN маршрутизатора , например
10.0.2.1
, если вы использовали пример в этом руководстве. Для системы, работающей с ifupdown в Debian 10, вы можете добавить параметр gateway в расположение, показанное в примере ниже.- Файл: /etc/network/interfaces container) }" x-ref="container">
1 2 3 4
... iface eth0 инет статический адрес 10.0.2.2/24 gateway 10.0.2.1
После сохранения этих настроек перезапустите вычислительный экземпляр или выполните соответствующую команду, чтобы применить изменения. Продолжая использовать ifupdown в качестве примера, выполните приведенную ниже команду, чтобы применить новые параметры конфигурации сети.
sudo ifdown eth0 && sudo ip addr flush eth0 && sudo ifup eth0
Проверка подключения
Чтобы убедиться в правильности параметров конфигурации, запустите те же тесты, которые использовались на последнем шаге раздела «Развертывание вычислительных экземпляров». В частности, отправьте эхо-запрос на общедоступный IP-адрес или домен из вычислительного экземпляра в частной VLAN (которая не назначена маршрутизатором). Теперь этот пинг должен завершиться успешно, указывая на то, что сетевой трафик был успешно перенаправлен через маршрутизатор в общедоступный Интернет.
ping linode.com
Эта страница была первоначально опубликована на
сеть платформа linode
Присоединяйтесь к беседе.Прочтите другие комментарии или разместите свои ниже. Комментарии должны быть уважительными, конструктивны и соответствуют теме руководства. Не публиковать внешние ссылки или реклама. Прежде чем публиковать, подумайте, комментарий будет лучше адресован, связавшись с нашим Служба поддержки или запрос на наш Сайт сообщества.
Система комментариев Disqus для Linode Docs требует принятия Функциональные файлы cookie, которые позволяют нам анализировать использование сайта, чтобы мы могли измерять и улучшать производительность. Для просмотра и создания комментариев к этому статью, пожалуйста обновить настройки файлов cookie на этом веб-сайте и обновите эту веб-страницу. Обратите внимание: у вас должен быть В вашем браузере включен JavaScript.