После небольшой проволочки и потери волос я выяснил, почему обычные маршрутизаторы не могут обойти ужасный маршрутизатор Sagemcom Home Hub 2000, предоставленный Bell, подключаясь напрямую к Bell через ONT с помощью PPPoE. Это потому, что маршрутизатор Bell подключается к серверам Bell через VLAN 802.1Q ! VLAN id # 35, если быть точным.
Итак, чтобы сделать это самостоятельно:
- Подключите ваш компьютер / маршрутизатор напрямую к Ethernet-порту ONT.
- Используйте 802.1Q VLAN 35.
- Используйте PPPoE.
Большинство штатных маршрутизаторов (включая мой Linksys EA6300v1) не поддерживают 802.1Q, так что вы все равно не уверены, если не установите специальную прошивку, не установите более качественный маршрутизатор или не подключите ONT непосредственно к компьютеру. (В качестве альтернативы, если используемый маршрутизатор не поддерживает 802.1Q, вы можете использовать бит 802.1Q с помощью управляемого коммутатора. Смотрите комментарий Гравити.) Даже если ваш маршрутизатор поддерживает 802.1Q, инструкции по установке будут различаться от маршрутизатора к маршрутизатору, поэтому я не могу вам больше помочь, но с этими тремя фрагментами информации выше и аппаратным обеспечением, поддерживающим 802.1Q и PPPoE, вам следует быть в состоянии сделать это.
В линуксе
Вот как вы настроили это в Linux. Опять же, ваш Linux-компьютер (/ маршрутизатор) должен быть подключен непосредственно к порту Ethernet вашего ONT. Вам понадобится команда ip
(предоставляемая iproute2, если у вас ее еще нет) и rp-pppoe
. Замените enp3s0
на ваше фактическое имя интерфейса. Все команды должны быть запущены от имени пользователя root.
Сначала вы должны сделать VLAN:
# ip link add link enp3s0 name enp3s0.35 type vlan id 35
Это создает новый виртуальный сетевой интерфейс с именем enp3s0.35. Весь трафик, отправленный по этому интерфейсу, будет инкапсулирован в идентификатор VLAN 35 перед отправкой по enp3s0. На самом деле, число 35 будет добавлено к каждому пакету перед отправкой. Без этого дополнительного номера Белл просто проигнорирует тебя.
Теперь вам нужно настроить rp-pppoe. Измените /etc/ppp/pppoe.conf
, изменив следующие строки:
ETH=enp3s0.35
USER=bxxxxxxx@bellnet.ca
Теперь измените /etc/ppp/pap-secrets
, добавив следующую строку:
bxxxxxxx@bellnet.ca * your_ppp_password
Теперь вы можете запустить pppoe используя pppoe-start
. Если это работает, команда должна вернуться через несколько секунд. Вы также можете проверить с помощью ip a
. Новый интерфейс должен быть назван ppp0
с вашим глобальным IP. Команда остановить это pppoe-stop
. Вот пример успешного запуска и остановки:
[user@host ~]% sudo pppoe-start
. Connected!
[user@host ~]% ip a
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: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:21:70:71:82:b9 brd ff:ff:ff:ff:ff:ff
3: enp3s0.35@enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:21:70:71:82:b9 brd ff:ff:ff:ff:ff:ff
inet6 fe80::221:70ff:fe71:82b9/64 scope link
valid_lft forever preferred_lft forever
5: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc fq_codel state UNKNOWN group default qlen 3
link/ppp
inet 70.27.234.242 peer 10.11.2.201/32 scope global ppp0
valid_lft forever preferred_lft forever
[user@host ~]% sudo pppoe-stop
Killing pppd (4102)
Killing pppoe-connect (4080)
Способ автоматического запуска команд ip link
и pppoe-start
при загрузке зависит от вашего дистрибутива. Опять же, я не могу вам здесь помочь. Дистрибутивы маршрутизаторов и брандмауэров должны иметь хорошую поддержку для всего этого. systemd-networkd поддерживает настройки 802.1Q при загрузке. И вполне вероятно, что в вашем дистрибутиве пакет rp-pppoe также есть способ автоматически запускать его при загрузке, но вам может потребоваться изменить его, запретив запускать до тех пор, пока не будет запущен интерфейс 802.1Q.
Если у вас есть 802.1Q и PPPoE, автоматически запускающиеся при загрузке, теперь можно безопасно включить маршрутизатор Bell. Если вы это сделаете, пожалуйста, сделайте это в хорошо проветриваемом помещении и пришлите мне фотографию. Не поджигайте ONT.
Бонусный раунд: openwrt/ea6300v1
Как уже упоминалось ранее, openwrt не имеет проблем со странными конфигурациями - это своего рода, на самом деле. Даже если ваш маршрутизатор не поддерживает 802.1Q, есть очень хорошие шансы, что он будет установлен после установки openwrt. Это /etc/config/network
для моего ea6300v1:
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fc00::/48'
config interface 'lan'
option type 'bridge'
option ifname 'eth0.1'
option proto 'static'
option ipaddr '10.0.0.1'
option netmask '255.255.255.0'
option ip6assign '60'
config interface 'wan'
option ifname 'eth0.35' # <----
option proto 'pppoe' # <----
option username 'bxxxxxxx@bellnet.ca' # <----
option password 'your ppp passphrase' # <----
config switch
option name 'switch0'
option reset '1'
option enable_vlan '1'
config switch_vlan
option device 'switch0'
option vlan '1'
option ports '0 1 2 3 5t'
config switch_vlan
option device 'switch0'
option vlan '35' # <----
option ports '4t 5t' # <----
Я поставил # <----
рядом со всеми строками, которые мне пришлось изменить, чтобы заставить Bell Fiber работать. В последнем я добавил t
к порту 4, сказав коммутатору пометить все, что выходит из порта 4 (порт WAN), тегами 802.1Q. Так что t
должен быть там. Это не ошибка.
Процесс (вероятно) будет очень похож на ваш маршрутизатор потребительского уровня. Имейте в виду, что разные маршрутизаторы используют разные архитектуры коммутаторов и нумерацию портов, поэтому вам, возможно, придется немного подумать. Например, возможно, ваш порт WAN - это порт 0, а не порт 4. Так что определенно не копируйте и не вставляйте, если по какому-то дикому стечению обстоятельств ваш роутер на самом деле не является ea6300v1. Я верю в тебя.