Сегодня поговорим о том, как можно пробросить PPPoE соединение на Linux к другим машинам находящимся в локальной сети.
Предыстория
Завел я у себя дома небольшой сервер для всяких мирских нужд (торрент качалка, NAS-сервер, MiniDLNA-сервер, Web-сервер, Cloud-сервер ну и так далее.) Вот все это великолепие решил настроить в виртуальной среде. Для достижения поставленной цели выбрал проект Proxmox. На данный момент это версия Proxmox 7.1-4. В качестве провайдера выступает не без известный RT, у которого в качестве идентификации клиента используется протокол PPPoE. Вот тут-то и начинаются танцы с бубном:
В Proxmox v7 используется пакет — ifupdown2
, для управления сетевыми настройками. Мне же чтобы поднять PPPoE соединение нужен был пакет pppoeconf
у которого в зависимостях еще используется пакет — ifupdown
. Ну как вы понимаете данные пакеты мешают работе друг друга. Встал выбор:
- либо сносить с родительской машины, а это сам Proxmox, пакет
ifupdown2
и устанавливатьpppoeconf
. - либо же поднимать виртуальную машину, а у же в ней использовать PPPoE соединение.
Я решил идти по второму пути, а для этого необходимо было пробросить PPPoE в локальную сеть. В этом мне помогла утилита pppoe-relay
идущая в зависимостях пакета pppoe
.
Синтаксис команды pppoe-relay
pppoe-relay [опции]
Опции pppoe-relay
- —S interface — Добавляет выбранный интерфейс в список интерфейсов, управляемых pppoe-relay. К этому интерфейсу могут быть подключены только PPPoE-серверы.
- -С interface — Добавляет выбранный интерфейс в список интерфейсов, управляемых pppoe-relay. К этому интерфейсу могут быть подключены только PPPoE-клиенты.
- -B interface — Добавляет интерфейс в список интерфейсов, управляемых pppoe-relay. К этому интерфейсу могут быть подключены как PPPoE-клиенты, так и серверы.
- -n num — Позволяет не более num одновременных сеансов PPPoE. Если не указано, то значение по умолчанию равно 5000. num может варьироваться от 1 до 65534.
- -i timeout — Задает тайм-аут простоя сеанса. Если оба одноранговых узла в сеансе простаивают более 30 секунд, сеанс завершается. Если тайм-аут указан равным нулю, сеансы никогда не будут прекращены из-за простоя.
Обратите внимание, что процедура истечения срока действия сеанса ожидания никогда не выполняется чаще, чем каждые 30 секунд, поэтому тайм-аут является приблизительным. Значение тайм-аута по умолчанию составляет 600 секунд (10 минут).
- -F — Опция приводит к тому, что pppoe-relay не разветвляется на задний план; вместо этого он остается на переднем плане.
- -h — Опция печатает краткое сообщение об использовании и завершает работу.
Примеры pppoe-relay
pppoe-relay -S eth0 -C eth1
Приведенный выше пример ретранслирует кадры между PPPoE-клиентами в сети eth1 и PPPoE-сервером в сети eth0.
pppoe-relay -B eth0 -B eth1
В данном пример применяется прозрачная ретрансляция. Кадры ретранслируются между любым набором клиентов и серверов в сетях eth0 и eth1.
pppoe-relay -S eth0 -C eth1 -C eth2 -C eth3
Этот пример ретранслирует кадры между сервером в сети eth0 и клиентами в сетях eth1, eth2 и eth3.
Как узнать имена интерфейсов.
Для того чтобы узнать какие у вас присутствуют интерфейсы необходимо набрать следующую команду:
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 3c:d9:2b:f9:f4:21 brd ff:ff:ff:ff:ff:ff
inet6 fe80::3ed9:2bff:fef9:f44c/64 scope link
valid_lft forever preferred_lft forever
3: enp3s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master vmbr0 state UP group default qlen 1000
link/ether 3c:d9:2b:f9:f4:22 brd ff:ff:ff:ff:ff:ff
4: enp4s0f0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq master vmbr0 state DOWN group default qlen 1000
link/ether 3c:d9:2b:f9:f4:23 brd ff:ff:ff:ff:ff:ff
5: enp4s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq master vmbr1 state DOWN group default qlen 1000
link/ether 3c:d9:2b:f9:f4:24 brd ff:ff:ff:ff:ff:ff
.....
или же если у вас установлен пакет net-tool, то команда может быть вот такой:
ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 3730211 bytes 709093223 (676.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3730211 bytes 709093223 (676.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp3s0f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::3ed9:2bff:fef9:f44c prefixlen 64 scopeid 0x20<link>
ether 3c:d9:2b:f9:f4:21 txqueuelen 1000 (Ethernet)
RX packets 117905888 bytes 153216511837 (142.6 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 47840145 bytes 17578056257 (16.3 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp3s0f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 3c:d9:2b:f9:f4:22 txqueuelen 1000 (Ethernet)
RX packets 36628262 bytes 16051408741 (14.9 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 99954928 bytes 127959590855 (119.1 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp4s0f0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 3c:d9:2b:f9:f4:23 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp4s0f1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 3c:d9:2b:f9:f4:24 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Заключение
После использования утилиты pppoe-relay
я перекинул кадры PPPoE в локальную сеть. На Виртуальной машине установил пакет pppoeconf
и с помощью него установил соединение с интернетом. Далее уже настроил данную виртуальную машину на раздачу интернета в локальную сеть, т.е. поднял на ней DHCP-сервер, DNS-сервер и NAT. Теперь все это великолепие работает без перебоев. В будущем планирую установить USB-modem для бесперебойного канала связи. Ведь как говорится может случится всякое, а особенно с провайдером RT.
[endtxt]
. . . .
- Тест скорости дисков в Linux
- Как запустить команду в фоне в Linux
- Ошибка несоответствие размеров GPT PMBR
- nginx: [warn] protocol options redefined
- Как включить поддержку linux в windows 11