[네트워크] 22-07-08 TIL

gununoo·2022년 7월 8일
1

네트워크

목록 보기
5/8
post-thumbnail

IP(L3)

할당

  • static(서버, 프린터)
  • dynamic: DHCP

IPv4 vs IPv6

IPv4: 32bit(4개의 옥텟) -> 2진수
IPv6: 128bit -> 16진수

사설ip vs 공인ip -> 비용 지불 유무 -> ISP는 사설 ip를 차단시킴 -> NAT를 통해 사설 ip를 공인 ip로 변환해야 함

class:          default subnet mask     사설 ip 
A: 1 ~ 127      255.0.0.0               10.X.X.X 
B: 128 ~ 191    255.255.0.0             172.16.X.X~172.31.X.X 
C: 192 ~ 223    255.255.255.0           192.168.X.X 

서브넷

/28
-> 11111111.11111111.11111111.11110000
-> 255.255.255.(255 - 15)
-> 255.255.255.240

Quiz 1. 우리 회사에는 4개의 부서가 있다. 각 부서별로 30개의 ip 주소가 필요하다. 적절한 서브네팅된 주소는 무엇인가? 참고로 기본 사용 가능 주소는 211.183.3.0/24 이다. 또한 IP의 낭비는 최소화해야 한다.
/31 -> 경우의 수 2가지 -> host 0개
/30 -> 경우의 수 4가지 -> host 2개
/29 -> 경우의 수 8가지 -> host 6개
/28 -> 경우의 수 16가지 -> host 14개
/27 -> 경우의 수 32가지 -> host 30개
따라서 답은 /27

Quiz 2. 우리 회사는 내부적으로 사설 주소를 사용한다. 전체 범위는 192.168.2.0/24를 사용하고 이를 적절히 서브넷팅하여 각 네트워크에 할당할 계획이다.
DEV팀은 100개의 ip가 필요하다.
OPS 팀은 20개의 ip가 필요하다.
제주 지사에 있는 SALES 팀은 15개의 IP가 필요하고
본사와 지사를 연결하는 WAN 구간은 2개의 IP 주소가 필요하다.
적절한 네트워크 주소를 구하라! 단, 아래의 조건을 만족해야 한다.
서브넷팅은 가장 규모가 큰 팀부터 주소를 구해낸다.

GNS 실습

화면에 각 네트워크의 주소와 기본 게이트웨이 주소를 작성하라. 게이트웨이 주소는 각 네트워크의 첫 번째 주소를 사용한다. 단, 본사와 지사 간에는 라우터 간 연결이므로 여기에는 게이트웨이라는 표현을 사용하지 않는다.

/31 -> 경우의 수 2가지 -> host 0개
/30 -> 경우의 수 4가지 -> host 2개
/29 -> 경우의 수 8가지 -> host 6개
/28 -> 경우의 수 16가지 -> host 14개
/27 -> 경우의 수 32가지 -> host 30개
/26 -> 경우의 수 64가지 -> host 62개
/25 -> 경우의 수 128가지 -> host 126개

DEV -> 100개 -> /25 -> 128개 -> 192.168.2.0 / .1 ~ .126 / .127 -> 255.255.255.128
-> GW: 192.168.2.1
OPS -> 20개 -> /27 -> 32개 -> 192.168.2.128 / .129 ~ .158 / .159 -> 255.255.255.(255-31) = 255.255.255.224
-> GW: 192.168.2.129
SALES -> 15개 -> /27 -> 32개 -> 192.168.2.160 / .161 ~ .190 / .191 -> 255.255.255.224
-> GW: 192.168.2.161
WAN -> 2개 -> /30 -> 4개 -> 192.168.2.192 / .193 ~ .194 / .195 -> 255.255.255.(255-3) = 255.255.255.252
-> next-hop: 192.168.2.193, 192.168.2.194


step 1. 인터페이스에 ip 주소 입력

[HQ]
conf t
int fa0/0
ip add 192.168.1.116 255.255.255.0
no sh

int fa1/0
ip add 192.168.2.1 255.255.255.128
no sh

int fa2/0
ip add 192.168.2.129 255.255.255.224
no sh

int fa0/1
ip add 192.168.2.193 255.255.255.252
no sh

[BR]
conf t
int fa0/0
ip add 192.168.2.194 255.255.255.252
no sh

int fa0/1
ip add 192.168.2.161 255.255.255.224
no sh

Router

  • L3(네트워크 계층)에서 동작하는 device이고, Packet을 처리할 수 있다.

  • 패킷 헤더에는 출발지와 목적지의 IP 주소가 있으며, 라우터는 목적지의 주소를 자신의 라우팅 테이블에 적용하여 가고자 하는 경로를 선택하고 해당 경로의 방향으로 패킷을 포워딩해주는 역할을 한다.

  • IP주소는 출발지에서부터 목적지까지 변경되지 않으므로 라우터는 결국 서로 다른 네트워크에 대한 연결이 가능하게 된다.
    ex 1) 한 강의실 내에서 주변 pc와 통신할 때 스위치를 통해서 통신 -> L2에서 이루어짐
    ex 2) 네이버 접속 시 라우터를 통해서 통신 -> L3에서 이루어짐

  • 라우터로 유입된 패킷은 아래의 과정을 거쳐 목적지로 전달된다.

    1. ACL(Access-Control-List) -> 이름이나 번호를 이용하여 정책을 만들고, 만들어진 정책에 기반하여 패킷을 필터링하고 분류함 -> Permit / Deny
      security group vs NACL -> 규모는 NACL이 더 크다

      https://library.gabia.com/contents/8892/

    2. NAT(Network Address Translation)

    3. Routing(Path Selection, Packet Forwarding based on Routing Table)

  • 라우터는 기본적으로 자신에게 직접 연결된 네트워크에 대해서는 도달이 가능하지만, 떨어져있는 네트워크에 대해서는 통신이 불가능하다. 이를 해결하기 위해 필요한 것이 "라우팅"이다. 라우팅은 정적 라우팅, 동적 라우팅(라우팅 프로토콜 필요)으로 구분된다. -> 지금까지 실습에서는 정적 라우팅만 해봤음

default route

HQ는 SALES 네트워크를 모르고, BR1은 DEV 네트워크와 OPS 네트워크를 모름 -> 정적 route를 일일이 입력해야 함
-> 네트워크가 무수히 많을 경우, 정적 route를 일일이 입력하는 것은 불가능 함
-> 바로 앞의 라우터에 모두 보낸다면 해결 -> 0.0.0.0/0
-> ip route [목적지주소][서브넷마스크] [next-hop ip address]
-> ip route 0.0.0.0 0.0.0.0 [next-hop ip route]

default route는 일반적으로 edge router에서 구성한다. -> [BR1]

HQ는 SALES로 가기 위한 정적 route가 필요
internet으로 가기 위한 default route도 필요

ip route 설정 예시
[vyos]
set protocols static route 0.0.0.0/0 next-hop 203.0.113.1
https://support.vyos.io/en/kb/articles/static-ipv4-routing
[linux]
route add -net 2.2.2.0 netmask 255.255.255.0 dev eth0
https://lute3r.tistory.com/84

step 2. 서로 다른 네트워크와 통신을 위한 static route 설정

! SALES로 가기 위한 정적 route 설정
ip route 192.168.2.160 255.255.255.224 192.168.2.194

step 3. 인터넷 연결을 위한 default route 설정

[HQ]
! internet으로 가기 위한 default route 설정
ip route 0.0.0.0 0.0.0.0 192.168.1.1

! 지사쪽 내부망과 통신 확인 -> 된다
do ping 192.168.2.161

step 4. edge router에서 default route 설정

[BR1]
! default route는 일반적으로 edge router에서 구성한다. -> [BR1]
ip route 0.0.0.0 0.0.0.0 192.168.2.193

! HR의 두 GW와 통신해보기 -> 된다
do ping 192.168.2.1
do ping 192.168.2.129

step 5. DHCP 서버 구성

IP 구성 시
static vs dynamic(DHCP 프로토콜)

본사 Router(HQ)에서 DHCP 서버 구성하기

DHCP 서버 구성 시나리오.
1. 우리 회사는 HQ에서 DHCP 서비스를 제공한다.
2. HQ는 모든 부서(지점 포함)에 동적으로 IP를 부여한다.
3. IP 부여 시 해당 네트워크 전체에서 주소를 부여하고, 주소와 함께 서브넷 마스크, 게이트웨이, DNS(8.8.8.8), 임대 기간(2시간)

[HQ]
! DEV 설정하기
ip dhcp pool DEV

! 네트워크 범위 설정
network 192.168.2.0 /25

default-router 192.168.2.1
dns 8.8.8.8

! 임대 기간 설정
lease 0 2

! OPS 설정하기
ip dhcp pool OPS

! 네트워크 범위 설정
network 192.168.2.128 /25

default-router 192.168.2.129
dns 8.8.8.8

! 임대 기간 설정
lease 0 2

! SALES 설정하기
ip dhcp pool SALES

! 네트워크 범위 설정
network 192.168.2.160 /27

default-router 192.168.2.161
dns 8.8.8.8

! 임대 기간 설정(0: day, 2: 2시간)
lease 0 2

PC 3개 추가하여 각 부서에 연결

DEV의 네트워크 -> start capture
DEV의 PC -> start

[PC1]
ip dhcp
DDORA IP 192.168.2.2/25 GW 192.168.2.1
-> DDORA: Discover, Discover, Offer, Request, Ack

show ip

NAME : PC1[1]
IP/MASK : 192.168.2.2/25
GATEWAY : 192.168.2.1
DNS : 8.8.8.8
DHCP SERVER : 192.168.2.1
DHCP LEASE : 6937, 7200/3600/6300
MAC : 00:50:79:66:68:00
LPORT : 10009
RHOST:PORT : 127.0.0.1:10008
MTU: : 1500

ping 192.168.2.161 -> SALES의 내부 망으로 ping -> 된다

[PC2]
ip dhcp
DDORA IP 192.168.2.130/25 GW 192.168.2.129

ping 192.168.2.2 -> DEV의 PC1로 ping -> 된다
ping 192.168.2.161 -> SALES의 내부 망으로 ping -> 된다

[PC3]
ip dhcp
DDD
Can't find dhcp server
-> 안 되는 이유?

step 6. edge router에서 Relay-agent 설정

DHCP 클라이언트는 Discover 메시지를 발생시킨다. 목적지 주소가 255.255.255.255로 IPv4의 broadcast 주소이다. 라우터는 이러한 브로드캐스트 주소를 다른 네트워크로 전달하지 않는다.
즉, 라우터는 L3 브로드캐스트를 다른 네트워크로 넘어가지 않도록 차단시킨다. 따라서 다른 네트워크에 있는 DHCP 서버로 Discover 메시지가 전달되지 않아 IP 주소를 할당 받을 수 없게 된다.
이를 해결하기 위해 중개 역할을 하는 relay-agent가 필요하다!!! -> BR1 라우터가 relay-agent 역할을 하면 된다.

[BR1]
int fa0/1
ip helper-address 192.168.2.193

[PC3]
ip dhcp
DDORA IP 192.168.2.162/27 GW 192.168.2.161

ping 192.168.2.2 -> DEV의 PC1로 ping -> 된다
ping 192.168.2.130 -> OPS의 PC2로 ping -> 된다

Overlay Network

서울, 대전, 제주에 있는 서버 -> 물리 자원을 pool로 공유 -> clustering
-> Overlay Network -> 터널링이 필요 -> GRE 또는 VXLAN
하지만 멀리 떨어져있기 때문에 중간에 Routing이 발생해서 성능 저하가 발생함

https://www.devopsschool.com/tutorial/kubernetes/kubernetes-cni-flannel-overlay-networking.html

NAT

  • IP 주소를 변경하는 기술
  • 사설 -> 사설, 사설 -> 공인, 공인 -> 공인을 1:1로 변경
  • 주로 사설 주소를 공인 주소로 변경할 떄 사용한다.
  • NAT를 사용하면 얻는 이점
    1. 공인 주소의 고갈을 늦출 수 있다.
    2. 실제 서버의 주소를 외부에 노출시키지 않아, 방화벽의 기능을 제공한다. 이로 인해 "주소 변환 방화벽"이라고도 부른다.
    3. ISP에 의존적이지 않도록 서버를 구성할 수 있어, ISP가 변경된 이후에도 기존 설정을 유지할 수 있다.

local -> 사설 주소
global -> 공인 주소

static NAT: 지정된 사설 주소는 "항상" 지정된 공인 주소로만 변경된다.
dynamic NAT: 공인 주소가 pool에 담겨있고, 사설 주소는 인터넷 이용 시 pool에서 사용 가능한 주소를 그때 그때마다 할당 받는다. 따라서 공인 주소가 변경될 수 있다.

만약 서비스를 제공하는 서버라면 항상 "지정된 공인 주소"가 필요할 것이다. 따라서 이러한 경우에는 "정적 NAT"를 구성해야한다. 이를 클라우드에서는 "elastic IP@aws", "floating ip@openstack"라는 단어로 사용된다.

aws에서 인스턴스를 생성하면 인스턴스 자체는 사설 주소가 할당되고, 동적으로 공인 주소를 할당받을 수 있다. 하지만 이 공인 주소는 인스턴스가 종료되었다가 다시 실행된다면 다른 주소를 부여받는다. -> dynamic NAT

PAT(Port Address Translation)
공인 주소와 사설 주소를 비교했을 때 공인 주소의 개수가 월등히 적은 경우에는 1:1 매핑이 불가능하다. 이 경우에 부족한 공인 주소를 다수의 사설 주소들이 공유하도록 해 주는 기술이 PAT이다.

Masquerade(One-to-many NAT)

외부망에서 볼 때 내부망 여러 호스트들이 단일 NAT 서버 하나로 만 보임
단 하나의 공인 IP로 내부 모든 PC가 대표 IP 주소를 공유 사용
Masuerade -> 가면이라는 뜻

[Linux 예시]

[root@dlp ~]# firewall-cmd --zone=external --add-masquerade --permanent
success
[root@dlp ~]# firewall-cmd --reload
success
[root@dlp ~]# firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o eth1 -j MASQUERADE
-> 라우팅하기 전에 masquerade로 NAT를 하겠다(이더넷 1번으로 빠져나가기 전에)
https://www.server-world.info/en/note?os=CentOS_7&p=firewalld&f=2
https://en.wikipedia.org/wiki/Network_address_translation#One-to-many_NAT
http://www.ktword.co.kr/test/view/view.php?m_temp1=1676

step 7. 인터넷 사용을 위한 동적 PAT 구성

[HQ]
access-list 1 permit any
ip nat inside so list 1 int fa0/0 overload
! inside so list1: 사설 ip
! int fa0/0: 공인 ip
! 사설 ip를 공인 ip로 변경하겠다.
! overload: PAT를 활성화 -> 지정된 ip 하나를 동시에 사용하겠다

int fa0/0
ip nat outside

int range fa1/0 , fa2/0 , fa0/1
! 3개의 인터페이스에게 동시에 똑같은 명령 입력
ip nat inside

[PC3]
ping www.google.com -> 된다!

Switch

  • L2(Data Link)에서 frame을 처리함
    • frame의 헤더에 있는 MAC을 읽을 수 있다.
    • hub(L1 장비)는 MAC을 읽을 수 없다.
  • 물리적으로 네트워크를 구분할 수 없다 (논리적으로 가능하다 -> VLAN)
    • 라우터는 네트워크를 구분할 수 있다.
    • 스위치는 동일 네트워크에서 노드를 연결한다.
    • 라우터 == 1 interface == 1 network == 1 Broadcast Domain
    • 스위치 == 1 VLAN == 1 network == 1 Broadcast Domain
    • 라우터는 서로 다른 네트워크를 연결할 수 있지만 스위치는 불가능하다.

다음 중 MAC Table에 없는 것은? 답: 3
1. VLAN
2. MAC
3. IP -> 스위치는 IP를 해석 못 함!
4. Ports

https://blog.naver.com/butterfly3300/221275678092

스위치는 기본적으로 arp 등과 같은 브로드캐스트 프레임에 대하여 유입된 포트를 제외한 나머지 모든 포트로 flooding 한다. IP에 대한 해석이 불가능하므로, IP는 고려하지 않는다.

VLAN

클라우드는 "테넌트"들의 집합이다. 테넌트라는 단어를 현재는 "프로젝트"라고 한다.
테넌트는 개인, 집단이 될 수 있다.

VLAN을 이용하면 동일 스위치 내에 있는 인터페이스들에 대하여 논리적인 grouping이 가능하며, 이는 별도의 네트워크로 동작하게 된다. 별도의 vlan은 별도의 네트워크이므로, 하나의 vlan에서 발생하는 broadcast는 다른 vlan에게 영향을 미치지 않는다.

profile
take a look

0개의 댓글