請問不同的目的地ip可以跑不一樣的gateway嘛?

因為有特殊需求需跑10.x.x.x的網段,而又需要連internet,因公司有2台gateway,其中一台連internet,另一台連10.x.x.x網段,正常情況是設定是一張網卡綁2個ip,gateway設定為連internet的那台,然後加上static route連10.x.x.x就丟到另一台gateway,現在問題來了,有幾台電腦是用無線上網的,而無線基地台無法設定2組ip,所以也就無法把10.x.x.x丟到另一個gateway,而對外的那台gateway是linux,是否可以在linux底下用iptables設定2組NAT,就是原本跑internet還是跑intetnet,但是只要目的地是10.x.x.x的就在丟到另一台gateway上跑去10.x.x.x嘛?還是有其他更好的方式可供參考,謝謝。
用Linux 我不會,但若用一台Vigor2920 雙WAN應就解決了.
因他的內網可以切成四個不同網段, 每個網段可以各自限制,那些IP能上網,哪些不能上..或乾脆開第三個網段給來賓用
試試看在第一台GETWAY加入一筆固定路由
10.X.X.X 255.0.0.0 第二台GETWAY的IP
你10.x.x.x的GETWAY IP必須屬於第一台內部IP的範圍喔
這樣設定就可以了
相關知識:
iproute2 多重路由
iptables 防火牆
shell script 腳本程式設計

**************************************

假設閘道主機 3片網卡

eth0 對外網卡

eth1 對內網卡,192.168.0.0/24

eth2 對內網卡, 10.0.0.0/8


腳本範例參考:

註:
這個只是提供:語法、思路的參考,照貼一定行不通,要修改。

因為論壇貼程式碼會湖成一團,所以用貼圖的:






要複製的話,上面圖片的內容為以下:

複製到能語法高亮顯示的文字編輯器,去看,會比較清楚。

語言:shell scirpt



# 定義變數
LAN_1_IF=eth1
LAN_1_NET=192.168.0.0/24

LAN_2_IF=eth2
LAN_2_IP=10.0.0.254
LAN_2_NET=10.0.0.0/8

# 由 LAN_1 網卡進入封包,目的為 10.0.0.0/8,在路由前就貼上標籤 1010
iptables -t mangle -A PREROUTING -i $LAN_1_IF -d $LAN_2_NET -j MARK --set-mark 1010

# 刪除雙 LAN 用的 table 10 路由(初始化)
ip rule del table 10 2>/dev/null

# 設定 iproute2 多重路由,使用 table 10
# 貼有標籤 1010 的封包,使用此表處理路由
# 要往 LAN_1 網段發送的封包,走 LAN_1 網卡送出去
ip rule add fwmark 1010 table 10
ip route replace $LAN_1_NET dev $LAN_1_IF table 10
# 從 LAN_2 網段進入的封包,使用此表處理路由
# 要往 LAN_2 網段發送的封包,走 LAN_2 網卡送出去
ip rule add from $LAN_2_NET table 10
ip route replace $LAN__2_NET dev $LAN_2_IF table 10
# 路由表 10,預設閘道 LAN_2 網卡
ip route replace default via $LAN_2_IP dev $LAN_2_IF table 10

# 刪除 main(254號)路由表中,對內雙網卡多餘的路由規則,以避免路由錯亂
ip route del $LAN_2_NET dev $LAN_2_IF table 254 2>/dev/null

# 更新路由表快取,使新路由立刻生效
ip route flush cache


#####################################

# 另外你可能需要開放 iptable 防火牆,讓封包通過

# 允許已建立連線和回應的封包通過
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

#設定哪些 port(service 服務)封包,可以通過 LAN_2 網卡
LAN_2_TCP="22 25 53 80 443 123 110 143 137 138 139 3128 10000"
LAN_2_UDP="53 123 137 138 139"
LAN_2_ICMP="0 3 8 11"

# 允許特定 TCP 埠號的新連線
for port in $LAN_2_TCP ; do
iptables -A INPUT -i $LAN_2_IF -p tcp --dport $port -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $LAN_2_IF -p tcp --sport $port -m state --state NEW -j ACCEPT
done

# 允許特定 UDP 埠號的連出新連線
for port in $LAN_2_UDP ; do
iptables -A INPUT -i $LAN_2_IF -p udp --dport $port -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $LAN_2_IF -p udp --sport $port -m state --state NEW -j ACCEPT
done

# 允特特定 ICMP TYPE 新連線
for type in $LAN_2_ICMP ; do
iptables -A INPUT -i $LAN_2_IF -p icmp -s $LAN_1_NET --icmp-type $type -j ACCEPT
iptables -A OUTPUT -o $LAN_2_IF -p icmp -d $LAN_1_NET --icmp-type $type -j ACCEPT
iptables -A INPUT -i $LAN_2_IF -p icmp -s $LAN_2_NET --icmp-type $type -j ACCEPT
iptables -A OUTPUT -o $LAN_2_IF -p icmp -d $LAN_2_NET --icmp-type $type -j ACCEPT
done

文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!