2015. 1. 10. 09:22

iptables를 사용한 인터넷 공유설정



iptables -t nat -A POSTROUTING -s 10.7.0.0/24 -o eth0 -j MASQUERADE

-s 뒤에 오는 것은 소스IP 의 대역입니다.(공유된 인터넷을 사용할 내부 IP)

-o 뒤에 오는 eth0 은 실제 인터넷에 연결된 이터넷 장치 입니다.



위 예문은 10.7.0.0 의 IP 대역으로 부터의 패킷을 etho 으로 -j 점프(?) 시킨다 입니다.

(로컬 IP대역은 각자 상황에 맞게 수정하여야 합니다.)


-s 뒤에 /24 는 서브넷 마스크 255.255.255.0 을 의미 합니다.




왜 24 라는 숫자가...?


서브넷 마스크(255.255.255.0)를 2진수로 풀어내면 아래와 같이 됩니다.

255

 255

 255

 0

 11111111

 11111111

 11111111

 00000000


여기서 1의 갯수가 총 24개 !! 바로 이것입니다.


1이 1개 더 증가해서

11111111.11111111.11111111.10000000 이라면


서브넷 마스크 는

255.255.255.128 이 되겠군요...




이렇게 했는데 그런데 안되쟎...?


제 경우 ipv4_forwarding 설정이 0 이어서 안된 경우가 있었습니다. 덕분에 리눅스 재설치 까지 해가며 삽질을...;;

ipv4_forwarding 설정을 확인 하시고, 1로 설정한 후 네트워크 서비스를 재시작 하였더니 바로 잘 동작하였습니다.



ipv4_forwarding설정 방법

http://haebi.kr/entry/ipv4forwarding-확인-및-설정



Posted by 해비