랜카드가 3개 장착된 우분투 서버를 유선 공유기로 만드는 방법을 알아보자.
1. 네크워크 인터페이스 구성
네크워크 구성 파일을 연다.
sudo vi /etc/netplan/00-installer-config.yaml
파일에 아래와 같은 내용을 입력한다.
network: version: 2 renderer: networkd ethernets: enp3s0: # 첫번째 랜카드. 인터넷에 직접 연결된다. dhcp4: true enp4s0: # 두번째 랜카드. dhcp4: false addresses: - 192.168.0.1/24 enp5s0: # 세번째 랜카드. dhcp4: false addresses: - 192.168.1.1/24
enp3s0, enp4s0, enp5s0 등의 네트워크 인터페이스 이름은 네크워크 환경에 따라 다를 수 있다.
파일을 저장하고 편집기를 닫는다.
구성 내용을 시스템에 적용한다.
sudo netplan apply
2. DHCP 서버의 설치와 구성
DHCP 서버 패키지를 설치한다.
sudo apt install isc-dhcp-server
시스템에 네트워크 인터페이스가 2개 이상이므로 바인딩이 필요하다. /etc/default/isc-dhcp-server 파일을 연다.
sudo vi /etc/default/isc-dhcp-server
아래와 같은 내용으로 작성한다.
INTERFACESv4="enp4s0 enp5s0" # 두번째와 세번째 랜카드. INTERFACESv6=""
DHCP 서버의 메인 구성 파일을 연다.
sudo vi /etc/dhcp/dhcpd.conf
아래와 같은 내용을 입력한다.
default-lease-time 600; # IP 주소 임대 시간 (초). max-lease-time 7200; # IP 주소 임대 시간의 최대값. option domain-name-servers 8.8.8.8, 8.8.4.4; # DNS 서버 주소. subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.201 192.168.0.220; # 임대할 IP 주소의 범위. option routers 192.168.0.1; # 게이트웨이 주소. 두번째 랜카드의 IP 주소이다. } subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.201 192.168.1.220; # 임대할 IP 주소의 범위. option routers 192.168.1.1; # 게이트웨이 주소. 세번째 랜카드의 IP 주소이다. }
파일을 저장하고 편집기를 닫는다.
DHCP 서버를 재시작한다.
sudo systemctl restart isc-dhcp-server
3. 인터넷 연결 공유 구성
인터넷 연결 공유를 위한 1단계 작업은 IP 포워딩 활성화이다.
시스템에서 IP 포워딩이 가능하도록 한다.
sudo sysctl -w net.ipv4.ip_forward=1
2단계 작업은 iptables 명령으로 FILTER 테이블과 NAT 테이블을 구성하는 것이다.
FILTER 테이블의 모든 체인을 초기화한다.
sudo iptables -F
NAT 테이블의 모든 체인을 초기화한다.
sudo iptables -t nat -F
NAT 테이블에 IP 매스커레이딩을 적용한다.
iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE
여기서 enp3s0 은 인터넷에 직접 연결된 랜카드의 이름이다.
4. 테스트
우분투 서버를 활용한 유선 공유기가 완성되었다.
다른 PC 나 노트북의 랜 포트를 우분투 서버의 랜 포트와 연결한다. 각각의 PC 와 노트북은 DHCP 서버를 통해 자동으로 IP 주소를 할당받도록 구성되어야 한다. 각각의 장치들에서 인터넷 연결이 가능한지 확인해 보자.