环境: Ubuntu 10.4
双网卡:eth2(计划用于外网接口),可以使用DHCP获得IP地址,获得地址为4.4.4.10
eth3(计划用于内网接口),计划手动设置IP,10.10.10.10
1. 安装DHCP Server
请见 http://blog.chinaunix.net/uid-22490342-id-2125705.html
2. 安装PPPoE Server
1) sudo apt-get install ppp
2) 获取rp-pppoe(非apt套件)
wget -c (下载文件)
sudo tar zxvf rp-pppoe-3.10.tar.gz -C /opt/ ( 解压的opt目录下 )
sudo chown -R root:root /opt/rp-pppoe-3.10 (修改目录权限)
3) 安装相关的库文件
sudo apt-get install libc6-dev
4) 编译生成pppoe-server可执行程序,安装的时候可以选择默认安装
/opt/rp-pppoe-3.10/go
5) 最简单配置
/etc/ppp/options 这可被我全部清空了,然后里面只有“lock”一个字串。
/etc/ppp/pppoe.conf 这个里面被我指定了一些参数
- #指定使用哪个Interface作为Server
- ETH='eth3'
- #PPPoE 用户名
- USER='rp-pppoe'
- #z设置是否按需连接,如果此处设置了数字,则为idletime的时间,no为始终连接
- DEMAND=no
- #设置DNS类型, SERVER为从服务器自动获取,SPECIFY为使用指定的DNS1,DNS2并且后面将指定DNS1与DNS2,
- DNSTYPE=SPECIFY
- #设定DNS1与DNS2
- DNS1=8.8.8.8
- DNS2=210.22.70.3
- #定义PPPoE连接将使用默认路由
- DEFAULTROUTE=yes
- #如下是配置中原有的,我没有做任何改变
- CONNECT_POLL=10
- ACNAME=
- SERVICENAME=
- PING="."
- CF_BASE='basename $CONFIG'
- PIDFILE="/var/run/$CF_BASE-pppoe.pid"
- SYNCHRONOUS=no
- CLAMPMSS=1412
- LCP_INTERVAL=20
- LCP_FAILURE=3
- PPPOE_TIMEOUT=80
- FIREWALL=NONE
- LINUX_PLUGIN=/etc/ppp/pluguns/rp-pppoe.so
- PPPOE_EXTRA=""
- PPPD_EXTRA=""
/etc/ppp/pppoe-server-options 这个里面很简单
- #允许chap认证
- require-chap
- lcp-echo-interval 30
- lcp-echo-failure 4
- ms-dns 8.8.8.8
- ms-dns 210.22.70.3
- logfile /var/log/pppoe.log
/etc/ppp/chap-secrets
- # 这里面是chap认证时允许的用户名密码
- "admin" * "admin" *
- "a" * "a" *
- "b" * "b" *
若要允许PAP认证,需在/etc/ppp/pppoe-server-options中允许pap认证,以及在/etc/ppp/pap-secrets中对应指定相应的用户名密码
6)启用转发功能
echo "1" >/proc/sys/net/ipv4/ip_forward
7) 启动PPPoE Server方式
sudo pppoe-server -I eth3 -L 172.16.27.1 -R 172.16.27.181 -N 10
pppoe server 为 172.16.27.1
pppoe 对端获得的地址起始值为172.16.27.181
最多有10个pppoe用户同时相连
8)关闭PPPoE server
killall pppoe-server
备注1: 如果支持PAP验证方式,由于WIN XP上的系统自带的PPPoE拨号无法拨通,可能是PAP是明文验证的,但是WINDOWS保存的密码是不可恢复的加密的,所以WINDOWS无法提供明文密码。
备注2:配置无论保存在 /etc/ppp/pppoe-server-options 中还是 /etc/ppp/optons 中都会生效的
3. VLAN配置
sudo apt-get install vlan
modprobe 8021q
#添加虚拟接口 eth3.35
vconfig add eth3 35
#添加虚拟接口 eth3.42
vconfig add eth3 42
echo "1" >/proc/sys/ipv4/ip_forward
#设定所有往外网的封包,用eth2的地址做掩饰
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
#PPPoE client通过本机转向外网时做SNAT,如本机eth2自动获取的IP为4.4.4.10,那么在这里
可以指定给非VLAN的封包如下
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth2 -j SNAT --to 4.4.4.209
(4.4.4.209是与eth2同网段的虚拟地址)
给VLAN ID为42的封包指定
iptables -t nat -A POSTROUTING -s 42.42.42.0/24 -o eth2 -j SNAT --to 4.4.4.210
给VLAN ID为35的封包指定
iptables -t nat -A POSTROUTING -s 35.35.35.0/24 -o eth2 -j SNAT --to 4.4.4.211
=========================================================
使用的时候,每次启用PPPOE server使用如下命令
killall pppoe-server
pppoe-server -I eth3 -L 10.10.10.1 -R 10.10.10.20 -N 10
ifconfig eth3.42 down
ifconfig eth3.42 42.42.42.1 broadcast 42.42.42.255 netmask 255.255.255.0 up
pppoe-server -I eth3.42 -L 42.42.42.1 -R 42.42.42.2 -N 10
ifconfig eth3.35 down
ifconfig eth3.35 35.35.35.1 broadcast 35.35.35.255 netmask 255.255.255.0 up
pppoe-server -I eth3.35 -L 35.35.35.1 -R 35.35.35.2 -N 10
阅读(738) | 评论(0) | 转发(0) |