[Network] 기본 개념
기본개념
같은 네트워크면 직접 전송 다른 네트워크면 라우터에게 전송
1. route / routing / router
route (경로)
192.168.10.0/24는 eth0 로 직접 연결됨defulat는 192.168.10.1 로 보냄
즉, “어떤 목적지로 갈 떄 어디로 보내라”는 규칙.
routing (경로를 결정해서 패킷을 전달하는 행위)
1) OS 가 라우팅 테이블을 보고
2) 패킷 목적지 IP를 확인한 뒤
3) 어느 인터페이스로 내보낼지, 다음 홉이 누구인지 결정 \
위 과정 모두 routing.
router (서로 다른 네트워크 사이에서 패킷을 전달하는 장치/기능)
- 공유기
- Linux 서버
- L3 스위치
- 통신 장비
전용 장비만 router가 아니다.
Linux도 IP forwarding을 켜면 router 역할을 수행
2. 서브넷 (subnet)
IP: 192.168.10.20
서브넷 마스크: 255.255.255.0
CIDR 표기: /24
- 네트워크 주소:
192.168.10.0 - 사용 가능한 호스트:
192.168.10.1 ~ 192.168.10.254즉,192.168.10.x대역끼리는 같은 네트워크 목적지 IP192.168.10.30으로 보내는 건 직접 가능 목적지 IP192.168.20.30으로 보내는 건 라우터 필요
3. 네트워크 패킷 전송 과정
경우 1: 목적지가 같은 네트워크
예:
- 내 IP:
192.168.10.20/24 - 목적지:
192.168.10.30
판단:
- 같은 네트워크 인식
- [^1]ARP로 MAC 주소 확인
- 직접 eth0 로 전송
[^1]: ARP(Address Resolution Protocol): IP 주소를 MAC 주소와 매핑하는 프로토콜
경우 2: 목적지가 다른 네트워크
예:
- 내 IP:
192.168.10.20/24 - 목적지:
8.8.8.8
판단:
- 같은 네트워크 아님
- 라우팅 테이블 확인
- default route가
via 192.168.10.1 dev eth0 - 그럼 192.168.10.1 에게 전송
4. 라우팅 테이블
Linux에서 보면:
ip route
예시 출력:
default via 192.168.10.1 dev eth0
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.20
10.0.0.0/24 via 192.168.10.254 dev eth0
defulat via 192.168.100.1 dev eth0: \ 명시되어있지 않은 나머지 모든 목적지는 192.168.10.1 로 전송(기본 게이트웨이) \192.168.10.0/24 dev eth0:
192.168.10.x 대역은 eth0 에 직접 연결되어 있다.10.0.0.0/24 via 192.168.10.254 dev eth0:
10.0.0.x 대역으로 가려면 192.168.10.254 를 1다음 홉으로 사용
5. route 선택 기준
가장 구체적인 경로를 선택함 (Longest Prefix Match)
ip route 결과:
10.0.0.0/8 via 192.168.10.1 dev eth0
10.1.0.0/16 via 192.168.10.2 dev eth0
10.1.2.0/24 via 192.168.10.3 dev eth0
default via 192.168.10.254 dev eth0
가능한 후보:
- `10.0.0.0/8`
- `10.1.0.0/16`
- `10.1.2.0/24` <- 가장 구체적인 `/24` 임으로 `192.168.10.3` 으로 전송됨.
- `default`
6. static route 와 dynamic routing
static route
관리자가 수동으로 경로를 넣는 방식
예:
ip route add 10.20.0.0/16 via 192.168.10.254 dev eth0
뜻: 10.20.x.x 대역은 192.168.10.254 쪽으로 보내라
- 단순함
- 예측 가능
- 작은 네트워크에 좋음
단점:
- 네트워크가 커지면 일일이 관리하기 힘듦
- 장애 대응이 자동이 아님
dynamic routing
라우터들끼리 서로 정보를 교환해서 경로를 자동으로 학습하는 방식
예:
- RIP (Routing Information Protocol)
- OSPF (Open Shortest Path First)
- BGP (Border Gateway Protocol)
장점:
- 네트워크가 커져도 자동화 가능
- 장애 시 경로 재계산 가능
단점:
- 설정/이해가 더 복잡
- 프로토콜 특성을 알아야 함
-
다음 홉(next hop): 당장 10.0.0.5 직접 못가니 우선 192.168.10.254 목적지에 넘겨라 ↩
Leave a comment