2016-07-18 3 views
0

응용 프로그램이 네트워크 불안정성을 처리하는 방법을 테스트하려고합니다. 클라이언트 응용 프로그램은 데이터베이스 서버에 연결하고 쿼리를 실행합니다. 네트워크 불안정성을 시뮬레이트하기 위해 클라이언트 응용 프로그램이 데이터베이스 서버에 연결하는 동안 트래픽을 거부하는 ufw 규칙을 만들려고합니다. 응용 프로그램을 시작하고 데이터베이스에서 쿼리를 실행할 수 있습니다. 그런 다음 UFW 규칙을 업데이트합니다. 다음 2 가지 규칙이 상위 2 가지 규칙입니다.UFW를 업데이트 한 후 PostgreSQL이 여전히 연결할 수 있습니다.

[1] 5432/UDP 외부 OUT DENY (아웃)

[2] (출력) UFW 룰이 업데이트 된 후

클라이언트가 여전히 수 어디 5432/TCP를 OUT DENY 데이터베이스 서버를 호출하십시오. 그러나 클라이언트 응용 프로그램을 다시 부팅하면 데이터베이스 서버에 연결할 수 없습니다.

왜 이런 일이 발생하는지 알고 있습니까? 내가하려는 일을하는 더 좋은 방법이 있습니까? 어떤 도움이라도 대단히 감사 할 것입니다.

추가 정보 : 클라이언트 응용 프로그램은 postgresql-9.4-1207.jdbc4를 사용하여 데이터베이스에 연결합니다. 데이터베이스가 postgresql 9.4.5를 실행 중입니다.

답변

0

UFW에는 몇 가지 기본 구성 옵션이 있습니다. 내 우분투 서버에서는/etc/ufw에 있습니다. before.rules 파일에는 두 가지 규칙이 있습니다.

#-A ufw-before-input -m state --state RELATED,ESTABLISHED -j ACCEPT 
#-A ufw-before-output -m state --state RELATED,ESTABLISHED -j ACCEPT 

... 기존 연결을 허용합니다. 이러한 규칙은 사용자가 지정한 규칙 이전에 읽혀 지므로 항상 정당합니다. 구성 파일에서이 두 줄을 주석 처리하고 문제점이 해결되었습니다.

그러나이 두 줄 위의 주석은 "# 우리가 이미 연결되어있는 프로세스 패킷을 빠르게 처리합니다."라고 읽습니다. 어떤 종류의 성능에 영향을 미칠지는 확실하지 않지만 필자는이 점에 대해 특별히 염려하지 않는다. 이 문제는 다른 사람의 관심사 일 수 있습니다.

관련 문제