OpenWrt搭建PPPOE Server
一、前言
本文选择的路由器为小米R1C(官网型号:xiaomi_miwifi-mini),以OpenWrt为基础平台,使用rp-pppoe-server搭建IPv4 + IPv6双栈PPPOE Server环境。
二、前期准备
-
将R1C刷入Breed
方法自行百度。
-
下载R1C OpenWrt固件
本文以
OpenWrt 21.02.1版本为例,下载地址链接:openwrt-21.02.1-ramips-mt7620-xiaomi_miwifi-mini-squashfs-sysupgrade.bin -
固件刷入
将下载好的固件通过
Breed刷入R1C路由器,刷写完成后,确保路由器能够连接外网。 -
SSH登录
通过SSH软件(比如MobaXterm或者SecureCRT),登录路由器控制台,登录地址一般为
192.168.1.1,账号为root,密码为空。
三、相关软件包安装
-
更新软件包列表
软件源更换(此处替换为清华源,非必要替换):sed -i 's_downloads.openwrt.org_mirrors.tuna.tsinghua.edu.cn/openwrt_' /etc/opkg/distfeeds.conf更新软件包(此步骤必须执行,无论是否更换软件源):
opkg update -
安装中文包
输入以下命令:
opkg install luci-i18n-base-zh-cn安装完成后,通过浏览器登录OpenWrt控制页面(浏览器输入
192.168.1.1),语言会自动转换为中文。 -
安装pppoe server相关组件
安装前先删除旧的配置文件,输入以下命令:
rm -rf /etc/ppp/options安装pppoe相关组件,输入以下命令:
opkg install rp-pppoe-common rp-pppoe-server
四、环境搭建
-
搭建IPv4 PPPOE Server环境
a. 修改/etc/ppp/pppoe-server-options
打开此文件vi /etc/ppp/pppoe-server-options,将配置按如下方式修改:# PPP options for the PPPoE server # LIC: GPL require-chap login lcp-echo-interval 10 lcp-echo-failure 2 mru 1492 mtu 1492 ms-dns 8.8.8.8 ms-dns 114.114.114.114b. 修改/etc/ppp/chap-secrets
这一步修改客户端连接PPPOE Server时的账号密码,IPv4/IPv6使用的是同一个,并且可以配置多个账号密码,
vi /etc/ppp/chap-secrets,修改如下:#USERNAME PROVIDER PASSWORD IPADDRESS "test" * "123" * "test1" * "1234" *c. 修改防火墙规则
输入以下命令:
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADEiptables -I FORWARD -i ppp0 -j ACCEPTiptables -I FORWARD -o ppp0 -j ACCEPTd. 启动PPPOE Server
输入以下命令:
pppoe-server -k -T 60 -I br-lan -N 100 -C Myp -L 10.0.0.1 -R 10.0.0.2此时,路由器下挂设备可以通过PPPOE拨号获取IPv4地址。
-
搭建IPv6 PPPOE Server环境
在
IPv4 PPPOE Server环境基础上做以下修改。重启路由器后,按以下步骤搭建
IPv6 PPPOE Server环境。a. 修改/etc/ppp/pppoe-server-options
打开此文件vi /etc/ppp/pppoe-server-options,将配置按如下方式修改:# PPP options for the PPPoE server # LIC: GPL require-chap login lcp-echo-interval 10 lcp-echo-failure 2 mru 1492 mtu 1492 ms-dns 8.8.8.8 ms-dns 114.114.114.114 +ipv6 ipv6 ::1,::2b. 拷贝插件
输入以下命令:
cp /usr/lib/pppd/2.4.8/rp-pppoe.so /etc/ppp/plugins/c. 修改/etc/config/network
添加ppp0节点,然后绑定到odhcpd,用于向下级分配ipv6地址,
vi /etc/config/network,最后面添加:config interface 'ppp0'option proto 'static'option device 'ppp0'd. 修改/etc/config/dhcp
添加ppp0节点,然后绑定
/etc/config/network中的ppp0节点,vi /etc/config/dhcp,最后面添加:config dhcp 'ppp0'option interface 'ppp0'option start '100'option limit '150'option leasetime '12h'option force '1'option ra_management '1'option dhcpv6 'server'option ra 'server'option ra_default '1'list dns '2400:3200:baba::1'list dns '2400:3200::1'其中,
list dns的意思是ipv6 dns server,根据实际情况填写。这里填的是阿里的DNS。e. 重启network、dhcp、odhcpd
输入以下命令:
/etc/init.d/network restart/etc/init.d/dnsmasq restart/etc/init.d/odhcpd restartf. 启动PPPOE Server
输入以下命令:
killall pppoe-serverpppoe-server -k -T 60 -I br-lan -N 100 -C Myp -L 10.0.0.1 -R 10.0.0.2 -S ppp0其中
-S ppp0表示绑定ppp0接口。g. 节点绑定
给ppp0添加ipv6并将ppp0绑定到
/etc/config/network中的ppp0节点:ip -6 addr add `uci get network.globals.ula_prefix | sed 's/\/48//g'`5/64 dev ppp0 ubus call network.interface.ppp0 add_device "{\"name\":\"ppp0\"}"此时,路由器下挂设备可以通过PPPOE拨号获取IPv6地址。
-
设置开机启动
a. 创建/etc/ppp/ipv6-up脚本
pppoe拨号成功或会执行这个脚本,vi /etc/ppp/ipv6-up输入以下代码:#!/bin/sh # 配置ipv4路由规则,$1为pppoe生成的设备名,一般为ppp0 iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE iptables -I FORWARD -i $1 -j ACCEPT iptables -I FORWARD -o $1 -j ACCEPT#给ppp0设置ipv6地址,使用的是network.globals.ula_prefix作为前缀 ip -6 addr add `uci get network.globals.ula_prefix | sed 's/\/48//g'`5/64 dev $1 #将ppp0绑定到network与dhcp中的ppp0,用于向下级分配ip ubus call network.interface.ppp0 add_device "{\"name\":\"$1\"}"注意给此脚本添加权限:
chmod +x /etc/ppp/ipv6-upb. 创建开机自启动脚本
开机自启动,
vi /etc/init.d/runPppoe输入以下代码:#!/bin/sh /etc/rc.common START=99start() {killall pppoe-serverpppoe-server -k -T 60 -I br-lan -N 100 -C Myp -L 10.0.0.1 -R 10.0.0.2 -S ppp0echo "pppoe-server start" }添加可执行权限:
chmod +x /etc/init.d/runPppoe输入以下命令设置开机自启动:
service runPppoe enable
五、环境验证
重启路由器,下挂设备通过PPPOE拨号连接,通过ifconfig查看,如果有ppp0节点且已经分配IPv4/IPv6地址则代表成功。
注意某些老设备不支持IPv6可能无法获取IPv6的地址。
六、参考信息
Welcome to the OpenWrt Project
openwrt使用rp-pppoe-server搭建ipv4+ipv6双栈PPPOE server
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
