본문 바로가기
리눅스

Linux 만으로 fwlb(Firewall LoadBalncing) 구현

by Joseph.Lee 2019. 2. 2.


인터넷 ----- (eth0, 1.2.3.4)라우터머신(eth1, 10.0.0.1/24) ----- (10.0.0.2,3)방화벽머신(10.1.0.2,3/24) ---- 서버넷(10.1.0.0/24)



라우터머신에서 

# ip route add 10.1.0.0/24 nexthop via 10.0.0.2 dev eth1 weight 1 nexthop via 10.0.0.3 dev eth1 weight 1

Health 체크해야 하는데.. 따로 프로그램 개발해보려고 한다.


방화벽머신에서

sysctl에 net.ipv4.ip_forward=1추가

FORWARD 룰 추가


:INPUT ACCEPT [85585:5846741]

:FORWARD DROP [0:0]

:OUTPUT ACCEPT [151412:23960411]

-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

-A FORWARD -i eth0.101 -o eth0.50 -m conntrack --ctstate NEW -j ACCEPT


그리고 Snort등 IDS/IPS설치



서버에서 (젤루 복잡합..ㅠㅠ)

1. /etc/iproute2/rt_tables 에

 101 fw1

 102 fw2

추가

2. 라우트 테이블에 추가

# ip route add default table fw1 via 10.1.0.2 dev eth0

# ip route add default table fw2 via 10.1.0.3 dev eth0
# ip rule add from all fwmark 101 lookup fw1
# ip rule add from all fwmark 101 lookup fw1

3. iptables에 추가
# iptables -t mangle -A PREROUTING -m mac --mac-source 11:11:11:11:11:01 (fw1 MAC주소) -j MARK --set-mark 101
# iptables -t mangle -A PREROUTING -m mac --mac-source 11:11:11:11:11:02 (fw2 MAC주소) -j MARK --set-mark 102
# iptables -t mangle -A PREROUTING -j CONNMARK --save-mark



반응형

댓글