Blog categories

Comments

[Ubuntu] Multi-NIC 사용 시 인터넷 연결 공유하기

[Ubuntu] Multi-NIC 사용 시 인터넷 연결 공유하기

두 개 이상의 Network Interface Cards (NIC)를 사용하여 클러스터를 구성할 때 한 쪽은 외부 Internet (WAN)으로 연결되어 있고 한 쪽은 내부 망 (LAN)으로 연결 되어 있을 경우 아래와 같이 구성되어 있게 된다.

Internet <<===>> p2p1 <> Master Node (Ubuntu gateway) <> p2p2 <<===>> Slave Node

Slave Node가 Internet에 접속하기 위해서는 Master Node와 Slave Node에서 각각 설정이 필요하다.

Gateway 설정 (Master Node)

마스터 노드에는 두 개의 네트워크 어뎁터(network adapters)가 설치되어 있다고 가정한다. 각 어뎁터는 p2p1, p2p2로 이름 붙여있다고 가정한다. LAN은 192.168.0.0/24 서브넷을 사용한다.

p2p1 : 인터넷에 물린 어뎁터 (Internet, external or WAN)
p2p2 : 내부망에 물린 어뎁터 (internal, LAN)
192.168.0.x = IP Subnet for p2p2

p2p2 인터넷 네트워크 카드의 IP를 고정 IP로 설정한다.

sudo ip addr add 192.168.0.1/24 dev p2p2

내부망에 패킷들을 외부로 라우팅 하기 위해 iptables을 아래와 같이 설정한다.

sudo iptables -A FORWARD -o p2p1 -i p2p2 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -o p2p1 -j MASQUERADE

설정한 iptables 정보를 저장한다.

sudo sh -c "iptables-save > /etc/iptables.rules"

매 시작 시 현재 설정한 iptables 설정값이 불려올 수 있도록 /etc/rc.local 파일의 마지막에 다음과 같이 작성한다. (exit 0 위에)

iptables-restore < /etc/iptables.rules

IP Forwarding이 가능하도록 한다.

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

/etc/sysctl.conf 파일에 아래 항목의 주석을 해제한다. (Ubuntu 10.10 이후 버전)

net.ipv4.ip_forward=1
Slave Node 설정

라우팅 정보를 추가한다.

sudo ip route add default via 192.168.0.1
DNS 서버 설정

기존의 /etc/resolve.conf 파일의 백업본을 생성한다.

sudo cp /etc/resolv.conf /etc/resolv.conf.bak

/etc/dhcp/dhclient.conf 파일 내용을 수정한다. 경우에 따라 /etc/dhcp3/ 폴더에 위치할 수 있다. 해당 파일에서 prepend domain-name-server 항목을 올바른 nameserver로 수정한다.

sudo vim /etc/dhcp/dhclient.conf

    
prepend domain-name-servers x.x.x.x,8.8.8.8;

network 서비스를 재시작한다.

sudo /etc/init.d/networking restart

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

div#stuning-header .dfd-stuning-header-bg-container {background-image: url(https://tech.sangron.com/wp-content/uploads/sites/2/2018/04/ubuntu_wallpaper_background.jpg);background-color: #3f3f3f;background-size: cover;background-position: top center;background-attachment: initial;background-repeat: no-repeat;}#stuning-header div.page-title-inner {min-height: 350px;}