티스토리 뷰

네트워크

라우팅

삼전동해커 2021. 3. 29. 20:51

라우팅의  기본 원리

IP는 라우팅 테이블의 경로 정보를 바탕으로 처리할 패킷의 목적지 주소에 따른 라우팅을 결정함.

 

검색 순서

1.일치하는 호스트 주소.

2.일치하는 네트워크 주소.

3.디폴트 엔트리 검색

 

라우팅 메커니즘

라우팅 테이블을 통해 패킷을 일치하는 인터페이스로 내보내는 과정.

(커널에 속한 IP가 수행)

 

라우팅 정책

라우팅 테이블의 경로 정보를 생성하는 규칙 집합.

(라우팅 데몬이 결정)

 

라우팅 테이블 설명

 

 

flags 설명

U : 경로 사용 가능

G : 간접 경로, 인터페이스로 패킷이 전송되면 게이트웨이를 거쳐간다.(G가 없으면 직접 연결된 직접 경로)

    직접 경로의 gateway는 interface의 로컬 ip 주소를 나타낸다.

H : 특정 호스트가 목적지인 경로 정보.(H가 없으면 destination에 네트워크 주소가 적힘.)

D : icmp redirect로 인해 생성된 경로

M : icmp redirect로 수정된 경로

 

테이블 설명

Refcnt : TCP같은 연결지향 프로토콜에서 유지하고 있는 연결의 수.

Use : 해당 경로로 보내진 패킷 수

interface : 패킷을 배출할 인터페이스

 

(1)140.252.13.33

->140.252.13.32 네트워크 대역에 직접 경로로 연결, 13.34가 로컬 아이피 주소. emd0 인터페이스를 통해 배출된다.

 

(2)140.252.13.65

->140.252.13.65가 목적지인 경로이다. 13.35 게이트웨이를 통해서 가야하는 간접 경로이고, emd0 인터페이스로 배출된다.

 

(3)인터넷 상 호스트 aw.com(192.207.117.2)

->모르는 경로이기 때문에 default 목적지 경로로 나간다.13.33 게이트웨이를 통해 나가고, emd0 인터페이스로 배출된다.

 

(4)명령어 ftp svr4를 통해 생성된 패킷의 목적지 주소

->emd0

 

(5)ftp 140.252.13.34를 통해 생성된 패킷의 목적지 주소.

->로컬 아이피가 13.34이기 때문에 lo0 인터페이스로 본인에게 온다.

 

(6)ftp localhost를 통해 생성된 패킷의 목적지 주소

->lo0로 바로간다.

 

(7)

->lo0로 바로간다.

 

 

라우팅 테이블 엔트리가 만들어지는 상황

1.인터페이스가 추가 되는 경우(ifconfig등으로 인터페이스의 주소를 설정, 초기화 ->  자동으로 인터페이스에 대한 엔트리가 생성됨.

2.직접 연결되지 않는 호스트나 네트워크에 대한 경로는 직접 입력한다.(route add default user 명령어 사용)

3.라우팅 데몬 또는 라우터 탐색 프로토콜을 실행해 라우팅 테이블 엔트리를 만듬.

default경로가 없고 처리할 패킷의 목적지 주소와 매칭되는 경로 정보도 없는 경우 2가지로 나눠볼 수 있다.

1.현재 호스트에서 생성된 패킷인 경우, 해당 패킷을 host unreachable 또는 network unreaclable 메세지를 보낸 응용에게 전달한다.

2.다른 호스트로부터 포워딩 받은 패킷일 경우, 해당 패킷은 폐기되고, 원 송신자로 icmp host unreachable error 메세지를 보낸다.

 

icmp unreachable error란?

sun의 링크가 비활성화되어  default route를 설정해줄 다른 프로그램이 없어서 sun이 속한 로컬 네트워크의 모든 호스트가 글로벌 인터넷 접속 불가. 즉,host unreachable(존재하지 않다는 의미는 아님)이지만 sun을 통한 경로 사용이 불가능하다는 의미이다.

 

리눅스에서 ip forwarding 설정하기

ip forward 명령어.

리눅스 커널의 경우, /proc/sys/net/ipv4/ip_forward 변수를 설정해야한다.

cat /proc/sys/net/ipv4/ip_forward

설정하기

 sysctl -w net.ipv4.ip_forward = 1

취소하기

sysctl -w net.ipv4.ip_forward = 0

 

재지정 에러

R1보다 R2로 보내는게 효율적이라는게 확실한 경우 icmp redirect error메세지 전송.

 

라우팅 테이블을 업데이트하도록 만들기 위해 사용됨

 

'네트워크' 카테고리의 다른 글

[SEED Labs]Packet Sniffing  (0) 2021.05.10
[네트워크]TCP에 관하여  (0) 2021.04.08
C socket 프로그래밍 수업 1주차 심화  (0) 2021.03.22
C socket 프로그래밍 수업 1주차  (0) 2021.03.22
IPSEC  (0) 2020.10.16
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함