今天接到业务部门同事反馈,机房有台192.168.5.10的服务器连接不到192.168.1.2那台数据库服务器了,让帮忙检查下是不是机房网络又出问题了。
说明:以下操作环境为RHEL 5.8
1、于是先连接到那台业务服务器,尝试ping数据库服务器发现能ping通。于是自己尝试登陆下数据库,发现有如下报错:
[zcy@xiangyanghua ~]$ sqlplus zcy/123456@192.168.1.3:1521/orcl
SQL*Plus: Release 10.2.0.5.0 - Production on Tue Aug 7 10:38:09 2018
Copyright (c) 1982, 2010, Oracle. All Rights Reserved.
ERROR:
ORA-12560: TNS:protocol adapter error
Enter user-name:
1
2
3
4
5
6
7
8
9
10
11
[zcy@xiangyanghua~]$sqlpluszcy/123456@192.168.1.3:1521/orcl
SQL*Plus:Release10.2.0.5.0-ProductiononTueAug710:38:092018
Copyright(c)1982,2010,Oracle.AllRightsReserved.
ERROR:
ORA-12560:TNS:protocoladaptererror
Enteruser-name:
2、想着先测试下telnet连接数据库服务器的1521端口,发现不通(上面数据连接报的错网上查都说是数据库服务器监听配置有问题,现在看来其实也有可能是网络问题)。
[zcy@xiangyanghua ~]$ telnet 192.168.1.3 1521
Trying 192.168.1.3...
telnet: connect to address 192.168.1.3: No route to host
[yundi@xiangyanghua ~]$
1
2
3
4
[zcy@xiangyanghua~]$telnet192.168.1.31521
Trying192.168.1.3...
telnet:connecttoaddress192.168.1.3:Noroutetohost
[yundi@xiangyanghua~]$
3、首先想到是不是机房网络给限制掉了,因为业务服务器和数据库服务器不在同一区域,并且那台数据库服务器其他区域的业务服务器也在使用,现在也都正常的。。。但是又想了下既然都能ping通,说明机房不同区域间通讯该没有限制那么严,连端口都限制。。于是想着先检查下是不是数据库服务器本身防火墙策略的问题。
查看防火墙规则(发现果然有关于源IP是192.168.5.0网段的只开放了8080端口,并且最后一条规则拒绝所有)
[root@imzcy ~]# iptables -L -v
1
[root@imzcy~]# iptables -L -v
4、于是打算先把现有的规则备份下,然后重新添加一条。
[root@imzcy ~]# iptables-save >iptables.log
[root@imzcy ~]# iptables -L -v --line-numbers
[root@imzcy ~]# iptables -D INPUT 32 //删除最后一条拒绝所有的规则,向后添加一条允许访问1521的规则,再添加上拒绝其他所有的规则
[root@imzcy ~]# iptables -A INPUT -s 192.168.5.10 -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT
[root@imzcy ~]# iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
[root@imzcy ~]#
1
2
3
4
5
6
[root@imzcy~]# iptables-save >iptables.log
[root@imzcy~]# iptables -L -v --line-numbers
[root@imzcy~]# iptables -D INPUT 32 //删除最后一条拒绝所有的规则,向后添加一条允许访问1521的规则,再添加上拒绝其他所有的规则
[root@imzcy~]# iptables -A INPUT -s 192.168.5.10 -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT
[root@imzcy~]# iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
[root@imzcy~]#
5、保存规则
[root@imzcy ~]# service iptables save
1
[root@imzcy~]# service iptables save
6、各参数详细说明
-L :列出所有防火墙规则
-v :列出规则详细配置
-A :从后面追加规则
-I :从第一条插入规则
-D : 删除某条规则(删除指定编号的规则)
-F :清楚规则链中所有的规则
--line-numbers :显示每条规则的编号
[root@imzcy ~]# iptables-save >/root/iptables.bak 保存当前防火墙规则到iptables.bak文件中
[root@imzcy ~]# iptables-restore
[root@imzcy ~]# service iptables save 保存防火墙规则到系统配置文件(重启后配置不会丢失)
1
2
3
4
5
6
7
8
9
10
11
-L:列出所有防火墙规则
-v:列出规则详细配置
-A:从后面追加规则
-I:从第一条插入规则
-D:删除某条规则(删除指定编号的规则)
-F:清楚规则链中所有的规则
--line-numbers:显示每条规则的编号
[root@imzcy~]# iptables-save >/root/iptables.bak 保存当前防火墙规则到iptables.bak文件中
[root@imzcy~]# iptables-restore
[root@imzcy~]# service iptables save 保存防火墙规则到系统配置文件(重启后配置不会丢失)