
[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")