CS(computer science)

[42 NetPractice] - 2 오류 모음(1/2) - error on gate ip - multiple interface match

ebang 2023. 2. 5. 23:00
반응형

 error on gate ip - multiple interface match 

 

 

그림을 보면, 민트색 칸에 OK와 KO가 섞여 있다.

현재 Goal 4~7이 안되고 있는 상황이다.

 

Goal 6,7은 foward way 보내는 것 자체가 안되고(H3-> internet) (H4->internet)

Goal 4,5는 reverse way로 돌아오는 경로가 되지 않고 있다. (H1 -> H4, H2->H3)

 

: H3, H4쪽에 문제가 있는 것으로 유추할 수 있다.  

 

지금부터 돌아가는 상황을 제대로 파악하면서 문제가 뭔지 알아내려고 한다. 

 

 

 

Goal 5가 안되는 문제를 살펴보자. 

H2 : Host two가  Host three(H3) 와 통신하는 과정이다. 

목표: H2->H3

1~6 :   H2에서 모든 입력에 대해 165.236.55.1 로 보내도록 했으므로, interface R11으로 들어가 R1으로 packet이 보내진다. 

7 : switch 는 모든 곳으로 다 패킷을 보내므로 보내고, H1이 16줄에서 받으나 not for me 라고 하고 처리하지 않고 폐기한다.

8~12 : 라우터1(R1)에서 라우터2(R2)로 interface R13을 통해서 패킷을 보낸다. 

15: 무사히 H3에 도착했다. 

 

18~ : reverse way: H3- >H2 : 응답을 보내는 과정이다. 

목표 : H3->H2

19~23: H3에서 ingerface H31을 통해 라우터2 (R2)에 패킷을 보낸다. 

26,27 : 라우터2에서 R21 interface를 통해 packet을 보내고 R1이 받는다.

28 : R1이 R11 인터페이스로 패킷을 보낸다. 

29 : 스위치가 모두 보내서 패킷이 H1, H2에 도달하고, H1은 packet not for me로 폐기하고, H2는 packet accepted로 받는다.

 

33~ : 29에서 H2가 받고 종료되면 좋았을 텐데 라우터2에서 또다시 R22로 패킷을 보내버린다. 

 

36: 그리고 오류 등장:  error on gate ip - multiple interface match !!!

 

-> 라우터 2에서 R21 인터페이스로 (26줄)보내서 H2를 보내고 여기서 끝나야함에도 불구하고

또 R22 인퍼페이스로(33줄) 패킷을 보낸다. 

 

 

-> 즉 두 인터페이스 간의 서브넷이 구별이 안되고 있는 문제다.

 

 

왜 이런 문제가 생길까?

해당 네트워크 망에서 구분되어야 하는 서브넷은 4개이다. 그걸 크게 표현해보면 다음과 같다. 

1. 인터넷 연결망의 라우팅 테이블이 하나이므로, 여기에 인터넷과 연결되는 모든 IP주소는 하나의 ip주소로 표현할 수 있어야 한다. 

 

2. 이미 정해진 값(회색 글자)에서 H2의 라우팅 테이블을 보면 165.236.55.1이다. 즉 R11의 IP주소와 같고, 

서브넷1은 ip 주소가 165.236.55.X인 꼴임을 알 수 있다. 

이 때 subnet Mask 가 255.255.255.128이라서  165.236.55.0 ~ 165.236.55.127의 IP주소를 모두 가져간다. 

 

3. 서브넷 2도 H4의 라우팅 테이블이 165.236.55.129로 고정되어있으므로, R3의 IP주소가 165.236.55.129임을 알 수 있고, 

서브넷 2의 IP주소는 자동으로 지정되는데 그 값은 subnetmask의 값이 255.255.255.192 이므로, 

0~63

64~127

128~191

192~255 

에서 3번째에 해당하고, 

165.236.55.128 ~ 165.236.55.191 까지의 값을 가져간다고 알 수 있다. 

 

4.  서브넷 3의 주소는 모두 내가 지정할 수 있는 IP주소인데, 나는 여기서 165.236.55.193 과 

165.236.55.194를 지정해두었다. 

subnetmask 는 /26으로 해두었으므로 = 255.255.255.192이고

3번의 목록에서 4번째에 해당하므로

255.255.255.192~ 255.255.255.255 까지의 값을 갖는 것으로 만들었다. 

 

5. 서브넷 4는 이미 라우터 간에 IP주소로 165.236.55.254 를 라우터 1이,  165.236.55.254를 라우터 2가 갖고 있는 것이 보인다. 

그런데 여기서 문제가 보인다. 

이미 4번에서  서브넷 3이 192~255까지 가져왔으므로 , 서브넷이 겹치게 되는 문제가 생기는 것이다. 

 

이를 해결하기 위해서는 어떻게 해야할까?

서브넷 3이 255까지 가져가지 않고 덜 가져가도록 만들어야 한다. 

/27이면 (255.255.255.224)면 어떻게 될까?  이때는 목록이

0~31

32~63

64~95

96~127

128~159

160~ 191

192~223

224~255 

가 되므로, 이번에는 193, 194가 223, 224와 겹치지 않고 괜찮을 것이다!

 

 

 

 

/27로 고친 후 모두 맞은 모습

 

 

맞는 답: 

******* Goal ID 5 ********
forward way : H2 -> H3 (165.236.55.221)
on H2 : packet accepted
on H2: destination does not match any interface. pass through routing table
on H2 : route match default
on H2: send to gateway 165.236.55.1 through interface H21
on switch S1: pass to all connections
on R1 : packet accepted
on R1: destination does not match any interface. pass through routing table
on R1 : route match 165.236.55.222/27
on R1: send to gateway 165.236.55.253 through interface R13
on R2 : packet accepted
on R2: send to R22
on H3 : packet accepted
on H3: destination IP reached
on H1 : packet not for me
on H2 : loop detected
reverse way : H3 -> H2 (165.236.55.3)
on H3 : packet accepted
on H3: destination does not match any interface. pass through routing table
on H3 : route match 0.0.0.0/0
on H3: send to gateway 165.236.55.222 through interface H31
on R2 : packet accepted
on R2: destination does not match any interface. pass through routing table
on R2 : route match 0.0.0.0/0
on R2: send to gateway 165.236.55.254 through interface R21
on R1 : packet accepted
on R1: send to R11
on switch S1: pass to all connections
on R1 : loop detected
on H1 : packet not for me
on H2 : packet accepted
on H2: destination IP reached
반응형