本文系统Centos6.0;这里的***服务以pptpd为例;其中底层涉及到pptpd+freeradius+mysql认证;

本文系真实案例;leader需求大多是这样的,节约成本还要达到所需要的效果;没办法,总的做个效果出来;

需求,国内一台***机器(server1),多ip,如:10.10.10.1-5(5个ip);国外一台***机器(server2),多ip,如:20.20.20.1-5(5个ip);两台***服务器间要实现ip隧道跳转;这样可以实现缩小延迟;比如,你想使用国外的ip,你只需要拨入国内***服务器即可,我们已经做了ip隧道。对外ip已经是国外的了,并且延迟要比你直接连接国外的***的延迟要小。先看下图图吧;

如图所示;每种颜色代表不同的链路走向;其中红色就代表了跳转的链接,拨入国内Ip,其实是国外的ip;黑色代表了国内用户直连server1,使用国内ip,蓝色的代表了用户直连国外的机器,直接使用国外的ip,为什么要使用隧道呢,因为有的用户直连国外的服务器的话,延迟较大,隧道的话,可以减小延迟;

我想大家应该明白了吧,leader的意思就是国内机器既要对内服务,既要做跳转到外面,国外的机器既要做跳转的节点,又要做直连的服务器。具体走向,现在是根据拨入Ip实现控制,拨入Ip隧道对接Ip就跳转过去,其他的不实现跳转,减少成本啊

下面就开始部署步骤了;

1、部署两台机器的pptpd服务;五个ip监听各个ip,也就是五个进程;下面是配置文件;cat /etc/pptpd.conf

ppp /usr/sbin/pppd

option /etc/ppp/pptpd-options

logwtmp

connections 1024

listen 10.10.10.1

localip 172.16.0.1

remoteip 172.16.0.2-254

cat /etc/pptpd2.conf

ppp /usr/sbin/pppd

option /etc/ppp/pptpd-options

logwtmp

connections 1024

listen 10.10.10.2

localip 172.16.1.1

remoteip 172.16.1.2-254

cat /etc/pptpd3.conf

ppp /usr/sbin/pppd

option /etc/ppp/pptpd-options

logwtmp

connections 1024

listen 10.10.10.3

localip 172.16.2.1

remoteip 172.16.2.2-254

cat /etc/pptpd4.conf

ppp /usr/sbin/pppd

option /etc/ppp/pptpd-options

logwtmp

connections 1024

listen 10.10.10.4

localip 172.16.3.1

remoteip 172.16.3.2-254

cat /etc/pptpd5.conf

ppp /usr/sbin/pppd

option /etc/ppp/pptpd-options

logwtmp

connections 1024

listen 10.10.10.5

localip 172.16.4.1

remoteip 172.16.4.2-254

两台机器是配置是一样的,唯一差别就是监听地址不一样(listen);

下面是pptpd-options的配置cat /etc/ppp/pptpd-options |grep -v ^#

name pptpd

refuse-pap

refuse-chap

refuse-mschap

require-mschap-v2

require-mppe-128

proxyarp

lock

nobsdcomp

novj

novjccomp

nologfd

ms-dns 8.8.8.8

logfile /var/log/pptpd.log

plugin /usr/lib/pppd/2.4.5/radius.so

radius-config-file /etc/ppp/radius/etc/radiusclient.conf

启动pptpd服务进程;pptpd -c /etc/pptpd.conf

pptpd -c /etc/pptpd2.conf

pptpd -c /etc/pptpd3.conf

pptpd -c /etc/pptpd4.conf

pptpd -c /etc/pptpd5.conf

2、打通两台机器的隧道,测试

这里是10.10.10.1对接(跳转)到20.20.20.1

Server1:ip tunnel del ethn

ip tunnel add ethn mode ipip local 10.10.10.1 remote 20.20.20.1

ifconfig ethn 172.0.0.1

route add -host 172.0.0.2 dev ethn

echo 1 > /proc/sys/net/ipv4/ip_forward

ip rule add to 172.16.0.0/24 table ipip pref 1700

#这要告诉他凡是pptpd,第一个Ip拨入用户分配的内网Ip0.0/24的走向ipip隧道,也就是跳转到外面

ip route add default dev ethn table ipip

server2ip tunnel del ethn

ip tunnel add ethn mode ipip local 20.20.20.1 remote 10.10.10.1

ifconfig ethn 172.0.0.2

route add -host 172.0.0.1 dev ethn

echo 1 > /proc/sys/net/ipv4/ip_forward

ip rule add to 172.16.0.0/24 table ipip pref 1700

ip route add default dev ethn table ipip

现在你会发现两块机器互ping 172.0.0.x的可以Ok的;确定下ipip模块是否加载哈;

3、实现不同ip的走向流向,对外ip显示不同。

现在你会发现拨入10.10.10.1这个Ip的话,会跳转到国外,如果你想10.10.10.2这个Ip的拨入用户也跳转到外面的话,添加ip rule add to 172.16.1.0/24 table ipip pref 1700

两台机器分别;

server1:iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 10.10.10.2

iptables -t nat -A POSTROUTING -s 172.16.2.0/24 -o eth0 -j SNAT --to-source 10.10.10.3

iptables -t nat -A POSTROUTING -s 172.16.3.0/24 -o eth0 -j SNAT --to-source 10.10.10.4

iptables -t nat -A POSTROUTING -s 172.16.4.0/24 -o eth0 -j SNAT --to-source 10.10.10.5

server2:iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -o eth0 -j SNAT --to-source 20.20.20.1

iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 20.20.20.2

iptables -t nat -A POSTROUTING -s 172.16.2.0/24 -o eth0 -j SNAT --to-source 20.20.20.3

iptables -t nat -A POSTROUTING -s 172.16.3.0/24 -o eth0 -j SNAT --to-source 20.20.20.4

iptables -t nat -A POSTROUTING -s 172.16.4.0/24 -o eth0 -j SNAT --to-source 20.20.20.5

Ps:这里实现根据入口不同分流,最好的是根据目标地址不同使用不同的路由表,ip rule真心很不错;

后续有时间会继续推出ip rule

linux中服务器之间的跳转,linux之***服务器间ip隧道跳转多ip路由走向分流(系真实案例)...相关推荐

  1. Linux中的ftp命令怎么写,linux中的ftp命令用法

    Linux系统中的ftp命令功能强大,那么它的具体用法是怎样呢?下面由学习啦小编为大家整理了linux中的ftp命令用法相关知识,希望对大家有帮助! linux中的ftp命令用法 1. 连接ftp服务 ...

  2. Linux下dislocate命令用法,在 Linux 中遨游手册页的海洋 | Linux 中国

    原标题:在 Linux 中遨游手册页的海洋 | Linux 中国 Linux 系统上的手册页可以做的不仅仅是提供特定命令的信息.它们可以帮助你发现你没有意识到的命令. https://linux.cn ...

  3. linux vi 移动光标,linux中vi命令的光标移动操作linux网页制作 -电脑资料

    分享一篇关于linux中vi命令的光标移动操作的文章,有需要的朋友可以参考一下, 全屏幕文本编辑器中, 光标的移动操作无疑是最经常使用的操作了.用户只有熟练地使用移动光标的这些命令,才能迅速准确地到达 ...

  4. linux中打开pdf文件_在Linux中减少PDF文件大小

    linux中打开pdf文件 In our Linux system, If we have a large PDF file, we may want to reduce it's size. We ...

  5. linux文件服务器迁移方案,服务器之间文件备份方案、如何把服务器文件自动备份到另外一台服务器?...

    很多单位都有文件服务器备份的需求,并且常常是把一个服务器的文件自动备份到另外一台文件服务器 .如何实现呢? 一.Windows文件服务器自动备份的方法 Windows文件服务器自动备份的最简单方法是安 ...

  6. Linux中的Shell用SSH自动登录远程服务器后执行命令并自动退出

    目录 [隐藏] 1 SSH命令格式 2 主要参数说明 3 ssh控制远程主机,远程执行命令步骤 4 准备工作 5 基于公私钥认证远程登录可能存在的不足 6 ssh 执行远程命令格式 6.1 打开远程s ...

  7. linux中bash的功能主要有,Linux系统中的Bash功能的介绍

    今天小编要跟大家分享的文章是关于Linux系统中的Bash功能的介绍.一个完整计算机的体系结构包括:硬件与软件,而软件又分为系统软件与应用软件,负责对硬件仅需管理与操作的是系统软件的内核部分,用户是无 ...

  8. linux中vim查看最后五行命令,Linux系统中Vi常用命令及高级应用

    一.简介 Vi命令可以说是Unix/Linux世界里最常用的编辑文件的命令了,很多人不喜欢VI因为它 的众多的命令集,但是我们只需要掌握基本的命令然后灵活地加以运用,相信你会象我一样喜欢它的. 本文旨 ...

  9. linux中文件复的概念,诠释 Linux 中“一切都是文件”概念和相应的文件类型

    原标题:诠释 Linux 中"一切都是文件"概念和相应的文件类型 原文出处: Aaron Kili 译文出处:runningwater 在 Unix 和它衍生的比如 Linux 系 ...

最新文章

  1. 【实验】配置VRRP负载分担
  2. kubelet启动失败_《蹲坑学kubernetes》之10-1:kubelet原理详解
  3. 线程的应用-如何应用多线程
  4. 无招胜有招之Java进阶JVM(二)
  5. TensorFlow学习笔记(二十二) tensorflow数据读取方法总结
  6. Java面试常问计算机网络问题
  7. python常用算法有哪些_python常见的排序算法有哪些?
  8. C语言编写——抢30游戏
  9. CSS垂直居中的七个方法
  10. LeetCode 279. Perfect Squares
  11. 【UVA1339】古老的密码(巧妙思路+(q)sort降序排列的三种方法)
  12. [推荐电子图书]-[jquery视频教程 初级+高级][25课程]
  13. 繁星屠龙软件下载_繁星抢币有什么要求 - 天津政务网
  14. 极点五笔状态栏菜单不显示,如何再让它显示?
  15. MySql 查询比其中某一位讲师工资少的教师姓名、工资和职称
  16. 易语言程序假死优化_易语言假死无响应采用处理事件解决办法
  17. 微信小程序 实时录制音视频流和实时播放音视频流
  18. swagger 的介绍和基本使用
  19. J2EE体系架构设计
  20. 推荐两个免费绘图工具

热门文章

  1. 【渝粤教育】国家开放大学2018年秋季 0233-22T学前儿童语言教育 参考试题
  2. [渝粤教育] 广东-国家-开放大学 10259k2_经济学基础_21秋考试
  3. 【无线电波】蓝牙Bluetooth来源 原理?有无辐射影响健康 是否安全!?
  4. 表示微型计算机系统稳定性,计算机基础知识(三)135
  5. 账户与使用计算机的人无关,本地用户和组
  6. 在vscode上编写jsp_使用vscode高效编写博客园博客
  7. oracle 调整dbw0,求助:DBW的内存占用率高,可能是什么原因?
  8. java的case_java中的switch case语句使用详解
  9. Java部分A+B正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。现给定A、DA
  10. java中打开文件显示_在默认文件资源管理器中打开文件,并使用JavaFX或普通Java突出显示它...