Networking
幫助 - 使用兩個介面設置 Linux FW 的問題
首先,對不起我的英語 lul
我有一個在docker下執行的非常簡單的基礎設施:
container1
:iptables防火牆;
container2
:https儲存庫;
container3
: 可靠的伺服器。container1有兩個介面,因此它可以通過eth0通過 WAN 出去**,並通過eth1** (LAN)與容器 2 和 3 通信
我面臨的問題是使 LAN 能夠訪問網際網路(ping -c3 google.com)。
container1
- 我已經設置了 ipv4_forwarding 並將 WAN 的 GW 作為我的預設路由(它與其他兩個容器通信並到達網際網路)。
container2
;container3
- 他們在 LAN 上正常通信,但無法 ping FW 的 IP 地址,因此無法到達 WAN…我已經設置了一個靜態路由傳播 FW 的 WAN 子網,現在他們可以 ping 200.200.100.1(docker 的橋接介面是用作FW子網GW,FW IP:200.200.200.2)。我是否遺漏了任何 iptables conf(還沒有做任何事情)或者我是否需要從 docker 配置路由(在主機上的介面 docker0-docker1 之間)?
如果需要,可以發送容器路由表,也許缺少一些東西。
希望有朋友能幫幫我”)
親切的問候。
假設 LAN 子網是10.20.20.0/24(docker IP 範圍)並且到網際網路(WAN)的介面是eth0
在 docker bridge 所在的主機上執行以下命令(在這種情況下,您的主機將充當防火牆)
# apt install iptables-persistent -y # iptables -t nat -A POSTROUTING ! -d 10.20.20.0/24 -o eth0 -j MASQUERADE # iptables -I FORWARD -j ACCEPT # netfilter-persistent save # netfilter-persistent reload