手把手教你DIY云网关混合云组网系列一云+本地路由器方案

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/firehadoop/article/details/85245765

      随着公有云资源的普及越来越多的人或单位在各种公有云上安了家,云虽然很好,但公有云资源如何安全快捷的访问本地局域网内资源呢?本文的目标是解决你的混合云组网,将公有云网络通过IPSEC-VPN技术打通与本地局域网的互联,实现混合云组网。

      混合云组网是大势所趋,各个公有云服务商也都提供了相应的收费服务,我查了一下,在天翼云中利用IPSEC-VPN打通网络实现互联的产品叫做‘云网关’,从亚马逊、阿里都有提供类似的产品,只不过产品名称不同,相同的是都要收费。

      那么有没有可能我们自己实现一个基于IPSEC-VPN的云网关来打通内网与云侧资源池,实现混合云组网,共享公有云与私有云的资源呢?下面要做的就是这件事,通过利旧一台CISCO2821路由器与天翼云资源池打通IPSEC-VPN连接,实现混合云组网。

一、主要配置步骤介绍

如上图所示,本地网络与云侧VPC网络需要两个安全网关设备通过NET-TO-NET模式完成IPSEC-VPN设置,才能实现安全网关两侧的网络互通,所以两边各需要一个安全网关设备进行配置,云侧需要提供一台虚拟机、一个公网IP地址,本地侧需要提供一个固定公网IP地址和一个路由器设备或者也可以通过将固定公网IP地址配置到私有云虚拟机上,通过纯软件的方式实现,这两种方式笔者均已实现, 本文只讨论云侧虚拟机内网路由器一种模式。

1、本地侧路由器配置

  • 定义ISAKMP策略
  • 定义ISAKMP的共享密钥
  • 定义TRANSFORM-SET策略openswan
  • 定义access-list策略,定义ipsec两端内网ip范围
  • 定义ipsec-map策略
  • 接口引用ipsecmap策略openswan
  • 定义内部路由即可

2、云侧

  • IPSEC对接云主机关闭目的检查功能
  • VPC配置中路由表添加本地网络的路由
  • 升级对接云主机内核版本
  • 配置对接云主机的系统环境包括开启数据转发、关闭icmp重定向等
  • 对接云主机上安装IPSEC-VPN软件Openswan或者Strongswan
  • 配置对接云主机上的Openswan

二、IPSEC-VPN基本原理拓扑

IPsec用一组加密协议来保护IP流量,提供了对IP流量的机密性、完整性和认证。上图展示的是互联网两侧的两台路由器通过IKE的2个阶段实现通过IPSEC隧道来交换信息,即使路由器A\B间传输的数据被劫持也无法了解里面传输的内容,对用户来说实现了安全传输。

扫描二维码关注公众号,回复: 5298319 查看本文章

三、本地思科路由器详细配置信息

!

crypto isakmp policy 10

 encr aes

 authentication pre-share

 group 2

crypto isakmp key jeicheY4oh address 1.1.1.1

!

crypto ipsec transform-set openswan esp-aes esp-sha-hmac

!

crypto map openswan 10 ipsec-isakmp

 set peer 1.1.1.1

 set transform-set openswan

 match address 100

 reverse-route

!

interface GigabitEthernet0/0

 description vip_sw01_0/19

 ip address 2.2.2.2 255.255.255.0

 ip mtu 1400

ip virtual-reassembly

 ip tcp adjust-mss 1360

duplex auto

 speed auto

 crypto map openswan

interface GigabitEthernet0/1.103

 encapsulation dot1Q 103

 ip address 133.3.103.132 255.255.255.0

!

interface GigabitEthernet0/1.505

 encapsulation dot1Q 505

 ip address 133.3.5.132 255.255.255.0

!

ip route 0.0.0.0 0.0.0.0 61.183.40.217

ip route 133.0.0.0 255.0.0.0 133.3.103.254

access-list 100 permit ip 133.3.0.0 0.0.255.255 192.168.1.0 0.0.0.255

access-list 100 permit ip 192.168.1.0 0.0.0.255 133.3.0.0 0.0.255.255

配置说明:

1.1.1.1 是云侧公网接口IP地址

2.2.2.2 是本地公网接口IP地址

133.3.0.0/16 是本地内网网络地址范围

192.168.1.0/24 是天翼云侧网络地址范围

四、云侧关键管理步骤配置

网卡关闭源目的检查开关

 

源目的检查开关必须通过天翼云控制台进入对应的弹性云主机页面后选择网卡标签人工关闭,该选项不关闭的后果是云端服务器无法访问到客支内网,只能通过客支内网访问云端,形成单通故障现象,其原理是默认情况下对源或目的检查后不符合要求的地址云主机不会转发,通过ipsec连接后建立的网络就属于这种情况,所以当云端服务器向客支内网服务器发包时会被该选项丢弃。

天翼云添加回程路由

该项目需要在vpc配置中的路由表中手工添加,添加该回程路由的目的是实现云端主机无需手工添加静态路由,自动实现对客支网络的互通。

五、云侧虚拟机更新系统内核版本至4.18

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

yum --enablerepo=elrepo-kernel install kernel-ml -y

 

设置 GRUB 默认的内核版本

vi /etc/default/grub

GRUB_DEFAULT=0

grub2-mkconfig -o /boot/grub2/grub.cfg

六、配置云侧虚拟机操作系统环境

开启数据转发

# vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

net.ipv4.conf.all.rp_filter=0

net.ipv4.conf.default.rp_filter=0

2、关闭icmp重定向

# sysctl -a | egrep "ipv4.*(accept|send)_redirects" | awk -F "=" '{print$1"= 0"}' >> /etc/sysctl.conf

# sysctl -p

3、关闭SELinux

# setenforce 0

  1. 关闭centos7原生防火墙安装开启iptables服务

关闭原生防火墙

systemctl disable firewalld

systemctl stop firewalld

systemctl mask firewalld

安装iptables服务

yum install iptables-services –y

systemctl enable iptables

systemctl start iptables

rpm -qc iptables-services

配置保存iptables策略

iptables -A INPUT -p udp --dport 500 -j ACCEPT

iptables -A INPUT -p tcp --dport 4500 -j ACCEPT

iptables -A INPUT -p udp --dport 4500 -j ACCEPT

iptables -A INPUT -p tcp --dport 500 -j ACCEPT

service iptables save

iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

因为要让两侧内网的所有主机设备实现互访,必须要在两台Ipsec主机上配置iptables的nat转换

  • 配置天翼云侧的nat转换

Iptables -A POSTROUTING -s 133.3.5.0/24 -d 192.168.1.0/24 -j SNAT --to-source 192.168.1.57

Iptables -A POSTROUTING -s 133.3.103.0/24 -d 192.168.1.0/24 -j SNAT --to-source 192.168.1.57

七、安装配置openswan

1、安装

yum install openswan lsof  -y

systemctl enable ipsec

systemctl start ipsec

2、配置

[root@ipsec ~]# cat /etc/ipsec.conf

# /etc/ipsec.conf - Libreswan IPsec configuration file

#

# Manual:     ipsec.conf.5

 

version 2

config setup

      protostack=netkey

      plutodebug=all

      plutostderrlog=/var/log/pluto.log

      virtual_private=%v4:133.3.0.0/16,%v4:192.168.1.0/24

      nat_traversal=yes

      oe=off

 

conn cisco

     authby=secret

     auto=start

     ike=3des-md5

     keyexchange=ike

     phase2=esp

     phase2alg=3des-md5

     compress=no

     pfs=no

     type=tunnel

     left=192.168.1.57

     leftsourceip=1.1.1.1

     leftsubnet=192.168.1.0/24

     leftid=1.1.1.1

     leftnexthop=%defaultroute

     right=2.2.2.2

     rightsubnet=133.3.0.0/16

猜你喜欢

转载自blog.csdn.net/firehadoop/article/details/85245765