今天接到业务部门同事反馈,机房有台192.168.5.10的服务器连接不到192.168.1.2那台数据库服务器了,让帮忙检查下是不是机房网络又出问题了。
说明:以下操作环境为RHEL 5.8
1、于是先连接到那台业务服务器,尝试ping数据库服务器发现能ping通。于是自己尝试登陆下数据库,发现有如下报错:
1 2 3 4 5 6 7 8 9 10 11 |
[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: |
2、想着先测试下telnet连接数据库服务器的1521端口,发现不通(上面数据连接报的错网上查都说是数据库服务器监听配置有问题,现在看来其实也有可能是网络问题)。
1 2 3 4 |
[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 ~]$ |
3、首先想到是不是机房网络给限制掉了,因为业务服务器和数据库服务器不在同一区域,并且那台数据库服务器其他区域的业务服务器也在使用,现在也都正常的。。。但是又想了下既然都能ping通,说明机房不同区域间通讯该没有限制那么严,连端口都限制。。于是想着先检查下是不是数据库服务器本身防火墙策略的问题。
查看防火墙规则(发现果然有关于源IP是192.168.5.0网段的只开放了8080端口,并且最后一条规则拒绝所有)
1 |
[root@imzcy ~]# iptables -L -v |
4、于是打算先把现有的规则备份下,然后重新添加一条。
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、保存规则
1 |
[root@imzcy ~]# service iptables save |
6、各参数详细说明
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/iptables.bak 从备份文件中恢复防火墙规则 [root@imzcy ~]# service iptables save 保存防火墙规则到系统配置文件(重启后配置不会丢失) |