xiaoyu28 发表于 2019-2-16 10:51:36

Centos如何配置pppoe命令

  首先,硬件平台需提供两块网卡,一块用于静态地址做NAT使用,一块用于对pppoe用户接入的响应,下面是对pppoe服务器进行的配置安装
  一.检查并配置ppp软件
  #rpm-qa|grepppp
  如果没有安装,可以使用以下命令进行安装:
  #yuminstallppprp-pppoe
  通过网络来自动安装。
  二.对服务器网卡进行配置
  服务器配置的两块网卡,一块用来设置静态IP,用作NAT(eth1),一块用来进行对pppoe用户接入的响应(eth0)。
  需要修改以下配置脚本(有桌面的centOS可以在桌面上进行IP的设置,比较方便)。
  #cd/etc/sysconfig/network-scripts
  #viifcfg-eth1
  #AdvancedMicroDevices79c970
  DEVICE=lan
  IPADDR=192.168.0.10
  NETMASK=255.255.255.0
  GATEWAY=192.168.0.1
  DNS1=211.98.2.4
  DNS2=8.8.8.8
  HWADDR=xx:xx:xx:xx:xx:xx
  ONBOOT=yes
  BOOTPROTO=static
  USERCTL=no
  IPV6INIT=yes
  NM_CONTROLLED=yes
  TYPE=Ethernet
  #viifcfg-eth0
  TYPE="Ethernet"
  HWADDR=xx:xx:xx:xx:xx:xx
  BOOTPROTO=dhcp
  DEVICE=wan
  ONBOOT=yes
  三.配置pppoe服务器
  修改option配置,添加以下内容,其它的删除。
  #vi/etc/ppp/options
  local
  crtscts
  nobsdcomp
  nodeflate
  nopcomp
  配置pppoe-server-options
  #vi/etc/ppp/pppoe-server-optionsauth
  require-pap
  require-chap
  login
  lcp-echo-interval10
  lcp-echo-failure2
  logfile/var/log/pppoe.log
  ms-dns211.98.2.4
  ms-dns8.8.8.8
  defaultroute
  创建用户及密码
  vi/etc/ppp/chap-secrets
  #vichap-secrets
  #SecretsforauthenticationusingCHAP
  #clientserversecretIPaddresses
  pppoepppoe
  这里配置的一个帐号与密码都是pppoe
  下面开启pppoe服务器
  #/usr/sbin/pppoe-server-Ieth4-L172.16.0.10-R172.16.0.20-N100
  I:指定响应PPPOE请求的端口,本例中是在eth0口上。
  L:指定PPPOE服务器的IP地址。
  R:分配给客户端的地址池起始地址
  N:分配给客户端IP地址的个数
  将此命令添加到开机启动中。
  #vi/etc/rc.local
  /usr/sbin/pppoe-server-Ieth4-L172.16.0.10-R172.16.0.20-N100
  现在到客户机器上测试拨号成功。
  四,客户机上外网
  客户拨号成功后还不能上外网,因为服务器那边没有进行数据包的转发。所以需配置iptables进行数据转发
  添加防火墙规则,做nat转换
  #iptables-APOSTROUTING-tnat-s172.16.0.0/24-jMASQUERADE
  #iptables-AFORWARD-ptcp--syn-s172.16.0.0/24-jTCPMSS--set-mss1256
  #sysctl-wnet.ipv4.ip_forward=1
  #echo1>/proc/sys/net/ipv4/ip_forward
  #serviceiptablessave
  第一条:添加nat,转换来自172.16.0.0/24网段的ip
  第二天:修改mtu,根据自身需求改了(可忽略)
  第三条:修改转发文件(可忽略)
  第四条:打开转发
  第五条:保存iptables配置
  当然,配置上述后有些用户还是无法接入外网,有可能是centos默认没有安装启动防火墙功能,所以出现上述的问题需要打开防火墙功能:
  #/etc/init.d/iptablesstart
  下面是pppoe建立的原理过程
  PPPoE的验证过程
  PPPoE的验证过程包括2个阶段,Discovery阶段和PPPSession阶段。
  Discovery阶段,包含4个步骤:
  Step1:PADI
  PPPoE客户端发送主动发现初始包(PPPoEActiveDiscoveryInitiation,PADI),以太头中的目的地址是以太广播地址FF:FF:FF:FF:FF:FF,PPPOE头中的CODE为0x09,SESSION_ID值必须为0,负载部分必须只包含一个Service-Name类型的TAG表示请求的服务类型,另外可以包含其他TAG,整个PPPOE包不能超过1484字节;
  Step2:PADO
  服务器端PPPoE进程在网络接口侦听到PADI包后,发送主动发现提议包(PPPoEActiveDiscoveryOffer,PADO),用来回应客户机的PADI包,以太头中的目的地址是客户机的MAC地址,PPPOE头中的CODE为0x07,SESSION_ID值必须为0,负载部分必须包含一个AC-Name类型的TAG,用来指示本AC的名称,一个在PADI包中指定的Service-Name的TAG,另外可以包含其他Service-Name的TAG。如果AC不对该客户机提供服务,AC就不回应PADO包。
  Step3:PADR
  PPPoE客户端收到PADO包后,在PADO包中选择一个(可能有多个PPPoE服务器,通常选取最快的一个)发送主动发现请求包(PPPoEActiveDiscoveryRequest,PADR),以太头中的目的地址是所选取的PADO包的源以太头地址(即PPPoE服务器的MAC地址),PPPOE头中的CODE为0x19,SESSION_ID值必须为0,负载部分必须只包含一个Service-Name类型的TAG表示请求的服务类型,另外可以包含其他TAG。
  Step4:PADS
  MAC地址匹配的PPPoE服务器收到PADR包后,发送主动发现会话确认包(PPPoEActiveDiscoverySession-confirmation,PADS),将产生一个SEESSION_ID值用来标志本次PPP会话,以PADR包方式发送给客户机。以太头中的目的地址是客户机的MAC地址,PPPOE头中的CODE为0x65,SESSION_ID值必须为所生成的那个SESSION_ID,负载部分必须只包含一个Service-Name类型的TAG,表示该服务类型被PPPoE服务器接受,另外可以包含其他TAG。如果PPPoE服务器不接受PADR中的
  Server-Name,PADS中则包含一个Service-Name-Error类型的TAG,这时SESSION_ID设置为0。
  PPPSession阶段:
  当客户端与服务器端远成发现阶段之后,即进入会话阶段,在PPP会话阶段,PPP包被封装在PPPOE以太帧中,以太包目的地址都是单一的,以太协议为0x8864,PPPOE头的CODE必须为0,SESSION_ID必须一直为发现阶段协商出的SEESION_ID值,PPPOE的负载是整个PPP包,PPP包前是两字节的PPP协议ID值。
  在Session阶段,主机或服务器任何一方都可发PADT(PPPoEActiveDiscoveryTerminate)报文通知对方结束Session。
  PPPoE的身份验证发生在会话(PPPSession)阶段。可以这样更解,rp-pppoe包负责Discovery及会话终止PADT,ppp包负责会话阶段的数据传输。

页: [1]
查看完整版本: Centos如何配置pppoe命令