Блог-шпаргалка

Картинка

IPIP туннель на PPPoE. Побеждаем сети

Категория -> linux
Обновлено: 2025-11-12

Следующая инструкция, характеризует моё желание заняться чем-нибудь, когда скучно. В общем в одной филиальной компании, корпоративной сети не было от слова совсем. Эникей, который там работал целых два года, использовал Radmin VPN (не реклама и упаси господь им пользоваться). Можно было конечно замоторить всё говно-микротах, но мы не ищем лёгких путей! Тем более опыт в построении туннелей на линуксах у нас уже имеется! Закупаем оборудование. Мой выбор пал на Beelink Mini S + DEXP AT-UH002B. Ставим Ось, настраиваем интерфейсы на systemd-networkd, вставляем шнурок в сетевую карточку и почему-то получаем хуй, а не интернет. Убедившись, что всё сделано правильно, набираем местного оператора и задаём вполне ожидаемый вопрос: - «Сопсна, а что за хуйня?» Девушка на том конце провода, мило отвечает: - «А Вы получаете услугу по PPPoE» Блять! Чуть не обронил я из своих культурных уст. Вооружившись логином и паролем для подключения, погнали колхозить! Ставим pppoeconf. Запускаем его и что просят диалоговые окна — предоставляем. Инет появился. Вешаем маскарад на интерфейс. Создаём скрипт LOCAL_IF = интерфейс (ppp0) LOCAL_IP = локальный IP PPPoE REMOTE_IP = Внешний IP другого конца туннеля ip tunnel add ipip-office mode ipip local $LOCAL_IP remote $REMOTE_IP dev $LOCAL_IF ttl=64 ip addr add 192.168.200.1/31 dev ipip-office ip link set ipip-office mtu 1472 # Стандарт MTU у IPIP = 1480. Тут мы уменьшаем размер из-за PPPoE, служебные данные которого занимают 8 байт от 1500 ip link set ipip-office up Помещаем скрипт в /etc/ppp/ip-up.d/ipip-office Делаем исполняемым Пингуем другой конец и видим, что пошла возня, но мои восторженные и щенячьи визги были слышны на соседней улице не долго, потому как по туннелю мог пройти только пинг и больше ничего. Как оказалось необходимо было ещё познакомиться с MSS (MTU и MSS - разные вещи). В общем для полноты картины в цепочку форвард, таблицы mangle файерволла надо добавить следующее table ip mangle { chain FORWARD { type filter hook forward priority mangle; policy accept; oifname "ppp0" tcp flags & (syn | rst) == syn tcp option maxseg size 1400-65495 counter tcp option maxseg size set rt mtu }