hentai_baka 发表于 2022/4/30 20:54

Linux 雙網卡 PBR 自定義網關

本帖最后由 hentai_baka 于 2024/1/27 20:31 编辑

直接上情況

主機擁有兩張網卡 (A & B),A 負責內網請求數據,B 負責外部連接。
所有外網連接不能經過 A 網卡。

Linux 不能設定兩個預設網關。為解決這個情況這次會使用到 iproute2。

僅適用於 Debian

1. 配置 /etc/network/interfaces 負責外部連接的網卡設定為預設網關,另外一張網卡需要添加網關靜態路由 (注意 ip route,輸入 LAN 網關地址),例子
# LAN
auto ens18
iface ens18 inet static
      address 10.xx.xx.xx/24
      up ip addr add 10.xx.xx.xx/24 dev $IFACE
      up ip addr add 10.xx.xx.xx/24 dev $IFACE
      up ip addr add 10.xx.xx.xx/24 dev $IFACE
      up ip addr add 10.xx.xx.xx/24 dev $IFACE
      up ip addr add 10.xx.xx.xx/24 dev $IFACE
      up ip route add 10.xx.xx.1/32 dev $IFACE

# WAN
auto ens19
iface ens19 inet static
      address 11.xx.xx.xx/24
      gateway 11.xx.xx.1


2. 配置 /etc/iproute2/rt_tables,添加 (例子:15 WAN),數值名稱都可以隨意更改別太小

3. 這邊使用 /etc/rc.local 作為開機啟動程序,配置規則 (你也可以在上面 interfaces 裏面添加,個人喜好),例子
# 配置 A 網卡網關
/sbin/ip route add default via 10.xx.xx.xx table 15
# 內網請求通過原路返回
/sbin/ip rule add from 10.xx.xx.xx lookup 15
/sbin/ip rule add from 10.xx.xx.xx lookup 15
/sbin/ip rule add from 10.xx.xx.xx lookup 15
/sbin/ip rule add from 10.xx.xx.xx lookup 15
/sbin/ip rule add from 10.xx.xx.xx lookup 15
/sbin/ip rule add from 10.xx.xx.xx lookup 15
# 例外情況 (用的是主路由表,處理自身發射出去的封包)
ip route add 48.255.255.0/24 via 10.xx.xx.xx



完成後重啟,有錯請輕打 (
页: [1]
查看完整版本: Linux 雙網卡 PBR 自定義網關