Ip : Internetworking (상호통신)을 할때 필요한 Protocol(통신규약)인 Internet Protocol이다
Ipv4와 Ipv6 : Ipv4 환경에서 Tunneling을 통해 v6끼리 통신이 가능하다. 실질적으로는 v6 패킷 앞에 인터넷이 v4 환경이므로 v4 Header를 붙여서 v4 환경을 가로지를수 있게 하는 것이다
Ipv4 : v4는 4개의 옥텟으로 되어있으며 32bit이다. 주소의 범위는 0.0.0.0 ~ 255.255.255.255이다
- Ipv4 Class
- A : 첫번째 옥텟이 1~127, 이며 default subnetmask가 255.0.0.0
- B : 첫번째 옥텟이 128~191, 이며 default subnetmask가 255.255.0.0
- C : 첫번째 옥텟이 192~223, 이며 default subnetmask가 255.255.255.0
classful vs classless
- classful : 모든 네트워크 주소에 대해서 3개로 구분한다. 즉, /8, /16, /24만이 존재한다
- classless : 정해진 경계가 없다
- 위 그림처럼 10.10.1.1/24, 10.10.2.0/24은 A class으로 /8에서 서브넷팅이 된 주소다. 이를 다른 라우터에서 주소에 대해 정보를 가져올때, 상세 정보로 10.10.1.0/24, 10.10.2.0/24가 그대로 넘어오면 classless, 이 두가지의 class인 A class에 해당하는 10.0.0.0/8 주소 하나만 넘어가면 classful이다. classful은 각 class별로 /8,/16/24만 허용하기에 A class는 /8이미로 1.0/24, 2.0/24라는 주소를 허용하지 않기 때문이다. classful은 여러 문제로 인해 잘 사용하지 않는다
서브네팅 : 원래의 네트워크 범위를 필요한 만큼 동일한 크기의 작은 네트워크로 나누는 작업. 이로서 Ip의 낭비를 줄일 수 있으며, 불필요한 브로드캐스트의 범위를 줄일 수 있다
- subnetmask인 /n에서 '/'은 prefix-length이며, 이는 네트워크 비트 개수를 나타낸다
- 사용할 수 있는 Host 주소의 수는 Host bit개수를 n이라고 할때 2의 n승 - 2 ( 네트워크 주소, 브로드캐스트 주소)이다
- 서브넷 길이는 균등하게 나누어진다. 허나, 이 서브넷 길이는 Variable Length Subnet Mask를 통해 필요한 만큼 다르게 나눌 수 있다
- vpc에서 기본 제공되는 3가지 서브넷 Ip외에 남아있는 공간이 존재한다
- 보통 서버, DB, STORAGE로 구성되며, STORAGE에 Volumn을 만들어 서버와 연결해서 사용한다
- DB ZONE과 같은 외부( untrusted zone )에서 접속을 허가하면 안되는 곳은 NAT를 사용하지 않는다. 이를 위해 서버 ZONE과 DB ZONE 사이에 라우터나 방화벽, 보안 정책을 통해 제어할 수 있다. WEB 서버는 NAT를 통해 외부( untrusted zone )접속이 가능하게 하며, DB ZONE은 NAT를 사용하지 않으며, 외부 접속을 막는다. 또한 SERVER ZONE과 DB ZONE은 직접 통신이 아닌, 라우터를 거쳐 통신하게 한다
- VLAN은 L2( 데이터링크, FRAME, MAC ) 구간에서 동작하는 논리적인 네트워크다. 하나의 물리적인 네트워크에 있는 VLAN과 다른 물리적인 네트워크에 있는 VLAN은 서로 관계가 없다
- 이는 라우터에서 L2 HEADER를 분리하므로, 해당 VLAN이 다른 네트워크의 VLAN과 어떤 관계인지 알 수 없기 때문이다
- VLAN을 사용시 FRAME HEADER에 MAC 뒤에 TAG로 VLAN ID를 넣을 수 있다
- CLOUD에서는 VXLAN을 사용하여, 터널링을 통해 서로 다른 네트워크의 VXLAN끼리 통신하게 할 수 있다
스위치에서는 하나의 인터페이스가 하나의 네트워크가 아닌 라우터와 연결된 스위치 전체가 하나의 네트워크인데, 이를 VLAN을 통해 서로 고립된 독립적인 하나의 네트워크를 구성할 수 있다
- Router - 1 interface - 1 network - 1 Broadcast Domain
- Switch - 1 vlan - 1 network(subnet) - 1 Broadcast Domain
여러개의 VLAN을 만들어 사용할 수 있으며, 하나의 스위치에 여러개의 네트워크가 동시에 존재할 수 있다
스위치는 VLAN을 통해 네트워크를 논리적으로 구분할 수 있지만, 서로 다른 VLAN 끼리 직접 통신이 되도록 할 수는 없다. 이때는 서로 다른 패킷에 대한 해석이 가능한 라우터 기능( 라우팅 )이 필요하다
스위치에서는 VLAN이라는 개념을 인지못하며, VLAN을 직접 연결된 것으로 인지한다. 즉, VLAN이 두 개가 있다면, 하나의 스위치가 두 개의 스위치로 나눠진 것으로 인지한다
- 필요한 만큼 논리적으로 네트워크 구분하므로, ARP PROTOCAL과 같은 BROADCAST PROTOCAL시 불필요한 트래픽을 줄일 수 있으며, 불필요한 정보 공유를 막을수 있다
- 논리적이므로 필요에 따라 VLAN에 포함되었다가 VLAN을 바꿔서 다른 해당 네트워크로 옮길 수 있는 유연성을 지닌다
- 물리적으로 떨어진 장비들을 논리적으로 묶을 수 있으며, 물리적으로 같이 있는 장비들을 논리적으로 격리시킬수 있다
- VLAN은 스위치 안의 독립된 방과 같으며, 이 방의 번호는 VLAN ID이다. 스위치에서는 L2에서 동작하기에 IP는 판단하지 않으며, VLAN을 보고 서로 다른 네트워크라고 판단한다
- 스위치에 연결된 모든 인터페이스는 기본적으로 VLAN 1에 포함된다. 이 VLAN 1에 대해서는 모든 회사의 스위치가 다 똑같다
- 필요시 추가적인 VLAN을 생성할 수 있으며, VLAN은 12BIT를 활용하여 VLAN ID를 부여할 수 있다. 이 ID는 0~4095까지 가능하다
- vlan id는 frame에 tag로 표시된다
- END TO END VLAN : 물리적으로 떨어져 있는 구간을 하나의 VLAN으로 연결하는 방법으로, 보통 각 층에 있는 동일 업무를 하는 사람들의 PC를 그룹화 하는 것
- LOCAL VLAN : 한 지역에 있는 PC들을 하나의 VLAN으로 그룹화 하는 것. 주로 LOCAL VLAN을 사용한다
따로 연결하는 것이 아닌, 물리적인 INTERFACE를 논리적인 INTERFACE로 나누어 한 개의 포트로 모든 VLAN이 지나갈 수 있게 한다. 이를 'TRUNK PORT'라고 한다. 이는 주로, 스위치와 스위치 사이에 연결할 떄 사용한다
- 즉 sw에서 sw로 넘어갈때 eth와 ip 사이에 vlan을 넣어주어 frame을 재조합하고, sw에 도착하면, vlan을 확인하고 이를 제거하여 다시 원래 frame으로 재조합하여 최종 목적지에 넘겨준다. 이 방법은 IEEE 802.1q에서 지정한 방법이다. 이를 통해 물리적으로 떨어져 있는 end-device들 끼리도 정상적으로 통신이 가능하게 되는 것이다