linux中服务器之间的跳转,linux之***服务器间ip隧道跳转多ip路由走向分流(系真实案例)...
本文系统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路由走向分流(系真实案例)...相关推荐
- Linux中的ftp命令怎么写,linux中的ftp命令用法
Linux系统中的ftp命令功能强大,那么它的具体用法是怎样呢?下面由学习啦小编为大家整理了linux中的ftp命令用法相关知识,希望对大家有帮助! linux中的ftp命令用法 1. 连接ftp服务 ...
- Linux下dislocate命令用法,在 Linux 中遨游手册页的海洋 | Linux 中国
原标题:在 Linux 中遨游手册页的海洋 | Linux 中国 Linux 系统上的手册页可以做的不仅仅是提供特定命令的信息.它们可以帮助你发现你没有意识到的命令. https://linux.cn ...
- linux vi 移动光标,linux中vi命令的光标移动操作linux网页制作 -电脑资料
分享一篇关于linux中vi命令的光标移动操作的文章,有需要的朋友可以参考一下, 全屏幕文本编辑器中, 光标的移动操作无疑是最经常使用的操作了.用户只有熟练地使用移动光标的这些命令,才能迅速准确地到达 ...
- 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 ...
- linux文件服务器迁移方案,服务器之间文件备份方案、如何把服务器文件自动备份到另外一台服务器?...
很多单位都有文件服务器备份的需求,并且常常是把一个服务器的文件自动备份到另外一台文件服务器 .如何实现呢? 一.Windows文件服务器自动备份的方法 Windows文件服务器自动备份的最简单方法是安 ...
- Linux中的Shell用SSH自动登录远程服务器后执行命令并自动退出
目录 [隐藏] 1 SSH命令格式 2 主要参数说明 3 ssh控制远程主机,远程执行命令步骤 4 准备工作 5 基于公私钥认证远程登录可能存在的不足 6 ssh 执行远程命令格式 6.1 打开远程s ...
- linux中bash的功能主要有,Linux系统中的Bash功能的介绍
今天小编要跟大家分享的文章是关于Linux系统中的Bash功能的介绍.一个完整计算机的体系结构包括:硬件与软件,而软件又分为系统软件与应用软件,负责对硬件仅需管理与操作的是系统软件的内核部分,用户是无 ...
- linux中vim查看最后五行命令,Linux系统中Vi常用命令及高级应用
一.简介 Vi命令可以说是Unix/Linux世界里最常用的编辑文件的命令了,很多人不喜欢VI因为它 的众多的命令集,但是我们只需要掌握基本的命令然后灵活地加以运用,相信你会象我一样喜欢它的. 本文旨 ...
- linux中文件复的概念,诠释 Linux 中“一切都是文件”概念和相应的文件类型
原标题:诠释 Linux 中"一切都是文件"概念和相应的文件类型 原文出处: Aaron Kili 译文出处:runningwater 在 Unix 和它衍生的比如 Linux 系 ...
最新文章
- 【实验】配置VRRP负载分担
- kubelet启动失败_《蹲坑学kubernetes》之10-1:kubelet原理详解
- 线程的应用-如何应用多线程
- 无招胜有招之Java进阶JVM(二)
- TensorFlow学习笔记(二十二) tensorflow数据读取方法总结
- Java面试常问计算机网络问题
- python常用算法有哪些_python常见的排序算法有哪些?
- C语言编写——抢30游戏
- CSS垂直居中的七个方法
- LeetCode 279. Perfect Squares
- 【UVA1339】古老的密码(巧妙思路+(q)sort降序排列的三种方法)
- [推荐电子图书]-[jquery视频教程 初级+高级][25课程]
- 繁星屠龙软件下载_繁星抢币有什么要求 - 天津政务网
- 极点五笔状态栏菜单不显示,如何再让它显示?
- MySql 查询比其中某一位讲师工资少的教师姓名、工资和职称
- 易语言程序假死优化_易语言假死无响应采用处理事件解决办法
- 微信小程序 实时录制音视频流和实时播放音视频流
- swagger 的介绍和基本使用
- J2EE体系架构设计
- 推荐两个免费绘图工具
热门文章
- 【渝粤教育】国家开放大学2018年秋季 0233-22T学前儿童语言教育 参考试题
- [渝粤教育] 广东-国家-开放大学 10259k2_经济学基础_21秋考试
- 【无线电波】蓝牙Bluetooth来源 原理?有无辐射影响健康 是否安全!?
- 表示微型计算机系统稳定性,计算机基础知识(三)135
- 账户与使用计算机的人无关,本地用户和组
- 在vscode上编写jsp_使用vscode高效编写博客园博客
- oracle 调整dbw0,求助:DBW的内存占用率高,可能是什么原因?
- java的case_java中的switch case语句使用详解
- Java部分A+B正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。现给定A、DA
- java中打开文件显示_在默认文件资源管理器中打开文件,并使用JavaFX或普通Java突出显示它...