Centos6.5 pppoe-server

时间:2023-03-09 07:54:26
Centos6.5   pppoe-server

[root@localhost network-scripts]# rpm -q rp-pppoe
package rp-pppoe is not installed

-----------------

[root@localhost network-scripts]# yum list |grep pppoe
rp-pppoe.x86_64                    3.10-16.el6                 base

-----------------

[root@localhost network-scripts]# yum install rp-pppoe -y

-----------------

[root@localhost network-scripts]# rpm -q rp-pppoe
rp-pppoe-3.10-16.el6.x86_64

-----------------设置支持ip转发
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1

-----------------修改服务器配置----------------
vi /etc/ppp/pppoe-server-options
# PPP options for the PPPoE server
# LIC: GPL
#require-pap
require-chap
login
lcp-echo-interval 10
lcp-echo-failure 2
logfile /var/log/pppoe.log
ms-dns 8.8.8.8
ms-dns 114.114.114.114

--------------------添加用户名密码,修改/etc/ppp/chap-secrets文件,

chap1 * "chap1" *
chap2 * "chap2" *
chap3 * "chap3" *
chap4 * "chap4" *
chap5 * "chap5" *
chap6 * "chap6" *
chap7 * "chap7" *
chap8 * "chap8" *
chap9 * "chap9" *
chap10 * "chap10" *
chap11 * "chap11" *
chap12 * "chap12" *
chap13 * "chap13" *
chap14 * "chap14" *
chap15 * "chap15" *
chap16 * "chap16" *
chap17 * "chap17" *
chap18 * "chap18" *
chap19 * "chap19" *
chap20 * "chap20" *
chap21 * "chap21" *
chap22 * "chap22" *
chap23 * "chap23" *
chap24 * "chap24" *
chap25 * "chap25" *
chap26 * "chap26" *
chap27 * "chap27" *
chap28 * "chap28" *
chap29 * "chap29" *
chap30 * "chap30" *

--------------------给eth0接口创建虚接口eth0:2并up

ifconfig eth0:1 20.20.20.2 netmask 255.255.255.0

ifconfig eth0:1 up

--------------------给eth0接口创建虚接口eth0:2重启网络生效

cd /etc/sysconfig/network-script/

cp ifcfg-eth0 ifcfg-eth0:2

vi ifcfg-eth0:2

DEVICE=eth0:1
HWADDR=00:0C:29:AD:F8:B7
TYPE=Ethernet
UUID=d60f7bad-0f18-420a-8e19-3e361f8ffed4
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=20.20.20.2
NETMASK=255.255.255.0

service network restart

--------------------添加防火墙规则,做nat转换 iptables -t nat -A POSTROUTING -s 20.20.20.0/24 -j MASQUERADE           (iptables -t nat -A POSTROUTING -s 20.20.20.0/24 -o eth1 -j SNAT --to-source 192.172.1.172) iptables -A FORWARD -p tcp --syn -s 20.20.20.0/24 -j TCPMSS --set-mss 1256

service iptables save   保存防火墙规则到配置文件/etc/sysconfig/iptables echo 1 > /proc/sys/net/ipv4/ip_forward sysctl -w net.ipv4.ip_forward=1

第一条是添加nat,转换来自20.20.20.0/24网段的ip        (MASQUERADE是针对连接公网的接口是自动获取地址) 或者:iptables -t nat -A POSTROUTING -s 20.20.20.0/24 -o eth1 -j SNAT --to-source 192.172.1.172 第二条是修改mtu 第四条打开转发 第五条是修改转发文件

--------------------如下FORWARD链中REJECT的规则,阻止了数据报文的转发,进行删除iptables -D FORWARD 1,然后service iptables save保存到配置

iptables -nvL FORWARD

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination        
  389 23343 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
    0     0 TCPMSS     tcp  --  *      *       20.20.20.0/24        0.0.0.0/0           tcp flags:0x17/0x02 TCPMSS set 1256

--------------------启动pppoe-server
pppoe-server -I eth0:1 -L 20.20.20.1 -R 20.20.20.100-200

--------------------查看pppoe-server的进程
[root@localhost network-scripts]# ps aux |grep pppoe
root       3200  0.0  0.0   4104   300 ?        S    04:04   0:00 pppoe-server -I eth0:1 -L 20.20.20.1 -R 20.20.20.100-200
root       3201  0.0  0.1  49488  1860 ?        Ss   04:04   0:00 pppd pty /usr/sbin/pppoe -n -I eth0:2 -e 1:a0:9d:86:16:2c:99 -S '' file /etc/ppp/pppoe-server-options 20.20.20.1:20.20.20.100 nodetach noaccomp nobsdcomp nodeflate nopcomp novj novjccomp default-asyncmap
nobody     3204  0.0  0.0   6184   708 ?        S    04:04   0:00 /usr/sbin/pppoe -n -I eth0:2 -e 1:a0:9d:86:16:2c:99 -S
root       3215  0.0  0.1  49488  1848 ?        Ss   04:04   0:00 pppd pty /usr/sbin/pppoe -n -I eth0:2 -e 2:a0:9d:86:fc:89:13 -S '' file /etc/ppp/pppoe-server-options 20.20.20.1:20.20.20.101 nodetach noaccomp nobsdcomp nodeflate nopcomp novj novjccomp default-asyncmap
nobody     3216  0.0  0.0   6184   704 ?        S    04:04   0:00 /usr/sbin/pppoe -n -I eth0:2 -e 2:a0:9d:86:fc:89:13 -S
root       3229  0.0  0.1  49488  1848 ?        Ss   04:06   0:00 pppd pty /usr/sbin/pppoe -n -I eth0:2 -e 3:a0:9d:86:fc:89:73 -S '' file /etc/ppp/pppoe-server-options 20.20.20.1:20.20.20.102 nodetach noaccomp nobsdcomp nodeflate nopcomp novj novjccomp default-asyncmap
nobody     3230  0.0  0.0   6184   708 ?        S    04:06   0:00 /usr/sbin/pppoe -n -I eth0:2 -e 3:a0:9d:86:fc:89:73 -S
root       3240  0.0  0.0 103248   872 pts/0    S+   04:06   0:00 grep pppoe

[root@localhost network-scripts]# service pppoe-server status
pppoe-server (pid 1573) 正在运行...
[root@localhost network-scripts]#

--------------------设置开机启动

添加如下命令到脚本/etc/rc.d/rc.local中

pppoe-server -I eth0:2 -L 20.20.20.1 -R 20.20.20.100-200

-------------------------------------

对于虚拟机的虚接口桥接到真实主机的无线网卡时,常出现虚接口消失的情况,可以使用python写个检测程序

#!/usr/local/bin/python3

import os,re,time

while True:

val = os.popen("ifconfig").read()

if ["eth1:1"] == re.findall(r"eth1:1",val):

print("eth1:1 is exist")

time.sleep(3)

else:

os.popen('ifconfig eth1:1 40.10.10.1 netmask 255.255.255.0')

time.sleep(3)

os.popen('ifconfig eth1:1 up')

time.sleep(3)

print("eth1:1 has been created")

if ["eth1:3"] == re.findall(r"eth1:3",val):

print("eth1:3 is exist")

time.sleep(3)

else:

os.popen('ifconfig eth1:3 100.100.100.1 netmask 255.255.255.0')

time.sleep(3)

os.popen('ifconfig eth1:3 up')

time.sleep(3)

print("eth1:3 has been created")

print("eth1:1 and eth1:3 are all up")