终于搞明白pppoe + NAT 作上网服务器的原理了,哈哈哈。

rp-PPPoE设置

检查rppppoe装上没有(redFlag已经装上)

linux下pppoe服务器配置rpm -qa | grep -"pppoe"


/etc/ppp/pap-secrets
配置如下

linux下pppoe服务器配置#client server secret IP address
linux下pppoe服务器配置
"usr" * "123" *

/etc/ppp/chap-secrets的配置和pap-secrets一样

/etc/ppp/
pppoe-server-options配置如下

linux下pppoe服务器配置#auth  #注释掉这三行使用任意帐号就可以登录
linux下pppoe服务器配置#
require-pap
linux下pppoe服务器配置#
require-chap
linux下pppoe服务器配置
login
linux下pppoe服务器配置lcp
-echo-interval 30
linux下pppoe服务器配置lcp
-echo-failure 4
linux下pppoe服务器配置ms
-dns  202.118.224.101



然后运行

linux下pppoe服务器配置modprobe pppoe
linux下pppoe服务器配置pppoe
-server -I eth1 -200 -192.168.0.1 -192.168.0.100 --u


iptables设置:

打开ip转发和NAT功能

linux下pppoe服务器配置echo 1 > /proc/sys/net/ipv4/ip_forward
linux下pppoe服务器配置iptables  
-t nat -F
linux下pppoe服务器配置iptables  
-t nat -L
linux下pppoe服务器配置iptables 
-t nat -A POSTROUTING -o eth0 -j SNAT  --to 219.217.235.73
linux下pppoe服务器配置
#iptables -t nat -A POSTROUTING -o eth0 -j SNAT -s 192.168.0.0/24 --to 219.217.235.73
linux下pppoe服务器配置


pppoe-server -I eth1  -r -u

xp连接就可以了

注意:

为了防止局域网内用户设置ip和eth1一致,从而达到间接上网的目的,必须将eth1的ip设置为空!
我猜测
用NAT上网时,客户设置好ip和网关为eth1后,发给服务器的连接会被iptables识别并路由过去。
用pppoe设置好后,客户如果没有建立pppoe连接,

发给服务器的数据报会被过虑到,iptables识别不了。
而建立连接后,
iptables识别就能识别出他来了。
具体是怎么实现的有待研究。

相关文章: