Chinaunix首页 | 论坛 | 博客
  • 博客访问: 751999
  • 博文数量: 119
  • 博客积分: 137
  • 博客等级: 少校
  • 技术积分: 1582
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-28 16:39
文章分类

全部博文(119)

文章存档

2017年(3)

2016年(7)

2014年(1)

2013年(8)

2012年(20)

2011年(27)

2010年(53)

分类: LINUX

2012-11-12 13:25:48

环境: 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”一个字串。

点击(此处)折叠或打开

  1. lock

    /etc/ppp/pppoe.conf  这个里面被我指定了一些参数

点击(此处)折叠或打开

  1. #指定使用哪个Interface作为Server
  2. ETH='eth3'

  3. #PPPoE 用户名
  4. USER='rp-pppoe'

  5. #z设置是否按需连接,如果此处设置了数字,则为idletime的时间,no为始终连接
  6. DEMAND=no

  7. #设置DNS类型, SERVER为从服务器自动获取,SPECIFY为使用指定的DNS1,DNS2并且后面将指定DNS1与DNS2,
  8. DNSTYPE=SPECIFY

  9. #设定DNS1与DNS2
  10. DNS1=8.8.8.8
  11. DNS2=210.22.70.3

  12. #定义PPPoE连接将使用默认路由
  13. DEFAULTROUTE=yes

  14. #如下是配置中原有的,我没有做任何改变
  15. CONNECT_POLL=10
  16. ACNAME=
  17. SERVICENAME=
  18. PING="."
  19. CF_BASE='basename $CONFIG'
  20. PIDFILE="/var/run/$CF_BASE-pppoe.pid"
  21. SYNCHRONOUS=no
  22. CLAMPMSS=1412
  23. LCP_INTERVAL=20
  24. LCP_FAILURE=3
  25. PPPOE_TIMEOUT=80
  26. FIREWALL=NONE
  27. LINUX_PLUGIN=/etc/ppp/pluguns/rp-pppoe.so
  28. PPPOE_EXTRA=""
  29. PPPD_EXTRA="" 
 /etc/ppp/pppoe-server-options  这个里面很简单

点击(此处)折叠或打开

  1. #允许chap认证
  2. require-chap

  3. lcp-echo-interval 30
  4. lcp-echo-failure 4
  5. ms-dns 8.8.8.8
  6. ms-dns 210.22.70.3
  7. logfile /var/log/pppoe.log
/etc/ppp/chap-secrets

点击(此处)折叠或打开

  1. # 这里面是chap认证时允许的用户名密码

  2. "admin" * "admin" *
  3. "a" * "a" *
  4. "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



阅读(5239) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~