CLOUD/Docker&Kubernetes

[Docker/Linux] 가상 네트워크 설정하기

alsruds 2023. 4. 20. 17:27

● namespace 확인

lsns

 

namespace 생성 & 확인

# 생성
ip netns add ns1
# ip netns add [namespace 이름]

# 확인
ip netns list
# lsns으로 확인 : 네트워크를 사용하는 PID가 없어서 목록이 안나옴

 

가상의 네트워크 장치 추가 & 삭제

# 추가
ip link add veth-ns1 type veth
# 이름 : veth-ns1 , 타입 : veth

# 확인
ip addr

# 삭제
ip link del veth-ns1

 

가상의 링크 생성

ip link add veth-ns1 type veth peer name veth-ns2
# veth-ns1 생성
# veth-ns2 생성

 

namespace에 링크 연결

ip link set veth-ns1 netns ns1
ip link set veth-ns2 netns ns2
# ip link set [장치명] netns [namespace명]

# 확인
ip netns list

 

namespace 장치 확인

ip netns exec ns1 ip addr
ip netns exec ns2 ip addr
# ip netns exec [namespace명] ip addr

 

추가한 장치 IP 설정 & 인터페이스 활성화

# IP 설정
ip netns exec ns1 ip address add 10.0.0.10/24 dev veth-ns1
ip netns exec ns2 ip address add 10.0.0.20/24 dev veth-ns2
# ip netns exec [namespace명] ip address add [ip/netmask] dev [장치명]

# 인터페이스 활성화
ip netns exec ns1 ip link set veth-ns1 up
ip netns exec ns2 ip link set veth-ns2 up
# ip netns exec [namespace명] ip link set [장치명] up

 

통신 확인

# ping 명령어
ip netns exec ns1 ping 10.0.0.20