突然一天,万恶的电信偷偷把咱的拨号上网获取地址给换成了100.64.*.*(查了一下资料,据说是分配给ISP的内网地址)。当时俺可是在路由器(openwrt,壮哉我大linux)上刷IP来挂qq所在地,这样一弄我的脚本还怎么用呀。突然又联想到,以后要访问自己的内网服务器咋办。于是就有了下面的实验。
实验思路,在互联网上有一台自己的VPS,2地通过pptp ×××拨号连接VPS,由VPS做中转访问(不要问我VPS是嘛,这就是钱啊!)。废话不多说,上图,GNS3+VM:
网络环境:
R4,R5模拟家用ADSL路由器,做NAPT转换用的那种。
R2,R3模拟运营商路由器。
IP分配:
C1(winxp):192.168.206.10, gateway:192.168.206.254
C2(winxp):192.168.1.10, gw:192.168.1.254
×××_server(centos6):8.8.8.8, gw:8.8.8.254
×××拨号网络ip段:10.1.1.0/24
R2,R3,R5路由器通过ospf通告网络学习路由,注意因为双层NAPT,所以没通告100.64.1.0的网段:
network 200.1.1.0 255.255.255.0 area 0
...8.8.8.0...
...35.1.1.0 ...
R4默认路由 0.0.0.0 0.0.0.0 100.64.1.2
大体上的模拟环境如上,只写思路,不复述具体步骤了,特标明注意要点。
一、VM配置
VM默认只会虚拟2张网卡,上面实验有3台主机,所以需要在VM的菜单栏-编辑-虚拟网络编辑器,添加一个虚拟网卡给GNS3连接,win7需提供VM管理员权限,重启系统后GNS3才能识别出新添加的网卡。
二、GNS3配置
C1连接VM的虚拟网卡vmnet1,C2连接VM的虚拟网卡vmnet2,××× server连接VM的虚拟网卡vmnet8
网络配置方面没啥好说,都是cisco基础知识,主要点在于R2,R4的NAT配置,R2,R3,R5的ospf配置。
三、服务器×××_server配置
因为用了centos搭建***服务器,所以记录一下:
1、 检查内核是否包含mppe
modprobe ppp-compress-18 && echo ok
2、 安装ppp,iptables,一般都默认有安装
yum install -y ppp iptables
3、 安装pptpd软件,yum源里没有,只能找第三方,我是32位系统
wget rpm -ivh pptpd-1.4.0-1.rhel5.i386.rpm
4、 配置pptpd
①编辑ppp/options.pptpd文件
mv /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak vim /etc/ppp/options.pptpd
复制粘贴下面内容
name pptpd refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128 proxyarp lock nobsdcomp novj novjccomp nologfd ms-dns 208.67.222.222
②编辑/etc/pptpd.conf
option /etc/ppp/options.pptpd logwtmp localip 10.1.1.1 ## ×××server的IP地址 remoteip 10.1.1.11-254 ## 分配给client的IP地址段
③编辑/etc/ppp/chap-secrets
格式:账户名 options.pptpd配置的name选项名 密码 分配的IP test1 pptpd test1 10.1.1.11 test2 pptpd test2 10.1.1.12
④为了让拨号用户能正常上网,需要打开×××服务器的IP转发与配置iptables NAT
vim /etc/sysctl.conf 修改以下内容: net.ipv4.ip_forward = 1 保存退出后,执行以下命令刷新内核: /sbin/sysctl -p
配置iptables
iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -o eth0 -j MASQUERADE 完成后输入/etc/init.d/iptables save保存,并且输入/etc/init.d/iptables restart重新启动。
5、XP客户端新建×××连接,略
思考:怎样不用VPS进行穿透,VPS要额外花钱啊!!!