안녕하세요.
평소 리눅스 삽질하면서 간간히 사용하고 있었지만,
사무실 게이트웨이가 리눅스 서버에서 iptables 를 돌려 사용중이나 도저히 모르겠어서 질문 드립니다.
* 구성
eth0 : Uplink [외부 공인 IP]
eth1 : 192.168.1.0/24
eth2 : 192.168.2.0/24
eth3 : 192.168.3.0/24
위와 같이 nic이 설정 되어 있고
eth2에 연결된 L3 스위치에서 별도의 사설 대역을 생성하였습니다.
192.168.2.10 으로 설정된 L3 스위치에 172.16.0.0/16 의 네트워크가 있고
* iptables 에서는
ip route add 172.16.0.0/16 via 192.168.2.10 이렇게 설정하여
172네트워크에서 정상적인 인터넷 사용이 가능해야 하는데 안되내요.
[172네트워크 에서 192.168.1.0/24 , 192.168.3.0/24 는 통신 가능, 외부 인터넷만 안됨]
* iptables 체인은
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
외부에서 들어오는 부분만 drop이라 172.16.0.0 에서 외부로는 나가지만 외부에서 못 들어오는것 같습니다.
172.16.0.0/16 네트워크가 서버에는 없는 대역이라 설정이 안되는 것인지 다른 방법이 있는지 질문 드립니다.
PS. 아래 두둘을 넣어보아도 172.16.0.0/16 에서는 인터넷이 안되는군요
iptables -A INPUT -d 192.168.2.10 -j ACCEPT
iptables -A INPUT -d 172.16.0.0/16 -j ACCEPT
뭐 말씀해 주신 것 만으로는 짐작이 어려운 듯 합니다.
확실한건, tcpdump 등을 이용해 실제 패킷이 어떻게 나가는지 등을 확인해 보는 방법일 듯 합니다. (어디까지 오고 있고, 어디서 안 나가고 있는지 등이죠)
예를들면 172.16.1.2 에서 외부로 ping을 보내게 해 놓고,
tcpdump -ni eth2 host 172.16.1.2
와 같이 해서 eth2쪽으로 패킷이 잘 들어오고 있는지 확인해 보고, 응답이 나가는지 아닌지 확인해 볼 수 있겠죠.
잘 되는 것 같다 싶으면,
tcpdump -ni eth0
에서도 비슷한 방식으로 검색해 보면 되구요.
다만 eth0 은 해당 장비에서 NAT를 처리할 경우 IP 가 바뀌어야 하기 때문에 host 옵션으로 172.16 영역대를 잡으면 안 잡혀야 하겠지요. 이럴 땐 destination 기준으로 고르거나, protocol 기준으로 고르는 수도 있는데, 뭐 여러 가지 방법이 있으니 요령껏 해당 패킷만 골라내도록 고민해 보시면 될 듯 합니다.
192.168.x.x에 대한 방향만 알고 있는것이지 인터넷에 대한 방향은 모르는 상황이 아닐까 하네요.
/ in mobile
이렇게 넣고 되는 부분 확인 했습니다.
nat 설정이 안되서 그랬던 것인지 어렵군요
리눅스 서버에 s/w firewall 같은걸 돌리시나 봅니다?
서버 포트에 스위치를 연결하셔서 그 밑에 172.16.0.0/16 네트워크를 구성하셨다는 이야기였나보군요...
L3스위치가 Gateway 장비라고 생각하고 있었는데 위와 같은 구성이라면 NAT 문제가 맞을 것 같습니다.