두 개 이상의 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