SlideShare a Scribd company logo
도커 없이 컨테이너 만들기
6편
Sam.0
실습과 함께 완성해보는
시작하기에 앞서 …
본 컨텐츠는 앞편을 보았다고 가정하고 준비되었습니다.
원활한 이해 및 실습을 위하여 앞편을 먼저 보시기를 추천드립니다
네트워크 네임스페이스 3,4편에 기초하여 준비되었습니다.
3편 링크 클릭 4편 링크 클릭
# sudo -Es
실습 계정 (root)
# cd /vagrant
실습 폴더
vagrant + virtual vm
ubuntu 18.04, docker (Vagrantfile)
- ubuntu1804 (기존)
- ubuntu1804-2 (추가)
실습환경
설치 환경
# apt-get -y install python-pip > /dev/null 2>&1
# pip install pyroute2
실습환경 구성 링크
Network namespace
호스트 안의 가상 네트워크
eth0
Host
routes
iptables
lo
eth0
Container 11.11.11.2
routes
iptables
lo
arp table
bridge fdb
arp table
bridge fdb
eth0
Container 11.11.11.3
routes
iptables
lo
arp table
bridge fdb
eth0
veth0
Host
veth pair
RED BLUE
veth1
11.11.11.2/24 11.11.11.3/24
네임스페이스 간 1:1 통신
reth0
Host
RED BLUE
reth1
beth0
beth1
arp, fdb정보를 이용하여 통신하고 iptables rule에 따라 전송여부 결정
eth0
Bridge 통신
bridge
fdb
route
table
iptables
arp
table
bridge
fdb
arp
table
route
table
iptables
bridge
fdb
arp
table
route
table
iptables
11.11.11.2/24 11.11.11.3/24
d2:e5:f4:1c:d6:93 3a:c6:51:d6:08:40
br0
eth0
reth0
Host
RED BLUE
beth0
beth1
인터넷
reth1
외부 네트워크 통신
bridge
fdb
route
table
iptables
arp
table
bridge
fdb
arp
table
route
table
iptables
bridge
fdb
arp
table
route
table
iptables
br0
default route 설정 iptables nat, forward 설정
Overlay Network
호스트 간의 가상 네트워크
eth0
Host
routes
iptables
lo
eth0
Container 11.11.11.2
routes
iptables
lo
arp table
bridge fdb
arp table
bridge fdb
eth0
Container 11.11.11.3
routes
iptables
lo
arp table
bridge fdb
서버 간에도 (가상의) 네트워크 네임스페이스 통신이 가능할까요?
11.11.11.2 11.11.11.4
PING 11.11.11.2 → 11.11.11.4
eth0
geth0
Host
GREEN ORANGE
oeth0
oeth1
geth1
bridge
fdb
route
table
iptables
arp
table
bridge
fdb
arp
table
route
table
iptables
bridge
fdb
arp
table
route
table
iptables
br0
11.11.11.4
192.168.104.3
11.11.11.2
192.168.104.2
eth0
reth0
Host
RED BLUE
beth0
beth1
reth1
bridge
fdb
route
table
iptables
arp
table
bridge
fdb
arp
table
route
table
iptables
bridge
fdb
arp
table
route
table
iptables
br0
PING 11.11.11.2 → 11.11.11.4
eth0
geth0
Host
GREEN ORANGE
oeth0
oeth1
geth1
bridge
fdb
route
table
iptables
arp
table
bridge
fdb
arp
table
route
table
iptables
bridge
fdb
arp
table
route
table
iptables
br0
11.11.11.2 11.11.11.4
192.168.104.2 192.168.104.3
eth0
reth0
Host
RED BLUE
beth0
beth1
reth1
bridge
fdb
route
table
iptables
arp
table
bridge
fdb
arp
table
route
table
iptables
bridge
fdb
arp
table
route
table
iptables
br0
Bridge
1 2
PC1 PC2
PC3 PC4
PC5 PC6
PC7 PC8
PC1(MAC)
PC2(MAC)
PC3(MAC)
PC4(MAC)
PC5(MAC)
PC6(MAC)
PC7(MAC)
PC8(MAC)
세그먼트1 세그먼트2
서버는 포트에 연결되고 포트별로 어떤 세그먼트에 속하는지 관리
bridge
11.11.11.2
11.11.11.4 ?
ARP broadcasting .. looking for 11.11.11.4
11.11.11.2
192.168.104.2
eth0
reth0
Host
RED BLUE
beth0
beth1
reth1
bridge
fdb
route
table
iptables
arp
table
bridge
fdb
arp
table
route
table
iptables
bridge
fdb
arp
table
route
table
iptables
br0
eth0
geth0
Host
GREEN ORANGE
oeth0
oeth1
geth1
bridge
fdb
route
table
iptables
arp
table
bridge
fdb
arp
table
route
table
iptables
bridge
fdb
arp
table
route
table
iptables
br0
11.11.11.4
192.168.104.3
PING 11.11.11.2 → 11.11.11.4
R
같은 동네
구나
11.11.11.4 ~
분명 같은 동네 (11.11.11.0/24) 인데 ?
라우트 테이블을 보면 …
# ip route
같은동네 (LAN)
같은 동네 (LAN) ?
연결
- LAN : Local Area Network (브로드캐스트 도메인)
- WAN : Wide Area Network (라우터로 구분되는 네트워크)
Sam~
Me !
다른 동네 (WAN)
R
Sam~
I know ...
!
!
R
VLAN
Virtual Local Area Network
Real Network
has 11.11.11.2 has 11.11.11.4
11.11.11.4 ~ I’m here !
가상의 Local Area Network 가 가능하다면 ?
오버레이 네트워크
Overlay Network
Underlay Network
오버레이 네트워크
Underlay Network
하부 네트워크 구조가 어찌됐건 “동일한 네트워크 구성을 유지"
Overlay Network
VLAN
VLAN (Virtual LAN) 오버레이 네트워크 구현 기술 중 하나 …
GRE tunnel, MPLS, VPN , …
VxLAN
Virtual eXtensible LAN
- VLAN ID (12bit) 4,096개 제약 → ID(24bit) 2^24 개 (16,777,216)
- L2 over L3 : UDP 패킷 내부에 L2 프레임을 캡슐화하는 터널링 기술
- VTEP (Vxlan Tunnel End Point) : 종단역할. encapsulation / termination
https://atthis.tistory.com/7?category=750237
Network Stack
- 캡슐화 : Layer 구분 / Layer간 통신
캡슐화
터널링
터널링의 구성요소 :
- 승객 Passenger Protocol : 캡슐화 대상 프로토콜
- 전달 Carrier Protocol : 캡슐화 시킬 프로토콜
- 전송 Transport Protocol : 전달 프로토콜을 끌고 갈 프로토콜
MAC-in-UDP VXLAN L2 정보 (MAC address)를 L3에 넣어서 통신
VXLAN Packet Size : 50 Bytes (14 + 20 + 8 + 8)
MTU Maximum frame or packet size for a particular network medium. Typically 1500 bytes for
Ethernet networks
VXLAN 사용 시 MTU 는 1450 (1500-50) 으로 설정 한다.
* VXLAN Packet Size : 50 Bytes (14 + 20 + 8 + 8)
* 왜 50을 빼냐고요? (바로 앞 장의 그림을 다시 한번 봐주세용~)
물리 네트워크 통신의 decapsulation 과정에서 50 bytes 가 사용되었고
VXLAN이 가상 네트워크 통신을 위한 나머지 1450 bytes를 전달하게 됩니다.
50 bytes 1450 bytes
eth1
192.168.104.2
pinkns
12.12.12.2
02:42:c0:a8:00:02
오늘 그릴 그림
overns
eth0
veth1
br0
vxlan1
eth1
pinkns
12.12.12.3
02:42:c0:a8:00:03
192.168.104.3
overns
eth0
veth1
br0
vxlan1
(실습1) 오버레이
네트워크
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
# ip netns add overns
# ip netns add pinkns
터미널 #1
(192.168.104.2)
+ 터미널 #2 (192.168.104.3)
네트워크 네임스페이스 생성
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2
# ip link add dev veth1 mtu 1450 netns overns type veth peer name eth0 mtu 1450 netns pinkns
192.168.104.3
eth0
veth1 eth0
veth1
터미널 #1
(192.168.104.2)
+ 터미널 #2 (192.168.104.3)
네트워크 네임스페이스로 veth pair 이동
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
12.12.12.2/24
02:42:c0:a8:00:02
# ip netns exec pinkns ip link set dev eth0 address <MAC ADDRESS - 02:42:c0:a8:00:0?>
# ip netns exec pinkns ip addr add dev eth0 <IP/CIDR - 12.12.12.?/24>
eth0
12.12.12.3/24
02:42:c0:a8:00:03
veth1 eth0
veth1
? : 각 창에 알맞은 숫자로 넣어주세요
터미널 #1
(192.168.104.2)
+ 터미널 #2 (192.168.104.3)
veth pair 에 MAC / IP address 설정
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
# ip netns exec overns ip link add dev br0 type bridge
# ip netns exec overns ip addr add dev br0 12.12.12.1/24
eth0
veth1 eth0
veth1
12.12.12.2/24
02:42:c0:a8:00:02
12.12.12.3/24
02:42:c0:a8:00:03
터미널 #1
(192.168.104.2)
+ 터미널 #2 (192.168.104.3)
br0 br0
bridge (br0) 추가 및 설정
12.12.12.1/24 12.12.12.1/24
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
# ip link add dev vxlan1 netns overns type vxlan id 42 proxy learning dstport 4789
eth0
veth1 eth0
veth1
12.12.12.2/24
02:42:c0:a8:00:02
12.12.12.3/24
02:42:c0:a8:00:03
터미널 #1
(192.168.104.2)
+ 터미널 #2 (192.168.104.3)
br0 br0
vxlan 생성 및 설정
vxlan1 vxlan1
(실습1) 오버레이
네트워크
# ip link add dev vxlan1 netns overns type vxlan id 42 proxy learning dstport 4789
id 42 ~ VNI . vxlan endpoint 식별
proxy ~ vxlan 이 arp 쿼리에 응답하도록 허용
learning ~ bridge fdb entry 자동 갱신 허용
dstport 4789 ~ UDP port for 터널링
vxlan 생성 및 설정
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
# ip netns exec overns ip link set veth1 master br0
# ip netns exec overns ip link set vxlan1 master br0
eth0
veth1 eth0
veth1
12.12.12.2/24
02:42:c0:a8:00:02
12.12.12.3/24
02:42:c0:a8:00:03
터미널 #1
(192.168.104.2)
+ 터미널 #2 (192.168.104.3)
br0 br0
vxlan1 vxlan1
veth1, vxlan1을 br0에 연결
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
# ip netns exec overns ip link set br0 up
# ip netns exec overns ip link set vxlan1 up
# ip netns exec overns ip link set veth1 up
# ip netns exec pinkns ip link set eth0 up
eth0
veth1 eth0
veth1
12.12.12.2/24
02:42:c0:a8:00:02
12.12.12.3/24
02:42:c0:a8:00:03
터미널 #1
(192.168.104.2)
+ 터미널 #2 (192.168.104.3)
br0 br0
vxlan1 vxlan1
각 virtual interface 의 전원 On ~
(실습1) 오버레이
네트워크
eth1
pinkns (터미널#1)
overns (터미널#3) pinkns
overns
eth1
192.168.104.2 192.168.104.3
# nsenter --net=/var/run/netns/pinkns
eth0
veth1 eth0
veth1
12.12.12.2/24
02:42:c0:a8:00:02
12.12.12.3/24
02:42:c0:a8:00:03
터미널 #1
(192.168.104.2)
터미널 #2 (192.168.104.3)
br0 br0
vxlan1 vxlan1
# tcpdump -i eth1
생성한 네트워크 네임스페이스에 들어가 봅시다
# nsenter --net=/var/run/netns/overns
터미널 #3 (192.168.104.2)
하나 더
12.12.12.2/24
02:42:c0:a8:00:02
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
# ping 12.12.12.3
eth0
veth1 eth0
veth1
12.12.12.3/24
02:42:c0:a8:00:03
터미널 #1 (pinkns@192.168.104.2) 터미널 #2 (192.168.104.3)
br0 br0
vxlan1 vxlan1
# tcpdump -i eth1
Ping 12.12.12.2 → 12.12.12.3
# tcpdump -i br0
터미널 #3 (overns@192.168.104.2)
?
12.12.12.2/24
02:42:c0:a8:00:02
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
# ping 12.12.12.3
eth0
veth1 eth0
veth1
12.12.12.3/24
02:42:c0:a8:00:03
터미널 #1 (pinkns@192.168.104.2) 터미널 #2 (192.168.104.3)
br0 br0
vxlan1 vxlan1
12.12.12.3의 MAC주소가 뭐에요?
# tcpdump -i br0
ARP, Request who-has 12.12.12.3 tell 12.12.12.2, length 28
터미널 #3 (overns@192.168.104.2)
# tcpdump -i eth1
12.12.12.3/24
02:42:c0:a8:00:03
?
12.12.12.2/24
02:42:c0:a8:00:02
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
eth0
veth1 veth1
br0 br0
vxlan1 vxlan1
eth0
12.12.12.3의 MAC주소가 뭐에요?
12.12.12.3은 응답할 수가 없습니다. R
동네 배송은 취급 안함
12.12.12.3
12.12.12.3/24
02:42:c0:a8:00:03
?
12.12.12.2/24
02:42:c0:a8:00:02
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
eth0
veth1 veth1
br0 br0
vxlan1 vxlan1
eth0
12.12.12.3의 MAC주소가 뭐에요?
혹시 ...
퀵
부르셨나용 ?
12.12.12.3
vxlan
12.12.12.3은 누가 전달해 줄 수 있을까요?
12.12.12.3/24
02:42:c0:a8:00:03
12.12.12.2/24
02:42:c0:a8:00:02
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
eth0
veth1 veth1
br0 br0
vxlan1 vxlan1
eth0
12.12.12.3의 MAC주소가 뭐에요?
# ip neigh show
# ip neigh add 12.12.12.3 lladdr 02:42:c0:a8:00:03 dev vxlan1
# ip neigh show
12.12.12.3 dev vxlan1 lladdr 02:42:c0:a8:00:03 PERMANENT
H스퀘.. N9
.. sam.0 ...
vxlan
판교 H스퀘어 N동
N9 AB-TF sam.0 이요
핸펀은 010-XXX-XXXX
터미널 #3 (overns@192.168.104.2)
(실습1) 오버레이
네트워크
12.12.12.3의 MAC주소가 뭐에요?
# ip neigh add 12.12.12.3 lladdr 02:42:c0:a8:00:03 dev vxlan1
12.12.12.3 dev vxlan1 lladdr 02:42:c0:a8:00:03 PERMANENT
H스퀘.. N9
.. sam.0 ...
vxlan
판교 H스퀘어 N동
N9 AB-TF sam.0 이요
핸펀은 010-XXX-XXXX
목적지 IP 주소 목적지 MAC
주소
전송을 담당할
디바이스
arp table에 기록
lladdr? L2 주소 영구 사용
arp 상태 참고 : https://ebt-forti.tistory.com/m/145?category=849281
조회
ARP
12.12.12.2/24
02:42:c0:a8:00:02
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
# ping 12.12.12.3
eth0
veth1 eth0
veth1
12.12.12.3/24
02:42:c0:a8:00:03
터미널 #1 (pinkns@192.168.104.2) 터미널 #2 (192.168.104.3)
br0 br0
vxlan1 vxlan1
12.12.12.3의 MAC주소가 뭐에요?
# tcpdump -i br0
. . .
ARP, Reply 12.12.12.3 is-at 02:42:c0:a8:00:03 (oui Unknown),
length 28
터미널 #3 (overns@192.168.104.2)
# tcpdump -i eth1
ARP
12.12.12.2/24
02:42:c0:a8:00:02
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
# ping 12.12.12.3
eth0
veth1 eth0
veth1
12.12.12.3/24
02:42:c0:a8:00:03
터미널 #1 (pinkns@192.168.104.2) 터미널 #2 (192.168.104.3)
br0 br0
vxlan1 vxlan1
12.12.12.3의 MAC주소가 뭐에요?
# tcpdump -i vxlan1
. . .
ARP, Reply 12.12.12.3 is-at 02:42:c0:a8:00:03 (oui Unknown),
length 28
터미널 #3 (overns@192.168.104.2)
# tcpdump -i eth1
ARP
12.12.12.2/24
02:42:c0:a8:00:02
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
# ip neigh show
12.12.12.3 dev eth0 lladdr 02:42:c0:a8:00:03 REACHABLE
eth0
veth1 eth0
veth1
12.12.12.3/24
02:42:c0:a8:00:03
터미널 #1 (pinkns@192.168.104.2) 터미널 #2 (192.168.104.3)
br0 br0
vxlan1 vxlan1
12.12.12.3의 MAC주소가 뭐에요? 02:42:c0:a8:00:03
# tcpdump -i vxlan1
. . .
ARP, Reply 12.12.12.3 is-at 02:42:c0:a8:00:03 (oui Unknown),
length 28
터미널 #3 (overns@192.168.104.2)
# tcpdump -i eth1
ARP
12.12.12.2/24
02:42:c0:a8:00:02
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
# ping 12.12.12.3
eth0
veth1 eth0
veth1
12.12.12.3/24
02:42:c0:a8:00:03
터미널 #1 (pinkns@192.168.104.2) 터미널 #2 (192.168.104.3)
br0 br0
vxlan1 vxlan1
# tcpdump -i vxlan1
. . .
IP 12.12.12.2 > 12.12.12.3: ICMP echo request, id 2648, seq
60, length 64
터미널 #3 (overns@192.168.104.2)
# tcpdump -i eth1
Ping 12.12.12.2 → 12.12.12.3 No ICMP reply ?
ARP
ICMP (Internet Control Message Protocol)
IP 동작 진단/제어에 사용되고 오류에 대한 응답을 source IP에 제공
- L3 (Network Layer) 프로토콜
- 인터넷/통신 상황 report , 오류 보고, 위험상황에 대한 경보 등에 사용
- ping : destination host 작동여부 / 응답 시간 측정
- tracert : destination routing 경로 추적
(실습1) 오버레이
네트워크
Ping 12.12.12.2 → 12.12.12.3 No ICMP reply ?
목적지가 로컬?
Y
N
Packet flow
chain
(hook)
} table
iptables
FOWARD : NF_IP_FORWARD (hook)에 등록된 체인
ㄴ NF_IP_FORWARD : incoming 패킷이 다른 호스트로 포워딩되는 경우에 트리거되는 netfilter hook
filter (table) : 패킷을 목적지로 전송 여부를 결정
(실습1) 오버레이
네트워크
Ping 12.12.12.2 → 12.12.12.3 No ICMP reply ?
(실습1) 오버레이
네트워크
Ping 12.12.12.2 → 12.12.12.3 No ICMP reply ?
# iptables -t filter -L | grep policy
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
터미널 #3 (overns@192.168.104.2)
iptables forward 룰을 확인해 봅니다
Q) 왜 호스트가 아닌 overns의 iptables을 확인하였을까요?
네~ br0가 호스트가 아닌 overns 에 있기 때문입니다.
12.12.12.2/24
02:42:c0:a8:00:02
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
# ping 12.12.12.3
eth0
veth1 eth0
veth1
12.12.12.3/24
02:42:c0:a8:00:03
터미널 #1 (pinkns@192.168.104.2) 터미널 #2 (192.168.104.3)
br0 br0
vxlan1 vxlan1
# tcpdump -i vxlan1
. . .
IP 12.12.12.2 > 12.12.12.3: ICMP echo request, id 2648, seq
60, length 64
터미널 #3 (overns@192.168.104.2)
Ping 12.12.12.2 → 12.12.12.3 No Reply ICMP ?
# tcpdump -i eth1
?
ARP
# ip route
12.12.12.0/24 dev br0 proto kernel scope link src 12.12.12.1
# ip neigh show
12.12.12.3 dev vxlan1 lladdr 02:42:c0:a8:00:03 PERMANENT
# bridge fdb show
. . .
02:42:c0:a8:00:03 dev vxlan1 master br0
. . .
터미널 #3 (overns@192.168.104.2)
(실습1) 오버레이
네트워크
route table ~ 12.12.12.0 대역은 br0가 gateway
arp table ~ 12.12.12.3 → 02:42:c0:a8:00:03
bridge fdb ~ 02:42:c0:a8:00:03 → vxlan1가 처리하고 br0에 연결돼 있다는 정보
뭔가 정보가 부족한가 봅니다
vxlan1
12.12.12.3 → 02:42:C0:a8:00:03
so … how to deliver ?
Ping 12.12.12.2 → 12.12.12.3 No Reply ICMP ?
# bridge fdb add 02:42:c0:a8:00:03 dev vxlan1 self dst 192.168.104.3 vni 42 port 4789
# bridge fdb show | grep 02:42:c0:a8:00:03
02:42:c0:a8:00:03 dev vxlan1 dst 192.168.104.3 link-netnsid 0 self permanent
터미널 #3 (overns@192.168.104.2)
판교역 앞
마을버스 1번 ..
H스퀘어
건너편 하차 ..
vxlan
판교역에서 마을버스
1번을 타고
H스퀘어 건너편에서
내리면 돼요
(실습1) 오버레이
네트워크
Ping 12.12.12.2 → 12.12.12.3 No Reply ICMP ?
vxlan 에게 정확한 길을 상세히 알려 줍시다
실제 목적지의
물리 IP 주소
VTEP ID
패킷을 수령할
엔드포인트
실제 목적지의
물리 port
FDB
“02:42:c0:a8:00:03은 가상의 MAC address로
vxlan이 잘 포장해서 퀵으로 보내야 하므로
MAC주소를 처리할 수신처(호스트) IP를 적어주어야 합니다. “
192.168.104.2
# bridge fdb add 02:42:c0:a8:00:03 dev vxlan1 self dst 192.168.104.3 vni 42 port 4789
. . .
02:42:c0:a8:00:03 dev vxlan1 dst 192.168.104.3 link-netnsid 0 self permanent
터미널 #3 (overns@192.168.104.2)
(실습1) 오버레이
네트워크
Ping 12.12.12.2 → 12.12.12.3 No Reply ICMP ?
pinkns
vxlan 에게 정확한 길을 상세히 알려 줍시다
12.12.12.3/24
02:42:c0:a8:00:03
12.12.12.2/24
02:42:c0:a8:00:02
eth1
pinkns
overns overns
192.168.104.3
eth0
veth1 veth1
br0 br0
vxlan1
(vni 42)
eth0
eth1
vxlan1
FDB
FDB
ARP
12.12.12.2/24
02:42:c0:a8:00:02
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
# ping 12.12.12.3
eth0
veth1 eth0
veth1
12.12.12.3/24
02:42:c0:a8:00:03
터미널 #1 (pinkns@192.168.104.2) 터미널 #2 (192.168.104.3)
br0 br0
vxlan1 vxlan1
# tcpdump -i vxlan1
. . .
IP 12.12.12.2 > 12.12.12.3: ICMP echo request, id 2648, seq
60, length 64
터미널 #3 (overns@192.168.104.2)
Ping 12.12.12.2 → 12.12.12.3 오.. 터미널#2에 패킷이 보입니다
# tcpdump -i eth1
. . .
IP 192.168.104.2.39783 > ubuntu1804-2.4789: VXLAN, flags [I] (0x08), vni 42
IP 12.12.12.2 > 12.12.12.3: ICMP echo request, id 2815, seq 3082, length 64
. . .
FDB
ARP
12.12.12.2/24
02:42:c0:a8:00:02
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
# ping 12.12.12.3
eth0
veth1 eth0
veth1
12.12.12.3/24
02:42:c0:a8:00:03
터미널 #1 (pinkns@192.168.104.2) 터미널 #2 (192.168.104.3)
br0 br0
vxlan1 vxlan1
# tcpdump -i vxlan1
. . .
IP 12.12.12.2 > 12.12.12.3: ICMP echo request, id 2648, seq
60, length 64
터미널 #3 (overns@192.168.104.2)
Ping 12.12.12.2 → 12.12.12.3 But … No ICMP reply ...
# tcpdump -i eth1
. . .
IP 192.168.104.2.39783 > ubuntu1804-2.4789: VXLAN, flags [I] (0x08), vni 42
IP 12.12.12.2 > 12.12.12.3: ICMP echo request, id 2815, seq 3082, length 64
. . .
?
FDB
ARP
Ping 12.12.12.2 → 12.12.12.3 자 .. 이제 192.168.104.3 을 들여다 볼
차례입니다
# nsenter --net=/var/run/nents/overns
터미널 #2 (192.168.104.3)
터미널 #2의 overns 로 nsenter 합니다.
(실습1) 오버레이
네트워크
12.12.12.2/24
02:42:c0:a8:00:02
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns (터미널#2)
eth1
192.168.104.2 192.168.104.3
# ping 12.12.12.3
eth0
veth1 eth0
veth1
12.12.12.3/24
02:42:c0:a8:00:03
터미널 #1 (pinkns@192.168.104.2) 터미널 #2 (overns@192.168.104.3)
br0 br0
vxlan1 vxlan1
# tcpdump -i vxlan1
. . .
IP 12.12.12.2 > 12.12.12.3: ICMP echo request, id 2648, seq
60, length 64
터미널 #3 (overns@192.168.104.2)
Ping 12.12.12.2 → 12.12.12.3 “감” 오시나요 ?
# tcpdump -i vxlan1
…
IP 12.12.12.2 > 12.12.12.3: ICMP echo request, id 2833, seq 288, length 64
ARP, Request who-has 12.12.12.2 tell 12.12.12.3, length 28
…
FDB
ARP
터미널 #2 (overns@192.168.104.3)
# tcpdump -i vxlan1
…
IP 12.12.12.2 > 12.12.12.3: ICMP echo request, id 2833, seq 288, length 64
ARP, Request who-has 12.12.12.2 tell 12.12.12.3, length 28
…
(실습1) 오버레이
네트워크
Ping 12.12.12.2 → 12.12.12.3 “감” 오시나요 ?
# ip neigh show
# bridge fdb
02:42:c0:a8:00:02 dev vxlan1 dst 192.168.104.2 link-netnsid 0 self
# ip route
12.12.12.0/24 dev br0 proto kernel scope link src 12.12.12.1
ARP 없고
터미널 #2 (overns@192.168.104.3)
(실습1) 오버레이
네트워크
Ping 12.12.12.2 → 12.12.12.3 “감” 오시나요 ?
FDB 는 있고
터미널 #2 (overns@192.168.104.3)
# ip neigh add 12.12.12.2 lladdr 02:42:c0:a8:00:02 dev vxlan1
(실습1) 오버레이
네트워크
Ping 12.12.12.2 → 12.12.12.3 “감” 오시나요 ?
(실습1) 오버레이
네트워크
12.12.12.2의 MAC주소가 뭐에요?
# ip neigh add 12.12.12.2 lladdr 02:42:c0:a8:00:02 dev vxlan1
12.12.12.2 dev vxlan1 lladdr 02:42:c0:a8:00:02 PERMANENT
현백 .. 9F
.. lynn.h ...
vxlan
판교 현대백화점 9F
lynn.h 이요
핸펀 010-OOO-XXXX
목적지 IP 주소 목적지 MAC
주소
전송을 담당할
디바이스
arp table에 기록
lladdr? L2 주소 영구 사용
조회
ARP
12.12.12.2/24
02:42:c0:a8:00:02
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
# ping 12.12.12.3
64 bytes from 12.12.12.3: icmp_seq=1 ttl=64 time=0.549 ms
eth0
veth1 eth0
veth1
12.12.12.3/24
02:42:c0:a8:00:03
터미널 #1 (pinkns@192.168.104.2) 터미널 #2 (overns@192.168.104.3)
br0 br0
vxlan1 vxlan1
# tcpdump -i vxlan1
IP 12.12.12.2 > 12.12.12.3: ICMP echo request, id 2933, seq 3315 ...
IP 12.12.12.3 > 12.12.12.2: ICMP echo reply, id 2933, seq 3315 ...
터미널 #3 (overns@192.168.104.2)
Ping 12.12.12.2 → 12.12.12.3 성공 ~
# tcpdump -i vxlan1
…
IP 12.12.12.2 > 12.12.12.3: ICMP echo request, id 2933, seq 288, length 64
IP 12.12.12.3 > 12.12.12.2: ICMP echo reply, id 2933, seq 288, length 64
ARP, Request who-has 12.12.12.2 tell 12.12.12.3, length 28
ARP, Reply 12.12.12.2 is-at 02:42:c0:a8:00:02 (oui Unknown), length 28
…
FDB
ARP
FDB
ARP
101100010001000100010001000111001111111001111111000111111100
vxlan1 vxlan1
Overlay Network 열일해준 vxlan 에게 박수 ~ 👏👏👏
Overlay Network
Virtual Local Area Network
12.12.12.3 ~ I’m here !
그런데 말입니다 ...
bridge FDB는 어떻게 입력이 되었을까요?
12.12.12.2/24
02:42:c0:a8:00:02
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
eth0
veth1 eth0
FDB
veth1
ARP
12.12.12.3/24
02:42:c0:a8:00:03
br0 br0
vxlan1 vxlan1
ARP
직접입력
누가입력?
FDB
그런데 말입니다 ...
12.12.12.2/24
02:42:c0:a8:00:02
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
eth0
veth1 eth0
FDB
veth1
ARP
12.12.12.3/24
02:42:c0:a8:00:03
br0 br0
vxlan1 vxlan1
ARP
직접입력
누가입력?
bridge FDB는 어떻게 입력이 되었을까요?
# ip link add dev vxlan1 type vxlan id 42 proxy learning dstport 4789
vxlan 디바이스 생성 시에 learning 옵션을 켜주었습니다
FDB
→ 커널이 요청 패킷을 검사하여 bridge fdb에 기록해 줍니다.
(지난 시간에 배운 bridge의 기능 중 포트별 MAC 주소를 기억하는 learning 이 있었죠 )
그런데 말입니다 ...
# 수동 입력
02:42:c0:a8:00:03 dev vxlan1 dst 192.168.104.3 link-netnsid 0 self permanent
# 자동 입력
02:42:c0:a8:00:02 dev vxlan1 dst 192.168.104.2 link-netnsid 0 self
Aging 에 의해서 일정시간이 지나면 삭제됨
→ 지난 시간에 배운 … bridge는 aging 기능이 있고 TTL은 보통 300초
그런데 말입니다 ...
02:42:c0:a8:00:02 dev vxlan1 dst 192.168.104.2 link-netnsid 0 self
aging ? fdb에서 삭제되면 … 통신이 ???
��
네.. 12.12.12.3 → 12.12.12.2 으로의 통신은 되지 않습니다.
12.12.12.2 로 부터 통신이 있지 않으면 bridge fdb entry가 갱신이 되지 않기
때문이죠
bridge fdb 에서 02:42:c0:a8:00:02 를 지우고 ping 12.12.12.2 를 해보세요
# bridge fdb del 02:42:c0:a8:00:02 dev vxlan1 dst 192.168.104.2
# ping 12.12.12.2
. . .
--- 12.12.12.2 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1019ms
터미널 #2 (overns@192.168.104.3)
bridge fdb가 지워지면 통신이 되지 않습니다.
직접 fdb를 삭제 하긴 했습니다만.. 일정시간이 지나면 aging에 의하여 실제 fdb가 삭제됩니다
# bridge fdb replace 02:42:c0:a8:00:02 dev vxlan1 self dst 192.168.104.2 vni 42 port 4789
# bridge fdb show | grep 02:42:c0:a8:00:02
02:42:c0:a8:00:02 dev vxlan1 dst 192.168.104.2 link-netnsid 0 self permanent
터미널 #2 (overns@192.168.104.3)
(실습1) 오버레이
네트워크
192.168.104.3에서도 bridge fdb에 등록해 주세요
FDB
실제 목적지의
물리 IP 주소
VTEP ID
패킷을 수령할
엔드포인트
실제 목적지의
물리 port
## 이미 learning된 정보가 있으면 add는 실패하므로 replace 사용하였습니다
12.12.12.2/24
02:42:c0:a8:00:02
(실습1) 오버레이
네트워크
eth1
pinkns
overns pinkns
overns
eth1
192.168.104.2 192.168.104.3
eth0
veth1 eth0
veth1
12.12.12.3/24
02:42:c0:a8:00:03
터미널 #2 (pinkns@192.168.104.3)
br0 br0
vxlan1 vxlan1
Ping 12.12.12.3 → 12.12.12.2 성공 ~
# ping 12.12.12.3 → 12.12.12.2
…
IP 12.12.12.3 > 12.12.12.2: ICMP echo request, id 3933, seq 288, length 64
IP 12.12.12.2 > 12.12.12.3: ICMP echo reply, id 3933, seq 288, length 64
…
FDB
ARP
FDB
ARP
(실습1) 오버레이
네트워크
그림 완성
eth1
192.168.104.2
pinkns
12.12.12.2
02:42:c0:a8:00:02
overns
eth0
veth1
br0
vxlan1
eth1
pinkns
12.12.12.3
02:42:c0:a8:00:03
192.168.104.3
overns
eth0
veth1
br0
vxlan1
FDB
ARP
FDB
ARP
END
목차 보기

More Related Content

What's hot (20)

PDF
Basic security &amp; info
Tola LENG
 
PPTX
MPLS Layer 3 VPN
NetProtocol Xpert
 
PDF
MPLS-VPN
Eric Maxime
 
PDF
[242]open stack neutron dataplane 구현
NAVER D2
 
PDF
NFV & Openstack
Marie-Paule Odini
 
PPTX
présentation sur le vpn
Manuel Cédric EBODE MBALLA
 
PDF
LoadBalancer using KeepAlived
KhushalChandak1
 
DOCX
CISCO HSRP VRRP GLBP
YACINE MESSAOUI
 
PDF
Routed Provider Networks on OpenStack
Romana Project
 
PDF
Red Hat OpenStack 17 저자직강+스터디그룹_1주차
Nalee Jang
 
PDF
[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화
OpenStack Korea Community
 
PDF
Introduction of eBPF - 時下最夯的Linux Technology
Jace Liang
 
PPTX
Deploying a 3 tier application using docker
parth2094
 
PPTX
Docker Networking with New Ipvlan and Macvlan Drivers
Brent Salisbury
 
PDF
Redondance de routeur (hsrp, vrrp, glbp)
EL AMRI El Hassan
 
PDF
dachnug49 - panagenda Workshop - 100 new things in Notes, Nomad Web & MarvelC...
Christoph Adler
 
PDF
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
Ji-Woong Choi
 
PPTX
Introduccion a Ansible
Osvaldo
 
PPTX
VXLAN Integration with CloudStack Advanced Zone
Yoshikazu Nojima
 
PDF
Bastion jump hosts with Teleport
Faelix Ltd
 
Basic security &amp; info
Tola LENG
 
MPLS Layer 3 VPN
NetProtocol Xpert
 
MPLS-VPN
Eric Maxime
 
[242]open stack neutron dataplane 구현
NAVER D2
 
NFV & Openstack
Marie-Paule Odini
 
présentation sur le vpn
Manuel Cédric EBODE MBALLA
 
LoadBalancer using KeepAlived
KhushalChandak1
 
CISCO HSRP VRRP GLBP
YACINE MESSAOUI
 
Routed Provider Networks on OpenStack
Romana Project
 
Red Hat OpenStack 17 저자직강+스터디그룹_1주차
Nalee Jang
 
[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화
OpenStack Korea Community
 
Introduction of eBPF - 時下最夯的Linux Technology
Jace Liang
 
Deploying a 3 tier application using docker
parth2094
 
Docker Networking with New Ipvlan and Macvlan Drivers
Brent Salisbury
 
Redondance de routeur (hsrp, vrrp, glbp)
EL AMRI El Hassan
 
dachnug49 - panagenda Workshop - 100 new things in Notes, Nomad Web & MarvelC...
Christoph Adler
 
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
Ji-Woong Choi
 
Introduccion a Ansible
Osvaldo
 
VXLAN Integration with CloudStack Advanced Zone
Yoshikazu Nojima
 
Bastion jump hosts with Teleport
Faelix Ltd
 

Similar to Make container without_docker_6-overlay-network_1 (20)

PDF
Make container without_docker_7
Sam Kim
 
PDF
도커 없이 컨테이너 만들기 4편 네트워크네임스페이스 (2)
Sam Kim
 
PPTX
[오픈소스컨설팅] Linux Network Troubleshooting
Open Source Consulting
 
PPT
[OpenStack 하반기 스터디] HA using DVR
OpenStack Korea Community
 
PDF
Docker Setting for Static IP allocation
Ji-Woong Choi
 
PDF
debugging openstack neutron /w openvswitch
어형 이
 
PDF
도커 없이 컨테이너 만들기 5편 마운트 네임스페이스와 오버레이 파일시스템
Sam Kim
 
PPTX
Openstack Testbed_ovs_virtualbox_devstack_single node
Yongyoon Shin
 
PDF
[ 2021 AI + X 여름 캠프 ] 1. linux 기초 & 장비 세팅
ChoiYura
 
PPTX
Network Algorithmics
인욱 황
 
PDF
OpenStack DVR_What is DVR?
Yongyoon Shin
 
PDF
OpenStack networking-sfc flow 분석
Yongyoon Shin
 
PDF
ACI MultiPod 구성
Woo Hyung Choi
 
PDF
Open stackdaykorea2016 wedge
Junho Suh
 
PPTX
SDN OpenFlow Load Balancer 시나리오
ymtech
 
PDF
ACI DHCP 구성 가이드
Woo Hyung Choi
 
PDF
DEVIEW - 오픈소스를 활용한 분산아키텍처 구현기술
John Kim
 
PDF
ACI Multicast 구성 가이드
Woo Hyung Choi
 
PDF
[233] level 2 network programming using packet ngin rtos
NAVER D2
 
PPTX
Installation Openstack Swift
ymtech
 
Make container without_docker_7
Sam Kim
 
도커 없이 컨테이너 만들기 4편 네트워크네임스페이스 (2)
Sam Kim
 
[오픈소스컨설팅] Linux Network Troubleshooting
Open Source Consulting
 
[OpenStack 하반기 스터디] HA using DVR
OpenStack Korea Community
 
Docker Setting for Static IP allocation
Ji-Woong Choi
 
debugging openstack neutron /w openvswitch
어형 이
 
도커 없이 컨테이너 만들기 5편 마운트 네임스페이스와 오버레이 파일시스템
Sam Kim
 
Openstack Testbed_ovs_virtualbox_devstack_single node
Yongyoon Shin
 
[ 2021 AI + X 여름 캠프 ] 1. linux 기초 & 장비 세팅
ChoiYura
 
Network Algorithmics
인욱 황
 
OpenStack DVR_What is DVR?
Yongyoon Shin
 
OpenStack networking-sfc flow 분석
Yongyoon Shin
 
ACI MultiPod 구성
Woo Hyung Choi
 
Open stackdaykorea2016 wedge
Junho Suh
 
SDN OpenFlow Load Balancer 시나리오
ymtech
 
ACI DHCP 구성 가이드
Woo Hyung Choi
 
DEVIEW - 오픈소스를 활용한 분산아키텍처 구현기술
John Kim
 
ACI Multicast 구성 가이드
Woo Hyung Choi
 
[233] level 2 network programming using packet ngin rtos
NAVER D2
 
Installation Openstack Swift
ymtech
 
Ad

Recently uploaded (20)

PDF
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
PPTX
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
PPTX
Java Native Memory Leaks: The Hidden Villain Behind JVM Performance Issues
Tier1 app
 
PDF
LPS25 - Operationalizing MLOps in GEP - Terradue.pdf
terradue
 
PDF
Difference Between Kubernetes and Docker .pdf
Kindlebit Solutions
 
PDF
Transform Retail with Smart Technology: Power Your Growth with Ginesys
Ginesys
 
PPTX
Perfecting XM Cloud for Multisite Setup.pptx
Ahmed Okour
 
PPTX
PowerISO Crack 2025 – Free Download Full Version with Serial Key [Latest](1)....
HyperPc soft
 
PDF
interacting-with-ai-2023---module-2---session-3---handout.pdf
cniclsh1
 
PPTX
Automatic_Iperf_Log_Result_Excel_visual_v2.pptx
Chen-Chih Lee
 
PPTX
MiniTool Power Data Recovery Full Crack Latest 2025
muhammadgurbazkhan
 
PPTX
Comprehensive Guide: Shoviv Exchange to Office 365 Migration Tool 2025
Shoviv Software
 
PPTX
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
PPTX
CONCEPT OF PROGRAMMING in language .pptx
tamim41
 
PDF
Powering GIS with FME and VertiGIS - Peak of Data & AI 2025
Safe Software
 
PPTX
An Introduction to ZAP by Checkmarx - Official Version
Simon Bennetts
 
PDF
Laboratory Workflows Digitalized and live in 90 days with Scifeon´s SAPPA P...
info969686
 
PPTX
Revolutionizing Code Modernization with AI
KrzysztofKkol1
 
PPTX
Human Resources Information System (HRIS)
Amity University, Patna
 
PPTX
Cubase Pro Crack 2025 – Free Download Full Version with Activation Key
HyperPc soft
 
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
Java Native Memory Leaks: The Hidden Villain Behind JVM Performance Issues
Tier1 app
 
LPS25 - Operationalizing MLOps in GEP - Terradue.pdf
terradue
 
Difference Between Kubernetes and Docker .pdf
Kindlebit Solutions
 
Transform Retail with Smart Technology: Power Your Growth with Ginesys
Ginesys
 
Perfecting XM Cloud for Multisite Setup.pptx
Ahmed Okour
 
PowerISO Crack 2025 – Free Download Full Version with Serial Key [Latest](1)....
HyperPc soft
 
interacting-with-ai-2023---module-2---session-3---handout.pdf
cniclsh1
 
Automatic_Iperf_Log_Result_Excel_visual_v2.pptx
Chen-Chih Lee
 
MiniTool Power Data Recovery Full Crack Latest 2025
muhammadgurbazkhan
 
Comprehensive Guide: Shoviv Exchange to Office 365 Migration Tool 2025
Shoviv Software
 
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
CONCEPT OF PROGRAMMING in language .pptx
tamim41
 
Powering GIS with FME and VertiGIS - Peak of Data & AI 2025
Safe Software
 
An Introduction to ZAP by Checkmarx - Official Version
Simon Bennetts
 
Laboratory Workflows Digitalized and live in 90 days with Scifeon´s SAPPA P...
info969686
 
Revolutionizing Code Modernization with AI
KrzysztofKkol1
 
Human Resources Information System (HRIS)
Amity University, Patna
 
Cubase Pro Crack 2025 – Free Download Full Version with Activation Key
HyperPc soft
 
Ad

Make container without_docker_6-overlay-network_1