외부 통신 브릿지 네트워크 생성

mimic·3일 전

개요

노드 서버 이더넷에 외부 통신 용 공인 IP, 내부 사설 IP 1개씩 할당되어 있는 상태에서 VM이 사설 IP만 할당받더라도 외부와의 아웃바운드 통신이 가능하도록 외부 통신 용 NAT 용도의 브릿지 네트워크 생성

  • 노드 서버 이더넷 현황
eth 명할당 대역
xenbr0외부 공인 IP
xenbr1내부 사설 IP

노드 설정

내부 전용 네트워크 생성

물리 NIC가 없는 브릿지 전용 네트워크르를 생성합니다.

# 생성
NET=$(xe network-create name-label=nat-ext)

# 브릿지 명 확인
xe network-param-get uuid=$NET param-name=bridge
===
xapi0
===

브릿지 활성화 (노드와 실제 연결)

xe network-attach uuid=$NET host-uuid=$(xe host-list --minimal)

연결 확인

ovs-vsctl list-br
===
xapi0
xenbr0
xenbr1
===

브릿지 xapi0 IP 할당

192.168.0.1/24로 할당하겠습니다.

# 브릿지명 변수 화
BR=$(xe network-param-get uuid=$NET param-name=bridge)

# 브릿지 IP 할당 후 UP
ip addr add 192.168.0.1/24 dev $BR
ip link set $BR up

MASQUERADE 설정

# 명령어 임시 추가
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o xenbr0 -j MASQUERADE

# 영구 추가
vi /etc/sysctl.conf
===
net.ipv4.ip_forward = 1
===

cp -arp /etc/sysconfig/iptables /etc/sysconfig/iptables_ori
vi /etc/sysconfig/iptables
===
nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
# 특정 포트 포워딩
-A PREROUTING -i xenbr0 -p tcp --dport $BindingPort -j DNAT --to $VM_IP:$PORT
# 외부 통신 포워딩
-A POSTROUTING -s 192.168.0.0/24 -o xenbr0 -j MASQUERADE
===

VM 내 라우팅 설정

기본적으로 NAT-External로 패킷이 흐르지만 사내 대역대만 사설 IP 쪽으로 흐르게 해줘야 하는 경우가 있습니다.
그럴 때에는 라우팅을 고정합니다.

Redhat

cd /etc/NetworkManager/system-connections
vi $이더넷_명.nmconnection
===
[ipv4]
address1=10.10.0.130/24
dns=8.8.8.8;
method=manual
never-default=true
route1=10.172.16.0/24,10.10.0.1
===
nmcli con reload
nmcli up $이더넷_명
route -n # 후 확인

Debian

cd /etc/netplan
vi 00-installer-config.yaml
===
    enX2:
      accept-ra: true
      addresses:
      - 10.10.0.130/24
      nameservers:
        addresses:
        - 8.8.8.8
        search:
        - 8.8.8.8
      routes:
        - to: 10.172.16.0/24
          via: 10.10.0.1
          table: 100
      routing-policy:
        - from: 10.10.0.130
          table: 100
===
netplan apply 
route -n # 후 확인
profile
Raiju Hantu Goryo Obake

0개의 댓글