[완료]사설망에서의 소켓통신 시나리오(?)

blueflag의 이미지

완전 초보 프로그래머가 사내 메신저를 제작하고 있는데요.
현재 사내는 같은 네트워크에 모든 클라이언트가 고정IP로 구현이 되어있어, 큰 어려움 없이 돌아가고 있습니다.

이번에 회사가 이전을 하게 되는데, 정책으로 사설망으로 사용한다고 하네요.
대충의 구성도는 층마다 다른 네트워크를 사용하는것인데

예를 들어 15층은 172.20.15.x 대역, 16층은 172.20.16.x 대역, 17층은 172.20.17.x 대역
이런식으로 네트워크를 구성한다고 했을때, 어떤식으로 구성을 해야 할지 감이 오지 않습니다.

현재는 서버(고정IP)와의 통신은 처음 로그인 했을때 목록을 받아오는 부분과, 특정 유저가 상태변화가 있을때
이를 서버로 보내서 다른 사용자들에게 변화시켜주고, 로그아웃 시를 알리는 부분만 서버와 통신하고
그외에는 모두 P2P로 통신을 합니다.

자세히 알아보지는 않았지만, NAT라던가 Hole Punching이라던가의 기법이 있던데.
메신저에서 사용하는 포트가 하나가 아니라서 이를 어떻게 NAT로 구성하는지 도통 감이 오질 않네요.

어떤 시나리오가 가능할지 고수님들의 의견 부탁드립니다.

mithrandir의 이미지

NAT 외부에서 접속하는 사람이 없고,
서버도 내부에 있다면 별로 바꿀게 없지 않을까요?

사설망이라 해도 내부에서 NAT를 할 것 같지는 않네요.

만약 서버도 외부에 있고, 아예 외부에서 접속을 하게 된다면 msn을 흉내내도 괜찮을 것 같아요.

P2P 통신을 할때, 각각 서버 역할과 클라이언트 역할을 해서, 어느 한방향으로 되면 그대로 그 연결을 사용하는거죠. 만약 양쪽 다 실패한다면 서버를 통하구요.

언제나 삽질 - http://tisphie.net/typo/

언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net

blueflag의 이미지

서버가 고정 실 아이피를 사용한다면 , 다른 외부의 네트워크로 인식이 되지 않나요?
사내 메신저 이긴 하지만, 외부에서 근무하는 분들을 위해서 외부에서도 접근이 가능하도록 할려고 하는데.

서버를 고정아이피 예를 들면 211.211.211.211 뭐 이런식 이고
클라이언트들의 사설IP를 썼을때 클라이언트에서 서버로 접근은 되겠지만, 서버쪽에서 각각의 클라이언트로
접근을 하려면 NAT가 필요한것 같아서요.

그 이후론 사설IP간 네트워크가 문제없겠지만
그 현재 접속자 목록이나, 그런 부분이 서버쪽에서 클라이언트로 가는게 문제가 되지 않을까 싶어서요. ^^

bushi의 이미지

외근, 출장자들은 vpn 을 사용하는 게 정답이지 싶은데요.

아무튼... 메신저 서버는 router(gateway, firewall) 기계에서 돌려야겠군요.

OTL

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.