[네트워크] IP공유기의 NAT기능과 네트워크(gateway)구성..

gyxor의 이미지

저희 집에서는 케이블 모뎀을 씁니다. 공유기를 이용해서 컴퓨터 2대에서
인터넷을 사용하고 있습니다.
실제 할당된 ip는 하나인데
어떻게 두대의 컴퓨터에서 인터넷을 사용할 수 있는지 그 원리가 궁금합니다.
process 데몬과 비슷한 원리는 아닌가요?
답변부탁드립니다.

darkblue99의 이미지

내부로는 사설 IP를 쓰고 외부로는 publicIP입니다.
NAT는 source address를 떼어내는 기능을 합니다..

10.10.10.1 --------- 10.10.10.2 ----------- 100.100.100.1 ---------100.100.100.2
(웹 서버 ) (공유기 public IP) (공유기 내부망쪽 사설 IP) (내부망내의 PC)

이렇게 있다면 website 10.10.10.1로 request를 날리면 100.100.100.2가 source address이고 10.10.10.1이 destination address인 packet이 일단 100.100.100.1로 날아갑니다.
그러면 routing table을 거쳐 default route로 선언된 외부망쪽 인터페이스 10.10.10.2로 갑니다. 그런데 routing table을 지나자마자 NAT는 source address가 들어있는 IP header를 100.100.100.2를 떼어내고 public IP인 10.10.10.2로 바꿉니다. 즉 source주소가 public IP로 대체됩니다.
그리고 그냥 보내면 안되니까.. NAT table에 기록해 둡니다.
그러면 10.10.10.1에서는 10.10.10.2가 request를 보냈다고 생각하고 응답을 보냅니다.
그러면 10.10.10.2에 도착하는데 NAT table을 보고 그것이 100.100.100.2가 보낸것을 확인합니다. 그런뒤에 Destination address인 10.10.10.2를 떼어내고 100.100.100.2로 붙인뒤 routing table에 넣습니다. 그러면 100.100.100.2로 갑니다.

휴. .. 괜히 썼다는 생각이 드네요.. 숫자가 많아서.. 힘드네요~:-)
어쨌든 위의 과정을 거쳐서 PC와 서버의 setting을 따로 안하고 공유기를 통해 사설망과 public망을 나누어 쓸수 있는 것이지요~
그리고 사설망 쪽에 몇대의 PC가 붙어도 public IP는 하나만 붙어서 나가게 되지요~

Be Postive!

gyxor의 이미지

darkblue99 wrote:

10.10.10.1 --------- 10.10.10.2 ----------- 100.100.100.1 ---------100.100.100.2
(웹 서버 ) (공유기 public IP) (공유기 내부망쪽 사설 IP) (내부망내의 PC)

좋은 답변 고맙습니다...
사설 아이피를 공인 아이피로 바꿔주고 또 되돌리는 기능이 NAT라는것 잘 알겠습니다.
그런데.. 만약 100.100.100.1 과 100.100.100.2 에서 완전히 동시에
요청이 들어오게 되면 어떻게 되나요?
만약 순차적으로 처리를 한다면...
양쪽에서 인터넷을 쓰는경우엔 이러한 이유로 인터넷이 느려질 수 있는것인가요?
답변부탁드립니다.
다즐링의 이미지

순차적으로 처리를 하겠지만 대단히 빠른속도라 느끼지를 못하실껍니다.

그리고 그러한 이유로 인터넷이 느려지는건

대단히 많은 양의 데이터가 오가는데 공유기가 느리거나 하는 경우에는 가능합니다. ( 패킷의 갯수가 많아지는것을 뜻합니다 )

------------------------------------------------------------------------------------------------
Life is in 다즐링

dgkim의 이미지

내부적으로 어떤 IP에서 출발한 것인지를 다 기억하는 방법을 사용합니다.

패킷이 하나 발생하면, 거기에는 패킷의 고유성을 확인하기 위한 정보가 있으며,

이것을 통해서 각각의 접속을 고유하게 확인할 수 있고,

공유기에서는 이런 각각의 접속을 다 기억하기 때문에,

동시에 접속이 이뤄지더라도, 각각의 접속으로 기억하고 처리합니다.

박영선의 이미지

대부분의 NAT 는 소스포트를 이용해서 출발지를 구분합니다.

그래서 소스자원 만큼 아이피를 사용할수있습니다.

^^;;

gyxor의 이미지

알려주신 내용은 잘 알겠습니다.

[root@localhost root]# route 
Kernel IP routing table 
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0 
127.0.0.0       *               255.0.0.0       U     0      0        0 lo 
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0 

위의 내용에서 마지막줄의

default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0 

첫째,
이 내용은 디폴트 게이트웨이가 192.168.1.1 이라는것으로.. 이해가 됩니다.
그런데 목적지가 default라는것은 아무 네트워크로나 다 갈 수 있다는 의미인가요?
만약 그렇다면 따로 목적지와 게이트웨이를 세분화해서 설정하는 이유는 무엇인지 궁금합니다.

둘째,
첫번째와 두번째의

192.168.1.0     *               255.255.255.0   U     0      0        0 eth0 
127.0.0.0       *               255.0.0.0       U     0      0        0 lo 

이것이 무엇을 의미하는것인지 잘 모르겠습니다
위 내용은 모두 최초설정인데요..
route del 192.168.1.0 dev eth0 등의 명령으로도 삭제는 안되더라구요..
ifconfig eth0 down으로 랜카드를 down시키면

192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
는 사라지고

127.0.0.0 * 255.0.0.0 U 0 0 0 lo
이것은 남았습니다.

192.168.1.0은 현재 랜카드의 아이피가 속한 c 클래스의 네트워크인데요..
127.0.0.0은 자기 자신 일테구요..
192.168.1.0 과 127.0.0.0(localhost) 가 게이트웨이도
설정되어있지 않으면서 목적지로 설정되어있는

이유를 잘모르겠습니다.

두가지 설명 부탁드립니다.

jailbird의 이미지

Destination이란 패킷의 목적지입니다. 패킷이 가야할 최종 목적지이죠. Gateway는 패킷이 목적지까지 가기 위해 거쳐야 하는 관문 또는 중간 목적지라고 할 수 있겠죠.

공유기 = 192.168.1.1
내컴 = 192.168.1.2
동생컴 =192.168.1.3
과 같은 식으로 내부 IP를 할당하였다면

1) 동생컴으로 가는 패킷은 목적지가 192.168.1.3이니 192.168.1.0/255.255.255.0 의 테이블에 따라 특정한 GW를 찾지 않고 보내집니다. 그냥 내부 네트웍에 흘려 보내는 거죠. 그럼 패킷을 보고 동생컴만이 자기한테 오는 패킷인 줄 알고 받아들입니다. 나머지 공유기나 다른 컴들은 이 패킷을 받아도 무시해 버리고 맙니다.

2) 127.0.0.0/255.0.0.0은 자기자신을 지정하는 네트워크 주소입니다. 이 줄 끝을 보면 eth0와 같은 이더넷 카드가 아닌 lo(loopback device)가 보입니다. 이더넷 카드가 없는 컴퓨터에서도 특정한 용도로 사용되는 경우가 있습니다. 그래서 이더넷 카드를 없애도 이것만은 남습니다.

3) 마지막줄을 보면 default라고 되어 있는데, 이는 1)이나 2)로 가는 패킷이 아닌 다른 모든 패킷에 대한 설정이라고 생각할 수 있습니다. 이런 모든 패킷들은 192.168.1.1로 가서 거기서 처분을 받으라는 이야기죠. 즉 kldp.org로 가는 패킷은 kldp.org의 ip로 가기 위해 관문인 GW로 보내집니다. 그리고는 GW는 그 최종 목적지가 자신이 아님을 알고 위에서와 같이 기록하고 변경해서 외부로 보냅니다. 이렇게 외부로 나간 패킷은 이제 다른 네트웍에서 돌아다니다가 목적지를 발견해서 도착하든지 또다른 라우터의 테이블을 통과해 다른 네트웍으로 빠져나가든지 합니다.

jailbird의 이미지

박영선 wrote:
대부분의 NAT 는 소스포트를 이용해서 출발지를 구분합니다.

그래서 소스자원 만큼 아이피를 사용할수있습니다.

그렇군요.. 그러면 S-NAT에서는
TCP header의 Source Port 와
IP header의 Source Address를 자신의 것으로 치환하고 그 기록을 저장한 다음
외부로 내보내는 것인가요?

gyxor의 이미지

Jailbird wrote:

공유기 = 192.168.1.1
내컴 = 192.168.1.2
동생컴 =192.168.1.3
과 같은 식으로 내부 IP를 할당하였다면

1) 동생컴으로 가는 패킷은 목적지가 192.168.1.3이니 192.168.1.0/255.255.255.0 의 테이블에 따라 특정한 GW를 찾지 않고 보내집니다. 그냥 내부 네트웍에 흘려 보내는 거죠. 그럼 패킷을 보고 동생컴만이 자기한테 오는 패킷인 줄 알고 받아들입니다. 나머지 공유기나 다른 컴들은 이 패킷을 받아도 무시해 버리고 맙니다.

192.168.1.0 * 255.255.255.0 U 0 0 0 eth0

이게 있는 이유를 이제 알겠습니다.
그래서 게이트웨이를 제거하고서도 컴퓨터간의 네트워크는 가능한거군요..
tracert를 실행해본 결과를 통해서도 내부에서만 교류함을 알수 있었습니다.

Jailbird wrote:

3) 마지막줄을 보면 default라고 되어 있는데, 이는 1)이나 2)로 가는 패킷이 아닌 다른 모든 패킷에 대한 설정이라고 생각할 수 있습니다. 이런 모든 패킷들은 192.168.1.1로 가서 거기서 처분을 받으라는 이야기죠. 즉 kldp.org로 가는 패킷은 kldp.org의 ip로 가기 위해 관문인 GW로 보내집니다. 그리고는 GW는 그 최종 목적지가 자신이 아님을 알고 위에서와 같이 기록하고 변경해서 외부로 보냅니다. 이렇게 외부로 나간 패킷은 이제 다른 네트웍에서 돌아다니다가 목적지를 발견해서 도착하든지 또다른 라우터의 테이블을 통과해 다른 네트웍으로 빠져나가든지 합니다.

위 내용도 잘 알겠습니다.
그런데
한가지 문제점이 생겼습니다.
학교전산실에서 셋팅을 알아보니 허브
165.246.40.122 - 165.246.40.137 의 ip를 사용하고 있습니다.
게이트웨이는 165.246.40.1 이었습니다.
그런데 이값을 바꿔봤습니다.
그런데
165.246.40.1 또는 .2 .3 으로 바꿔도 정상접속이 되었습니다.
그 외의 값으로 하면 연결이 안되었습니다.
이렇게 게이트 웨이를 바꿔도 접속이 잘 되는 이유가
무엇인지 모르겠습니다.
공유기의 경우
설정화면에 접속해서 Lan 게이트웨이 등을 바꿀수가 있었습니다.
허브도 이런것이 있나요 ? ?
허브의 Lan게이트 웨이가 .1 .2 .3 세가지라면..
이게 맞다면.. 좀 이해가 될거 같은데요..

왜 그런것인지.. 모르겠습니다.

설명부탁드립니다.

jailbird의 이미지

gyxor wrote:

165.246.40.1 또는 .2 .3 으로 바꿔도 정상접속이 되었습니다.
그 외의 값으로 하면 연결이 안되었습니다.
이렇게 게이트 웨이를 바꿔도 접속이 잘 되는 이유가
무엇인지 모르겠습니다.

GW의 역할을 하는 라우터를 1개만 사용하는 network도 많지만, 전산실과 같은 큰 network에서는 필요에 따라 여러개의 라우터를 사용하는 것으로 알고 있습니다. 추측입니다만 님의 경우는 3개의 라우터를 사용하는 서브넷에서 그 게이트웨이를 변경한 실험을 하신 듯하군요.

gyxor wrote:

공유기의 경우
설정화면에 접속해서 Lan 게이트웨이 등을 바꿀수가 있었습니다.
허브도 이런것이 있나요 ? ?
허브의 Lan게이트 웨이가 .1 .2 .3 세가지라면..
이게 맞다면.. 좀 이해가 될거 같은데요..

왜 그런것인지.. 모르겠습니다.

설명부탁드립니다.

외형상의 유사성 때문에 공유기와 허브를 혼동하신 듯한데, 공유기나 라우터는 랜카드가 여러개 달린 작은 리눅스 컴퓨터로 생각하셔도 크게 틀리지는 않을 듯합니다. 반면 허브는 단순한 배선장치로 알고 있습니다. 하나의 전화선에서 병렬로 연결하여 여러대의 전화를 사용할 수 있듯이 하나의 랜선에 여러가닥의 랜선을 병렬로 연결하여 사용할 수 있게끔 해주는 장치가 허브입니다. 그래서 보통 허브에는 IP가 할당되지 않습니다.

gyxor의 이미지

허브에는 IP가 없군요.. ^^;

몇가지 궁금한 사항이 있습니다...
첫째,
라우터가 3개인 네트워크는 어떻게 구성이 되는지 모르겠습니다.

   
                                   [외부]
                                     +
                                     +
                      ++++++++++++++++++++++++++++++++
                      +              +               +
                 [라우터1]         [라우터2]        [라우터3]  
                      +              +               +      
                      ++++++++++++++++++++++++++++++++
                                     +
                                     +
                                 [네트워크]                                                        
             ... (165.246.40.133),(165.246.40.134)...

위와 같이 구성이 되는것인가요?
그렇다면..
대부분의 컴퓨터에선 게이트웨이가 .1로 구성이 되어있는데요..
그럼 .2 와 .3인 라우터2와 3은 무용지물이 아닌가요?
설명부탁드립니다.

둘째,
165.246.40.133인 컴퓨터에서 게이트웨이를 165.246.40.134로 지정했습니다.
(165.246.40.134인 컴퓨터는 게이트웨이가 165.246.40.1입니다.)
그렇다면 .133에서 접속을 시도하면 .134를 거쳐서 그것의 게이트웨이인
.1로 나가서 외부로 접속이 되어야 하지 않나요?
실제로는 연결이 안됐습니다.
왜 그런것인지 잘 모르겠습니다.

2가지 설명부탁드립니다.

jailbird의 이미지

gyxor wrote:
첫째,
라우터가 3개인 네트워크는 어떻게 구성이 되는지 모르겠습니다.

          [Internet]
            |
            |
           [A]                   [B]
            |                     |
            |                     |
[C]-------[Hub]-------[D]-------[Hub]-------[E]
            |                     |
            |                     |
           [F]                   [G]
            |
            |
[H]-------[Hub]-------[I]
            |
            |
           [J]

상상의 모식도를 한 번 그려 보았습니다. 이 그림에서는 총 3개의 Subnet이 있습니다. 1){ACDF}, 2){BDEG}, 3){FHIJ}가 그것입니다. 각 subnet 안의 각각의 컴퓨터들은 서로 직접 통신할 수 있습니다. 반면 서로 다른 subnet에 있는 컴퓨터들이 통신하기 위해서는 라우터를 거쳐야 합니다. 이 그림에서는 라우터의 역할을 하는 장치가 [A][D][F] 총 3개 있군요. 그리고 이들 모두가 1){ACDF}subnet에 포함되어 있네요. [A]는 인터넷과의 연결을, [D]는 2)번 Subnet과의 연결을 [F]는 3)번 Subnet과의 연결을 담당하고요.

gyxor wrote:

둘째,
165.246.40.133인 컴퓨터에서 게이트웨이를 165.246.40.134로 지정했습니다.
(165.246.40.134인 컴퓨터는 게이트웨이가 165.246.40.1입니다.)
그렇다면 .133에서 접속을 시도하면 .134를 거쳐서 그것의 게이트웨이인
.1로 나가서 외부로 접속이 되어야 하지 않나요?
실제로는 연결이 안됐습니다.
왜 그런것인지 잘 모르겠습니다.

말씀하신 경우는 [J]에서 인터넷으로 나가는 패킷을 [H]로 보낸 상황과 유사하다고 생각되는군요. 말씀하신 상황이 가능하도록 [H]를 설정할 수도 있겠지만, [J]에서 [F]로 직접 통신할 수 있기 때문에, 그러한 설정은 바람직하지 않다고 생각합니다. 오히려 한번만 허브를 통과하면 될 상황을 2번씩 통과하도록 하게 하니 네트워크 소통량만 증가시키는 꼴이 되겠지요. [H]와 같은 입장에 있는 대개의 워크스테이션에서는 이러한 설정을 할 필요도 없고, 설정을 해서 손해만 보는 꼴이니 설정을 안해두게 됩니다.

ps. Thread와 관련해서
이 Thread의 첫 타래는 "[네트워크] IP공유기의 내부 IP를 실제 IP에 매칭시키는 NAT기능"이었습니다. 그런데, 지금의 이야기는 NAT라기 보다는 라우팅이 주축이 되는군요. 게시물들이 일관된 주제로 연결되는 것이 검색을 하거나 글을 읽고 정리할 때도 훨씬 더 유용하지 않을까요? 분명한 주제를 밝히고 거기에 해당하는 질문/답변이 이어져 있을 때 저처럼 취미로 컴퓨터를 들여다보는 사람들 외에도 보다 전문적 지식을 가지고 있는 많은 이들의 관심과 참여를 얻을 수 있다고 생각합니다.
저는 이 thread에 참여하면서 나름대로 NAT에 대한 이야기가 좀 더 계속되었으면 하는 바램을 가지고 있습니다. 박영선님이 짧게 언급한 2줄의 이야기가 NAT를 이해하는데 많은 도움이 되었으니까요. 그런데 이후의 논의는 라우팅을 주제로 옮겨졌고, 이야기의 관심사가 변경되었습니다. 그래서 예전의 주제를 보고 들어온 사람들은 관심사와 다른 이야기이니 지나쳐버리기 십상인 상황이 되지 않았나 싶습니다.
이야기를 끌어나가는 사람의 입장에서나, 그 이야기에 참여하여 같이 이야기하는 사람의 입장에서나, 지나가면서 그 이야기를 읽고 어떤 이야기인지 구경만 하는 사람의 입장에서나 어느 모로 보더라도 주제가 통일되는 상황이 가장 좋으리라고 생각합니다. 그리고, 중간 중간에 주제에서 멀어지는 이야기는 새로운 thread를 열어서 이어나가는 것이 어떨까요?

dgkim의 이미지

gyxor wrote:
허브에는 IP가 없군요.. ^^;

몇가지 궁금한 사항이 있습니다...
첫째,
라우터가 3개인 네트워크는 어떻게 구성이 되는지 모르겠습니다.

   
                                   [외부]
                                     +
                                     +
                      ++++++++++++++++++++++++++++++++
                      +              +               +
                 [라우터1]         [라우터2]        [라우터3]  
                      +              +               +      
                      ++++++++++++++++++++++++++++++++
                                     +
                                     +
                                 [네트워크]                                                        
             ... (165.246.40.133),(165.246.40.134)...

위와 같이 구성이 되는것인가요?
그렇다면..
대부분의 컴퓨터에선 게이트웨이가 .1로 구성이 되어있는데요..
그럼 .2 와 .3인 라우터2와 3은 무용지물이 아닌가요?
설명부탁드립니다.

둘째,
165.246.40.133인 컴퓨터에서 게이트웨이를 165.246.40.134로 지정했습니다.
(165.246.40.134인 컴퓨터는 게이트웨이가 165.246.40.1입니다.)
그렇다면 .133에서 접속을 시도하면 .134를 거쳐서 그것의 게이트웨이인
.1로 나가서 외부로 접속이 되어야 하지 않나요?
실제로는 연결이 안됐습니다.
왜 그런것인지 잘 모르겠습니다.

2가지 설명부탁드립니다.

먼저 네트워크에서 게이트웨이가 3개인 환경이전에 2개인 환경을 그려보겠습니다.

 Internet
     |
+----+----+     +---------+ a.b.d.1
| Router1 |     | Router2 +-----------+
+----+----+     +----+----+           |
     |a.b.c.1        |a.b.c.2         |
     |               |                |
+- a.b.c.0/255.255.255.0 --------+  +-+- a.b.d.0/255.255.255.0 --+
|                                |  |                            |
|            PC (a.b.c.2)        |  |           PC (a.b.d.2)     |
|                                |  |                            |
+--------------------------------+  +----------------------------+

이 환경에서는 게이트웨이가 a.b.c.1인것이 정상이지만,

a.b.c.2를 설정하더라도 a.b.c.1로 넘어가서 인터넷이 됩니다.

그리고 그걸 확인하는 방법은

윈도우에서는 다음명령으로 확인할 수 있습니다.

tracert -d IP주소

다음으로 PC를 게이트웨이로 했을 때 인터넷이 되지 않는 것은

PC에서는 받은 패킷을 전달하지 않기 때문입니다.

리눅스에서는 커널옵션에서 패킷을 포워드하게 하는 옵션이 있는데,

이걸 사용하면 라우팅(?)을 하게 됩니다.

gyxor의 이미지

원래는 Nat에 한정되어있던 질문이었는데요..
제가 확장을 너무 많이 시킨것 같아서.. 스레드의 초점을 흐리게한점 죄송합니다.
뒤늦게 나마 분리해보려고 생각해봤지만 이미 늦은거 같아서 그냥 제목을 바꾸고 두가지 내용으로 다뤄야..할것 같습니다. 다음부턴 주의 하겠습니다.

dgkim wrote:

그리고 그걸 확인하는 방법은

윈도우에서는 다음명령으로 확인할 수 있습니다.

tracert -d IP주소

학교전산실 컴퓨터에 원격접속해서 Remote Administrator라는 프로그램으로
원격접속해서 게이트웨이를 .1 .2 .3등으로 바꾼후에
tracert를 해서 경로가 어떻게 달라지는지 알아보려 하던 중에..
게이트웨이를 .4로 했을경우 연결이 끊기는것을 재확인 하기 위해 값을
바꾸고 저장하는 순간 원격접속이 끊기 더군요.... T.T

후에라도..이것만 확인하면 좀 이해가 될거 같습니다.

dgkim wrote:

다음으로 PC를 게이트웨이로 했을 때 인터넷이 되지 않는 것은

PC에서는 받은 패킷을 전달하지 않기 때문입니다.

리눅스에서는 커널옵션에서 패킷을 포워드하게 하는 옵션이 있는데,

이걸 사용하면 라우팅(?)을 하게 됩니다.

패킷포워딩이 기능이 없어서 컴퓨터를 게이트웨이로 잡았을때 인터넷이 안되었군요.. 답변감사합니다.

dgkim wrote:

     |
+----+----+     +---------+ a.b.d.1
| Router1 |     | Router2 +-----------+
+----+----+     +----+----+           |
     |a.b.c.1        |a.b.c.2         |
     |               |                |
+- a.b.c.0/255.255.255.0 --------+  +-+- a.b.d.0/255.255.255.0 --+
|                                |  |                            |
|            PC (a.b.c.2)        |  |           PC (a.b.d.2)     |
|                                |  |                            |
+--------------------------------+  +----------------------------+

이 환경에서는 게이트웨이가 a.b.c.1인것이 정상이지만,

a.b.c.2를 설정하더라도 a.b.c.1로 넘어가서 인터넷이 됩니다.

그런데 위 그림에서..
라우터2의 경우엔
wan 게이트웨이 a.b.c.2 와
lan 게이트웨이 a.b.d.1 두가지가 설정되어있습니다.
첫째,
PC (a.b.d.2) 컴퓨터의 게이트웨이를 a.b.c.2로 설정해도 접속이 가능한가요?
a.b.d.1로 설정해야하는것 아닌가요?
(공유기를 a/s보내서 확인은 해보지 못했습니다.)
둘째,
또한
PC (a.b.d.2)에서 출발해서 라우터2를 거쳐서
네크워크(a.b.c.0/255.255.255.0)에 도착한 경우에..
이 네트워크의 허브에 바로 들어가서 라우터1로 들어간다면 이해가 되는데요..
그러려면 wan 게이트웨이 a.b.c.2가 a.b.c.1이어야 할거 같은데요..
그림상으로 보면
네크워크(a.b.c.0/255.255.255.0) 중에 어느 한 컴퓨터 (a.b.c.2)로
들어가는것 같습니다.
이 경우에 ..
컴퓨터(a.b.c.2)가 패킷을 라우터1로 전달해주는 기능을 가지고 있다면 저런 구성이 가능한것인가요?

셋째,
위의 Jailbird 님의 글중에..

Jailbird wrote:

그렇군요.. 그러면 S-NAT에서는
TCP header의 Source Port 와
IP header의 Source Address를 자신의 것으로 치환하고 그 기록을 저장한 다음
외부로 내보내는 것인가요?

위 내용에서 소스어드레스는 할당된 ip 로 알고있습니다.
그런데 소스포트에서 포트는 공유기나 허브의 포트를 말하는것인가요?
그래서 ip가 치환될때 PC랜카드의 포트값을 공유기에서 자신의 포트로 치환되어진다는 것인가요?
이게 맞다면..
darkblue99 wrote:

그리고 그냥 보내면 안되니까.. NAT table에 기록해 둡니다.

에서 말씀하신 내용이 맞는것이 아닌가요..?

세가지 답변부탁드립니다.

dgkim의 이미지

우선 제 그림에 대해서 변명을 좀 하겠습니다.

제 그림에서 PC가 그려진 박스PC를 가리키는 것이 아니며,

(구름으로 그렸으면.....)을 표현한 것입니다.
(박스를 좀더 넓게 그린 이유가 그것이죠.., 구름으로 그리긴 뭣하고...)

좀더 자세하게 그린다면..

박스는 허브가 될 것이고

PC는 박스 밑에 그려지면 될테죠..

그래서 Router2의 Default Route는 Router1이 됩니다.

그리고 a.b.d.2는 게이트웨이가 당연히 a.b.d.1이며, a.b.c.2는 될 수가 없는데,,

이유는 당연히 자신의 네트워크가 아니기 때문에 안 됩니다.
(논리적으로 생각했을 때 게이트웨이는 자신의 망에 있어야 하기 때문에)

gyxor의 이미지

dgkim wrote:

박스는 허브가 될 것이고
PC는 박스 밑에 그려지면 될테죠..

박스가 허브라면 라우터2의 wan게이트는 a.b.c.2 아니라
라우터1의 lan게이트웨이값인 a.b.c.1이 되어야하는것 아닌가요?
답변부탁드립니다.
dgkim의 이미지

Router2의 라우팅테이블에서는 게이트웨이가 다음과 같겠죠..

[dgkim@router2 dgkim]$ netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
a.b.c.0         0.0.0.0         255.255.255.0   U        40 0          0 eth0
a.b.d.0         0.0.0.0         255.255.255.0   U        40 0          0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U        40 0          0 lo
0.0.0.0         a.b.c.1         0.0.0.0         UG       40 0          0 eth0
[dgkim@router2 dgkim]$

그리고 참고로 Router1의 경우는 다음과 같을 것이고

[dgkim@router1 dgkim]$ netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
x.y.z.0         0.0.0.0         255.255.255.252 U        40 0          0 eth0
a.b.c.0         0.0.0.0         255.255.255.0   U        40 0          0 eth1
a.b.d.0         a.b.c.2         255.255.255.0   UG       40 0          0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U        40 0          0 lo
0.0.0.0         x.y.z.1         0.0.0.0         UG       40 0          0 eth0
[dgkim@router1 dgkim]$

또 PC(a.b.c.2)는 다음과 같겠죠?

[dgkim@host2 dgkim]$ netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
a.b.c.0         0.0.0.0         255.255.255.0   U        40 0          0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U        40 0          0 lo
0.0.0.0         a.b.c.1         0.0.0.0         UG       40 0          0 eth0
[dgkim@host2 dgkim]$
gyxor의 이미지

[dgkim@router1 dgkim]$ netstat -nr 
Kernel IP routing table 
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface 
x.y.z.0         0.0.0.0         255.255.255.252 U        40 0          0 eth0 
a.b.c.0         0.0.0.0         255.255.255.0   U        40 0          0 eth1 
a.b.d.0         a.b.c.2         255.255.255.0   UG       40 0          0 eth1 
127.0.0.0       0.0.0.0         255.0.0.0       U        40 0          0 lo 
0.0.0.0         x.y.z.1         0.0.0.0         UG       40 0          0 eth0 
[dgkim@router1 dgkim]$

위 내용을 보고서 알았습니다.
네트워크a.b.c.0에서 네트워크a.b.d.0로 갈때는..
라우터2의 wan게이트웨이인.. a.b.c.2 를 거치는군요..
만약에 route table에서

a.b.d.0         a.b.c.2         255.255.255.0   UG       40 0          0 eth1 

첫째,
위 설정을 안해주면
네트워크a.b.d.0 와 네트워크a.b.c.0 는 서로간에 연결이 안되나요?

둘째,

x.y.z.0         0.0.0.0         255.255.255.252 U        40 0          0 eth0 

이것은 그림상으로 표현하지 않은 부분을 표현한것인가요?
서브넷마스크가 255.255.255.252라고 한것은 그냥 임의설정인가요?
좀 이해가 안됩니다.
설명부탁드립니다.

학교 전산실에서..
165.246.40.122부터 165.246.40.137까지의 아이피를 사용하고있습니다.
그중 한 컴퓨터에서 테스트를 해봤습니다.

게이트웨이를 초기값인.. 165.246.40.1 로 셋팅한 상태에서..

C:\Documents and Settings\SYSTEM9>tracert www.yahoo.co.kr

Tracing route to yahoo.co.kr [202.43.214.151]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  165.246.40.1
  2    <1 ms    <1 ms    <1 ms  165.246.255.193
  3    <1 ms    <1 ms    <1 ms  165.246.255.66
  4     2 ms     2 ms     2 ms  165.246.255.74

게이트웨이를 165.246.40.2 으로 셋팅한 상태에서..

C:\Documents and Settings\SYSTEM9>tracert www.yahoo.co.kr

Tracing route to yahoo.co.kr [202.43.214.151]
over a maximum of 30 hops:

  1     1 ms    <1 ms    <1 ms  165.246.40.2
  2     1 ms     1 ms     1 ms  165.246.40.1
  3     1 ms     1 ms     1 ms  165.246.255.193
  4     1 ms     1 ms     1 ms  165.246.255.66
  5     2 ms     2 ms     2 ms  165.246.255.74

게이트웨이를 165.246.40.3 으로 셋팅한 상태에서..

C:\Documents and Settings\SYSTEM9>tracert www.yahoo.co.kr

Tracing route to yahoo.co.kr [202.43.214.151]
over a maximum of 30 hops:

  1     1 ms     1 ms    <1 ms  165.246.40.3
  2     1 ms     1 ms     1 ms  165.246.40.1
  3     1 ms     1 ms     1 ms  165.246.255.193
  4     1 ms     1 ms     1 ms  165.246.255.66
  5     3 ms     2 ms     2 ms  165.246.255.74

위 내용을 살펴보면 게이트웨이를
.2 또는 .3을 거쳐서 .1로 가는것도 가능했고
곧장 .1을 거쳐서 가능경우도 가능했습니다.

         [Internet] 
            | 
            | 
           [A]                   [B] 
            |                     | 
            |                     | 
[C]-------[Hub]-------[D]-------[Hub]-------[E] 
            |                     | 
            |                     | 
           [F]                   [G] 
            | 
            | 
[H]-------[Hub]-------[I] 
            | 
            | 
           [J] 

위에서 처럼..이런식이 될거 같은데요..
라우터 A의 LAN게이트웨이가 .1이고
라우터 D가 LAN게이트웨이가 .2이고
라우터 F가 LAN게이트웨이가 .3으로

     | 
+----+----+     +---------+ a.b.d.1 
| Router1 |     | Router2 +-----------+ 
+----+----+     +----+----+           | 
     |a.b.c.1        |a.b.c.2         | 
     |               |                | 
+- a.b.c.0/255.255.255.0 --------+  +-+- a.b.d.0/255.255.255.0 --+ 
|                                |  |                            | 
|            PC (a.b.c.2)        |  |           PC (a.b.d.2)     | 
|                                |  |                            | 
+--------------------------------+  +----------------------------+

셋째,
그렇다면....
위 그림에서
PC(a.b.d.2)의 게이트웨이를 a.b.d.1 이 아니라
a.b.c.1 로 셋팅해도 무관한가요?

글이 좀 길어졌습니다...
3가지 답변부탁드립니다.

dgkim의 이미지

첫번째 질문의 경우

a.b.d.0 a.b.c.2 255.255.255.0 UG 40 0 0 eth1

위의 라우팅 테이블이 Router1에 있어야만, Router1에서 Router2로 전달해 a.b.d.0으로 보낼 수 있으며,

있을 때에, 라우팅 경로를 확인한다면,

PC1 (a.b.c.2)에서 출발하여 PC2 (a.b.d.2)로 도착..

PC1    : a.b.c.0/255.255.255.0 네트워크에 속하지 않으므로
PC1    : a.b.c.1로 보냄

Router1: a.b.d.2를 자신이 가진 라우팅 테이블에서 찾음
Router1: a.b.d.0/255.255.255.0 네트워크가 a.b.c.2에 연결되어 있음을 확인
Router1: a.b.c.2로 보냄

Router2: a.b.d.2를 자신이 가진 라우팅 테이브에서 찾음
Router2: a.b.d.0/255.255.255.0 네트워크가 자신에 연결되어 있음을 확인
Router2: a.b.d.2로 패킷을 발송

PC2    : 받음

그러므로 PC1에서 출발하여 Router1에 도착한 패킷은 위의 라우팅 테이블이 없으면,

인터넷으로 내보내게 되며(0.0.0.0/0.0.0.0) 당연히 전달할 수 없게 됩니다.

마찬가지로.. 인터넷에서 들어오는 패킷도 Router1까지 도착한 후...

a.b.d.0으로 도달하지 못하고 루핑(Looping)을 돌게 됩니다.

그리고 x.y.z.0은 임의로 표현한 것입니다.
WAN구간이기에 그냥 그렇게 작은 서브넷으로 적은 것이죠..

그리고 a.b.d.2에선 당연히 a.b.c.2를 게이트웨이로 잡을 수 없으며,

a.b.d.2에서 x.y.z.1을 게이트웨이로 설정할 수 없는 것과 같은 이치입니다.

a.b.d.2에서 a.b.c.2를 게이트웨이로 한다면,

a.b.c.2의 하드웨어 주소를 찾을 수 없기 때문에 도달할 수 없게 됩니다.
(ARP로 찾을 수 없죠...)

Quote:
a.b.d.2 曰 "야들아 a.b.c.2사용하는 놈 맥어드레스 불러봐라"
네트워크 曰 "Null"
a.b.d.2 또 曰 "야들아 a.b.c.2사용하는 놈 맥어드레스 불러봐라"
네트워크 曰 "Null"
a.b.d.2 또 曰 "야들아 a.b.c.2사용하는 놈 맥어드레스 불러봐라"
네트워크 曰 "Null"
김덕곤 曰 "죽어라고 불러봐라... 누가 대답하나.."

(가상 시나리오이며,... 논리적으로 불가능하기 때문에 안되는 것입니다... 하지만 윈도우의 구현상 가능할 수는 있습니다. Idiot Windows)
jailbird의 이미지

저같은 아마추어가 몇시간씩 답변을 하려고 끄적이다가..
방금 컴터가 다운되어서 재부팅해보니(파워가 고물이라)
일사천리. 일목요연하게 정리되어 버렸군요.
놀라울 따름입니다.

저는 지나가는 길에 님이 질문하셨던 "포트"만 잠깐 언급하겠습니다.
어디선가 포트를 "프로그램들의 접속지점"이라고 언급했던 것이 기억나는데, 아래와 같은 예를 들면 이해하시기 쉬울 듯합니다.
KLDP에서 FTP 서버를 가동하면 ftpd 데몬이 21번 포트에서 대기합니다.
이 데몬은 KLDP의 IP로 들어오는 패킷 중에 21번 포트를 찾아가는 패킷들만 골라내어 ftp 서버와 연결시켜 줍니다. 동시에 똑같이 ftpd 데몬을 21번 포트에 대기시켜서 또다른 사용자의 접속을 기다립니다. 웹서버(80번 포트)나 텔넷 서버(21번 포트) 뿐 아니라 네트워크를 통한 많은 프로그램들이 이렇게 포트를 사용하여 서로 접속하고 서비스합니다. /etc/services 파일을 열어보면 각각의 프로그램들이 어떤 포트에서 기다리는지 볼 수 있습니다. 한가지 덧붙이자면 이 스레드를 통해 알게된 것인데, 라우팅을 할 때는 포트 중요하지 않지만, NAT을 할 때는 포트가 중요한 역할을 한다는 것입니다. 그런데 실제로는 어떤 변화가 일어나는 지 몰라 저도 새로 스레드를 열어 주시하고 있는 형편입니다.. 아직 답변이 없네요 ㅠ.ㅠ;

gyxor의 이미지

대부분이 해결이 되었습니다.
그런데..

C:\Documents and Settings\SYSTEM9>tracert www.yahoo.co.kr 

Tracing route to yahoo.co.kr [202.43.214.151] 
over a maximum of 30 hops: 

  1     1 ms     1 ms    <1 ms  165.246.40.3 
  2     1 ms     1 ms     1 ms  165.246.40.1 
  3     1 ms     1 ms     1 ms  165.246.255.193 
  4     1 ms     1 ms     1 ms  165.246.255.66 
  5     3 ms     2 ms     2 ms  165.246.255.74 

위의 경우는 어떻게 설명이 될수 있나요?

라우터가 3대라면..
어떻게 게이트웨이가

165.246.40.1
165.246.40.2
165.246.40.3

이렇게 3개가 될수있나요?

넷마스크가 255.255.255.0 이니까
네트워크 호스트부분의 값이 달라야 하는것 아닌가요?

165.246.40.1
165.246.41.1
165.246.42.1
이런 식으로 되어야 하는것 아닌가요?
위에서도 네트워크가
a.b.c.0 a.b.d.0
이런식으로 달랐는데요..

아니면 라우터는 실제로 한대인데..
게이트웨이만 3개로 운용하는것도 가능한가요?
아니면.. 포워딩ip를 한건지..
도무지 이해가 안됩니다.
네트워크 구조가 어떻게 되는것인지 궁금합니다.

답변부탁드립니다.

jailbird의 이미지

           [X] -->Internet
            V 
            | 
            | 
            ^
           [A]                    B 
            v                     v 
            |                     | 
            |                     | 
 C>---------+--------<[D]>--------+---------<E 
            |                     | 
            |                     | 
            ^                     ^ 
           [F]                    G  
            v 
            | 
            | 
 H>---------+---------<I  
            | 
            | 
            ^ 
            J  

<,>,^,v 를 모두 이더넷카드라고 생각하면 각각의 IP를
Av : 165.246.40.1 /255.255.255.0
D< : 165.246.40.2 /255.255.255.0
F^ : 165.246.40.3 /255.255.255.0
C> : 165.246.40.4 /255.255.255.0
이렇게 할당하면 되겠죠?
A-C-D-F로 이루어진 165.246.40.0서브넷에서는 서로를 찾을 수 있어야 하니까요.

그 아래의 F-H-I-J로 이루어진 서브넷을 임의로 설정해볼까요?
Fv : 165.246.41.1 /255.255.255.0
H> : 165.246.41.2 /255.255.255.0
I< : 165.246.41.3 /255.255.255.0
J^ : 165.246.41.4 /255.255.255.0
역시 동일한 165.246.41.0서브넷에서는 서로를 찾을 수 있어야 하니까요.

앞에서 a.b.c.0, a.b.d.0으로 표시한 건 구체적인 호스트가 아니라 동일 서브넷 자체를 지칭하는 것으로 생각되는군요.
보통 .0으로 끝나는 주소는 호스트가 아니라 네트워크를 의미합니다.

위의 경우는 .3 을 거쳐 .1로 갔다가 외부로 나가네요. 아마도 C 에서 야후로 패킷을 보내려고 하는데 C의 default GW를 [F]^로 설정한 경우겠네요.
그럼 [F]는 패킷을 받아서 검사해보고 패킷의 최종 목적지가 165.246.40.0 네트웍에도 없고 165.246.41.0 네트웍에도 없으니 다른 모든 패킷을 처리하는 default로 설정된 [A]v으로 보내겠지요.
이후 패킷이 빠져나간거구요.

gyxor의 이미지

Jailbird wrote:

아마도 C 에서 야후로 패킷을 보내려고 하는데 C의 default GW를 [F]^로 설정한 경우겠네요.
그럼 [F]는 패킷을 받아서 검사해보고 패킷의 최종 목적지가 165.246.40.0 네트웍에도 없고 165.246.41.0 네트웍에도 없으니 다른 모든 패킷을 처리하는 default로 설정된 [A]v으로 보내겠지요.
이후 패킷이 빠져나간거구요.

그렇군요...
이런 경우라면 게이트웨이가
.1 .2 .3 으로도 연결된 이유가 이해가 됩니다.
정말 고맙습니다 ^^

gyxor의 이미지

Jailbird wrote:
           [X] -->Internet
            V 
            | 
            | 
            ^
           [A]                    B 
            v                     v 
            |                     | 
            |                     | 
 C>---------+--------<[D]>--------+---------<E 
            |                     | 
            |                     | 
            ^                     ^ 
           [F]                    G  
            v 
            | 
            | 
 H>---------+---------<I  
            | 
            | 
            ^ 
            J  

<,>,^,v 를 모두 이더넷카드라고 생각하면 각각의 IP를
Av : 165.246.40.1 /255.255.255.0
D< : 165.246.40.2 /255.255.255.0
F^ : 165.246.40.3 /255.255.255.0
C> : 165.246.40.4 /255.255.255.0
이렇게 할당하면 되겠죠?
A-C-D-F로 이루어진 165.246.40.0서브넷에서는 서로를 찾을 수 있어야 하니까요.

그 아래의 F-H-I-J로 이루어진 서브넷을 임의로 설정해볼까요?
Fv : 165.246.41.1 /255.255.255.0
H> : 165.246.41.2 /255.255.255.0
I< : 165.246.41.3 /255.255.255.0
J^ : 165.246.41.4 /255.255.255.0
역시 동일한 165.246.41.0서브넷에서는 서로를 찾을 수 있어야 하니까요.

앞에서 a.b.c.0, a.b.d.0으로 표시한 건 구체적인 호스트가 아니라 동일 서브넷 자체를 지칭하는 것으로 생각되는군요.
보통 .0으로 끝나는 주소는 호스트가 아니라 네트워크를 의미합니다.

위의 경우는 .3 을 거쳐 .1로 갔다가 외부로 나가네요. 아마도 C 에서 야후로 패킷을 보내려고 하는데 C의 default GW를 [F]^로 설정한 경우겠네요.
그럼 [F]는 패킷을 받아서 검사해보고 패킷의 최종 목적지가 165.246.40.0 네트웍에도 없고 165.246.41.0 네트웍에도 없으니 다른 모든 패킷을 처리하는 default로 설정된 [A]v으로 보내겠지요.
이후 패킷이 빠져나간거구요.

오늘 학교전산실고 같은 층의 lab실 선배님께 물어본 결과..
연구실의 아이피도 전산실과 동일한 c클래스 165.246.40.X 였습니다.
그러므로 위 그림에서..
C> 부분에 해당하는 곳을 전산실과 연구실에서 할당받고 있는거 같은데요..
궁금한 사항은 3가지 입니다.

첫째,
.2 와 .3 wan게이트웨이를 가지는 두개의 라우터
<[D]> 와
^
[F]
v
가 있습니가. 그런데..이 두 라우터가 필요한 이유가 ...

각각의 네트워크가 존재함에 따르는
[A] 라우터의 과부하를 막기위함은 아닐거 같은데요..
어짜피 게이트웨이가 165.246.40.1인
^
[A]
v 이 라우터를 거쳐서 외부인터넷으로 나가야 하기 때문에요..

또한 거리가 멀어서 리피터 기능이 필요하다고 해도
그 위치에 스위치가 있으면 되는것 아닌가요?
ip할당도 [A]라우터에서 좀더 호스트수를 늘리면 될거 같은데요..
굳이 라우터를 사용해야하는 이유를 모르겠습니다.

설명부탁드립니다.

둘째,
라우터설정을 직접해보진 못했지만..
해본 선배의 말에 따르면 라우터설정에서 넷마스크등을 설정하고
ip범위를 잡아주면.. 연결된 컴퓨터에서 그 범위에 해당하는 아이피를
사용해야만 인터넷접속이 된다고 하더라구요..

그런데..
^
[A]
v 라우터( .1 ) 에서 네트워크(165.246.40.0)를 c클래스로 설정을 했습니다.
이 경우에 나머지 두개의 라우터에서는
각각의 내부 네트워크에 c클래스 보다 더 큰..b클래스등의 네트워크를 구성하는것이 가능한가요?

셋째,
만약에 범위설정을 임의대로 바꿔서 할당받지 않은 공인아이피범위를 설정하게 되면 또 실제로 컴퓨터에서 아이피를 셋팅해서 사용하게 되면(물론그러면 안되겠지만요 충돌이 날수도 있고..) 이론상으론 그렇게 셋팅하는것 자체는 가능한가요?

3가지 답변부탁드립니다.

dgkim의 이미지

다시 한번 정리해서 보면..

첫째, A라우터 아래에 호스트들이 모두 존재하면 될텐데,
왜 D와 F라우터를 두고 그 아래에 호스트를 두는가..

둘째, A라우터 아래에 다른 라우터가 존재할 때,
그 라우터에서 더 큰 네트워크 대역을 둘 수 있는가..

셋째, 라우터 아랫단에서 라우터에 설정되어 있지 않은 IP대역을 넣었을 때
사용이 가능한가...

첫번째에 대한 대답은 네트워크를 구분하는 이유에 대한 답변입니다.

모든 컴퓨터를 하나의 네트워크에 두면 가장 좋은 환경이 되겠지만.

이때 발생하는 문제가 좀 있습니다.

이것은 서브네팅을 하는 이유라는 것으로 지식(?) 검색을 해보시면 나올 것이며

간단하게 설명드리면,

많은 사람들이 한 방에서 말하는 것에 비유해서 생각하시면 됩니다.

여러사람이 떠들면 들리지 않죠.(물론 이더넷에서는 한 번에 한 사람만 말할 수 있습니다.)

그외에도 많은 이유로 서브네팅(네트워크 짜르기)를 합니다.

그리고 둘째, A라우터 아래의 D와 F라우터가 더 넓은 대역을 사용할 수 있는가..

물론 A라우터 아래에 A클래스의 네트워크도 들어갈 수 있습니다.

셋번째 질문은, 불가능합니다.

왜냐.. 우선 PC에서는 다른 대역의 IP주소를 가지고

어쩌고 저쩌고 해서 라우터로 패킷을 전달할 수 있습니다.
(패킷을 변조한다든지 여러가지 방법으로)

하지만.. 패킷이 돌아오질 못하죠..

그래서 접속(?)이란 것이 이뤄질 수 없습니다.

단방향의 통신이 가능한 것이라면 가능할 것입니다.

여담으로.. 네트워크 구성이 님이 계신곳 같이 이뤄질 수도 있지만..

보통의 경우 그림에서 C에 해당하는 PC는 두지 않는 경우가 많습니다.
(저 같으면 그렇게 하질 않죠.. 물론 그렇게 구성하실 분도 계시겠지만)

그래서 다시 그림을 그린다면..

                                      Internet
                                          |
                                 +--------+--------+
                                 | Backbone Router |
                                 |                 |
                                 |      eth 0      |
                                 +--------+--------+
                                          | a.b.c.1/255.255.255.240
         +================================+=============================+
         | a.b.c.2/255.255.255.240        | a.b.c.3/255.255.255.240     | a.b.c.4/255.255.255.240
+--------+--------+              +--------+--------+           +--------+--------+
|       eth 0     |              |      eth 0      |           |       eth 0     |
| WorkGrp Router  |              | WorkGrp Router  |           | WorkGrp Router  |
|       eth 1     |              |      eth 1      |           |       eth 1     |
+--------+--------+              +--------+--------+           +--------+--------+
         | a.b.x.1/255.255.255.0          | a.b.y.1/255.255.255.0       | a.b.z.1/255.255.255.0
  +------+------+                  +------+-------+              +------+------+
  |      |      |                  |      |       |              |      |      |
  PC1    PC2    PC3                PC4    PC5     PC6            PC7    PC8    PC9

위의 그림과 같이 라우터들이 연결된 네트워크가 따로 분리되죠..

하지만 저런 구성보단.. 요즘에는 라우터들이 L3 Switch로 교체된 환경이 되겠죠..

gyxor의 이미지

dgkim 씀:

                                      Internet
                                          |
                                 +--------+--------+
                                 | Backbone Router |
                                 |                 |
                                 |      eth 0      |
                                 +--------+--------+
                                          | a.b.c.1/255.255.255.240
         +================================+=============================+
         | a.b.c.2/255.255.255.240        | a.b.c.3/255.255.255.240     | a.b.c.4/255.255.255.240
+--------+--------+              +--------+--------+           +--------+--------+
|       eth 0     |              |      eth 0      |           |       eth 0     |
| WorkGrp Router  |              | WorkGrp Router  |           | WorkGrp Router  |
|       eth 1     |              |      eth 1      |           |       eth 1     |
+--------+--------+              +--------+--------+           +--------+--------+
         | a.b.x.1/255.255.255.0          | a.b.y.1/255.255.255.0       | a.b.z.1/255.255.255.0
  +------+------+                  +------+-------+              +------+------+
  |      |      |                  |      |       |              |      |      |
  PC1    PC2    PC3                PC4    PC5     PC6            PC7    PC8    PC9

라우터에 관한 궁금증이 거의다 해결이 되었습니다.
감사합니다.
그런데..
서브넷팅에 관한것을 찾아본 결과 대부분의 내용이 ip의 낭비를 막기위해
효율적 으로 나누어쓰는것 또 내부 네트워크가 큰 경우엔 콜리젼 도메인을 줄이기 위한것.. 뭐 이런정도인거 같은데요..

아무리 생각을 해봐도
위와같은 상황에서 라우터를 하위에 3개를 두는 이유를 모르겠습니다.
스위치허브로도 될거 같은데요..
상위라우터안의 네트워크를 라우터3개로 나누었더라도 모든 컴퓨터의 요청은
결과적으로는 상위라우터로 가게 되니까
상위 라우터에 부하가 걸리는양은 라우터3개를 쓰던지
스위치3개를 쓰던지 동일한것이 아닌가요?
(혹시 최초설치하신 분들이 잘모르고 ..실수로 그런것일까요?)
설명부탁드립니다.

박영선의 이미지

일반적으로 라우터는 네트웍을 구분하는데에, 스위치는 라우터 밑의 같은 네트웍을 구성하는데 사용됩니다.

그런데 여기서 같은네트웍안에 호스트가 여러개 들어가면 문제가 발생합니다.

보통 한 네트웍에는 200개 안쪽의 호스트를 두도록 권장합니다.

만약 라우터 하나밑에 600개의 호스트를 두어야 한다면, 200개짜리 네트웍 세개로 나눌수 있는거죠.

네트웍을 세개로 나눌때 예전같았으면 라우터로 나눴고, 요즘은 라우팅기능이있는 L3 스위치를 사용하는거죠.

^^;;

dgkim의 이미지

요즘의 발달한 네트워크 기술로 인해..

예전의 더미허브에서 발생하던 문제는 지금 없는 상태입니다.

즉 스위치를 사용하면, 아무리 많은 호스트가 있더라도,

콜리전도메인(즉, 충돌이 발생하는)이 존재하지 않죠..

그러니 스위치 밑에 많은 호스트들이 들어갈 수 있는 것은 사실이나..

제가 있는 곳에도 아주 미스티리어스한 설정이 있습니다.
(서브넷마스크가 255.255.252.0입니다. 즉 1024의 호스트들...)

하지만, 콜리전도메인과 같은 것 외에도 또다른 문제가 있을 수 있습니다.

저도 사실 많은 호스트들이 있을 때 문제가 발생하는 것을 본적이 없어서,

정확하게 딱 찝어서, 뭐가 문제가 발생할 것이란 것은 말씀드릴 수가 없네요..

저 같은 경우는 네트워크의 관리적인 측면에서 서브네팅을 사용합니다.

서브네팅도 약간 단점이 존재하긴 하지만,

전에 255.255.255.224, 255.255.255.240과 같이 서브네팅을 해서,

IP주소를 약간 낭비한 적이 있죠..
(C클래스 두개를 받은 상태에서 저렇게 많은 것을 버렸으니...)

박영선의 이미지

딱 집어서 말하면 브로드캐스팅이 가장 큰 문제죠...

만약에 전기가 나갔다 들어와서 천대의 호스트들이 동시에 arp패킷을 브로드캐스트한다면... ㅡㅡ;;

웰치아웜같은거도 한번 로컬네트웍에 들어오면 한방에 수백대를...

그 외에도 보안에도 많은 문제가 발생합니다.

호스트나 허브중 하나가 이상작동을 해서 전체네트웍을 마비시킬 확률도 높아질꺼구요...

^^;;

gyxor의 이미지

스위치대신에 라우터로 서브넷팅을 하는이유에 관해서..
보안적인 측면에 문제가 있다는것은 잘 알겠습니다.

그런데 브로드 캐스트도 문제가 될수있나요?
스위치와 라우터의 차이점에 관한 부분이 주 관점인데요..

박영선 wrote:

딱 집어서 말하면 브로드캐스팅이 가장 큰 문제죠...

만약에 전기가 나갔다 들어와서 천대의 호스트들이 동시에 arp패킷을 브로드캐스트한다면... ㅡㅡ;;

첫째,
스위치도 ip테이블을 가지고 있고.. 자신의 내부에 가지고 있으면 안쪽으로
보내고 없으면 게이트웨이로 보내는 기능을(라우터처럼) 하는것 아닌가요?
혹시 arp브로드캐스트는 무엇인가요? 일반 브로드캐스트와는 다른것인가요?
(arp테이블에 있는 주소들에 브로드캐스트를 요청하는것인지..)
왜 스위치를 안쓰고 라우터를 쓰는 이유가 되는지 잘 모르겠습니다.
설명부탁드립니다.

           [X] -->Internet 
            V 
            | 
            | 
            ^ 
           [A]                    B 
            v                     v 
            |                     | 
            |                     | 
 C>---------+--------<[D]>--------+---------<E 
            |                     | 
            |                     | 
            ^                     ^ 
           [F]                    G  
            v 
            | 
            | 
 H>---------+---------<I  
            | 
            | 
            ^ 
            J


dgkim wrote:
다시 한번 정리해서 보면..

그리고 둘째, A라우터 아래의 D와 F라우터가 더 넓은 대역을 사용할 수 있는가..

물론 A라우터 아래에 A클래스의 네트워크도 들어갈 수 있습니다.

아무리 생각을 해봐도 이해가 안됩니다.
A라우터에서 C클래스의 아이피를 할당
(네트워크 165.246.40.0 : 서브넷마스크 255.255.255.0)
했다고 가정했을때

D와 F 라우터에서 각각
(네트워크 165.246.40.1 : 서브넷마스크 255.255.255.128)
(네트워크 165.246.40.129 : 서브넷마스크 255.255.255.128)
이런식으로 C클래스의 반으로 나워서 서브넷팅하는것은 이해가 되는데요..

비록 하위 라우터에서 새롭게 서브넷팅을 하고 넷마스크를 바꾸지만..
모든 네트워크 범위는 상위 라우터에서 잡아놓은 범위 내에서만 가능한것이
아닌가요?
둘째,
하위 네트워크에 더 큰 네트워크를 어떻게 할당할 수 있는것인지 잘 모르겠습니다.

2가지 답변부탁드립니다.

박영선의 이미지

먼저 TCP/IP 책을 하나 사서 보시길 권해드리며...

대표적으로 ARP 브로드캐스팅을 얘기한거구요.

호스트가 열개인 네트웍에 비해 호스트가 100개인 네트웍은 다양한 브로드캐스트트래픽이 백배가 된다는게 중요합니다.

라우터로 네트웍을 나누면 브로드캐스트패킷이 그 네트웍안으로밖에 안뿌려집니다.

그리고 스위치가 라우팅을 하게되면 그건 이미 보통스위치가 아닌 L3 스위치가 되는거죠..

두번째질문은...

라우터는 중개만 해주는 기계이기 때문에 가능하다는겁니다.

같은 AS number의 아이피라면 가능합니다.

다만 그렇게 쓸 일이 거의 없다는거죠..

A나 B클래스면 무지무지 많은데 굳이 C클래스 하나 더받아서 라우터를 괴롭힐필요는 없겠죠...

^^;;

gyxor의 이미지

공부 더하겠습니다!
답변감사합니다~ ^^

익명 사용자의 이미지

집에 공유기를 사용해서 3대를 네트워크 해서 사용하는데요
혹시 저희 집외의 다른곳에서도 저흐집의 공유 드라이브가 잡히나요
괜히 불안해서요 답변 부탁드립니다.

mykimi@postown.net

만일 된다면 막는 방법도 부탁 드립니다.

futari의 이미지

이인우 wrote:
집에 공유기를 사용해서 3대를 네트워크 해서 사용하는데요
혹시 저희 집외의 다른곳에서도 저흐집의 공유 드라이브가 잡히나요
괜히 불안해서요 답변 부탁드립니다.

mykimi@postown.net

만일 된다면 막는 방법도 부탁 드립니다.

무선 공유기에 인증기능 없이 공유하고 계신거라면 옆집? 에서도 네트워크에 들어올 수 있습니다. 이 경우에는 네트워크 드라이브도 볼 수 있지요.

wep이라든지.. 무선 네트워크용 보안이 적용되어 있는지 살펴보세요.

유선 공유기라면 기본 설정으로 네트워크 드라이브가 열릴 일은 없을겁니다.

-------------------------
The universe is run by the complex interweaving of three elements: matter, energy, and enlightened self-interest.
- G'kar, Babylon 5

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.