基本环境:
centos 7.7
网络拓扑图:
三层交换机上的配置:
由于拓扑图可以,我会把指定的一些内网网段分流到开通国际加速专线的路由器上,使这部份内网网段可以访问国外网站,这里需要在三层交换机上做,配置如下:
#默认的路由是指向liunx服务器网关的
HX-3560X(config)#ip route 0.0.0.0 0.0.0.0 172.16.7.1
#在三层交换机上做策略路由,指定内网网段走foreign vpn国际加速专线路由器
HX-3560X(config)#sdm prefer routing #cisco交换机升级到ip servers许可后还需要执行这个命令保存重启才可以
HX-3560X#copy running-config startup-config
HX-3560X#reload
#创建acl规则,把这三个网段的内网网段访问其它的内网网段的拦截在三层交换机内交换,即内网网段互访时不能路由器上
HX-3560X(config)#access-list 101 deny ip 192.168.0.0 0.0.255.255 192.168.0.0 0.0.255.255
HX-3560X(config)#access-list 101 deny ip 192.168.0.0 0.0.255.255 172.16.0.0 0.0.255.255
#指定内网网段
HX-3560X(config)#access-list 101 permit ip 192.168.2.0 0.0.0.255 any
HX-3560X(config)#access-list 101 permit ip 192.168.3.0 0.0.0.255 any
HX-3560X(config)#access-list 101 permit ip 192.168.4.0 0.0.0.255 any
#起个名字,这里的10是策略路由序号
rote-map foreign permit 10
#匹配一个访问列表,这里的101是访问列表号
match ip address 101
#设置一个策略,定义下一跳172.16.7.3,该地址foreign vpn国际加速专线路由器
set ip next-hop 172.16.7.3
exit
int vlan 2
接口调用
ip policy route-map foreign
exit
int vlan 3
接口调用
ip policy route-map foreign
exit
int vlan 4
接口调用
ip policy route-map foreign
网康上的配置:
给MGT管理口配置:还是设置为172.16.7.5 255.255.255.248
配置默认路由让网康设备能上外网:下一跳地址为网关,接口为管理口 设置dns
配置双桥网口
三层交换机上就设置为access模式,vlan7
勾选双入双出。
双桥地址为虚拟地址,可以随便设置:172.16.0.11/12 255.255.255.0 网关172.16.0.1
网关服务器的配置:
1、设置ip修改网卡防火墙zone
#按照下面来设置ip,个人习惯在/etc/sysconfig/network-scripts/ifcfg-em4这样的脚本下设置
em1: 106.39.95.3 mask 255.255.255.248 gw 106.39.95.1 main表生成一条默认路由
em2: 211.21.15.2 mask 255.255.255.248 网关不设
em4: 172.16.7.1 mask 255.255.255.248 网关不设
firewall-cmd --permanent --zone=external --change-interface=em1
firewall-cmd --permanent --zone=external --change-interface=em2
firewall-cmd --permanent --zone=trusted --change-interface=em4
2、开启路由转发功能
echo "1" >/proc/sys/net/ipv4/ip_forward
3、配置内网静态路由
ip route add 192.168.0.0/16 via 172.16.7.2 dev em4
#添加到永久路由:
vim /etc/sysconfig/network-scripts/route-em4
192.168.0.0/16 via 172.16.7.2 dev em4
4、添加路由表
#因为一台服务器上默认网关只能设置一个,多条线路的其它网关设置到路由表上
echo "11 telecom" >>/etc/iproute2/rt_tables
ip route add default via 211.21.15.2 dev em2 table telecom
5、配置策略路由,分流一部分内网流量到电信出口线路上
/sbin/ip rule add from 192.168.5.0/24 table telecom pref 99
/sbin/ip rule add from 192.168.6.0/24 table telecom pref 100
/sbin/ip rule add from 192.168.7.0/24 table telecom pref 101
/sbin/ip rule add from 192.168.8.0/24 table telecom pref 102
/sbin/ip rule add from 192.168.9.0/24 table telecom pref 103
#策略路由重启失效,需要添加到上面命令到rc.local开机自动执行,centos7的rc.local需要添加执行权限
chmod +x /etc/rc.d/rc.local
6、防火墙配置
systemctl enable firewalld
systemctl start firewalld
7、删除外网ssh连接服务
firewall-cmd --permanent --zone=external --remove-service=ssh
8、开启nat转发
#external默认已开启masquerade伪装了,只需要再添加NAT规则就可以了
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o em1 -j MASQUERADE -s 192.168.10.0/24
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o em1 -j MASQUERADE -s 192.168.11.0/24
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o em1 -j MASQUERADE -s 192.168.12.0/24
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o em1 -j MASQUERADE -s 192.168.13.0/24
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o em1 -j MASQUERADE -s 192.168.14.0/24
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o em1 -j MASQUERADE -s 192.168.15.0/24
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o em2 -j MASQUERADE -s 192.168.5.0/24
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o em2 -j MASQUERADE -s 192.168.6.0/24
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o em2 -j MASQUERADE -s 192.168.7.0/24
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o em2 -j MASQUERADE -s 192.168.8.0/24
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o em2 -j MASQUERADE -s 192.168.9.0/24
9、重启防火墙
firewall-cmd --reload
10、有需要开启端口转发,可以配置
firewall-cmd --permanent --zone=external --add-port=8070/tcp
firewall-cmd --permanent --zone=external --add-port=8071/tcp
firewall-cmd --permanent --zone=external --add-port=8072/tcp
firewall-cmd --permanent --zone=external --add-forward-port=port=8070:proto=tcp:toaddr=192.168.10.10:toport=8070
firewall-cmd --permanent --zone=external --add-forward-port=port=8071:proto=tcp:toaddr=192.168.10.10:toport=8071
firewall-cmd --permanent --zone=external --add-forward-port=port=8072:proto=tcp:toaddr=192.168.10.10:toport=8072
注意:搭建liunx服务器网关时,有一个很奇怪的现象就是在网关后的内网通过pptp拨号拨其它外网服务器搭建的pptp服务器时,是拨不通的,这个是因为PPTP使用TCP端口1723传输控制命令,并使用GRE传输数据。由于GRE没有端口,因此服务器必须使用CallID来跟踪端点并实现NAT。
需要加载这两个模块:
# lsmod | grep pptp
# modprobe ip_nat_pptp
# modprobe ip_conntrack_pptp
当然,如果你这个网关服务器还搭建为pptp服务器的,你还需要设置,可以参照下面iptables时的做法:
链接:https://stackoverflow.com/questions/31731067/linux-pptp-server-relay
现在,您可以创建iptables规则来接受传入和转发请求:
# iptables -A INPUT -d $VPS1_IP_ADDR -p tcp --dport 1723 -j ACCEPT
# iptables -A INPUT -d $VPS1_IP_ADDR -p gre -j ACCEPT
# iptables -A FORWARD -d $VPS2_IP_ADDR -p tcp --dport 1723 -j ACCEPT
# iptables -A FORWARD -d $VPS2_IP_ADDR -p gre -j ACCEPT
最后设置DNAT规则:
# iptables -A PREROUTING -d $VPS1_IP_ADDR -p tcp --dport 1723 -j DNAT --to-destination $VPS2_IP_ADDR
# iptables -A POSTROUTING -d $VPS2_IP_ADDR -p tcp --dport 1723 -j MASQUERADE
文档更新时间: 2020-05-25 14:00 作者:子木