Linux

iproute rt_table 和標記在 linux 上不起作用

  • February 25, 2022

我有這個配置來自官方和非官方的指南和問題閱讀here以及許多失敗的測試。CentOS 7 和 Ubuntu 伺服器 15(LAMP 和僅 eth0)。

/etc/iproute2/rt_tables

   1   tunnel0

我準備路線和標記

ip route add 0.0.0.0/0 dev tun0 table 1
ip rule add from all fwmark 1 table 1
ip route flush cache

(也嘗試使用表 ID,通過“10.123.123.x”聲明 tun0 地址和 tun0 網關…)

平板電腦

iptables -A PREROUTING -t mangle -p tcp --dport 80 -j MARK --set-mark 1
iptables-save

我看到的是 eth0 ISP 公共 IP,而不是 tun0,我可以看到它強制“路由添加”靜態路由。我錯過了什麼?謝謝你。

我在這裡解決並記錄了它:http: //aftermanict.blogspot.it/2015/11/bash-iptables-iproute2-and-multiple.html

這將使核心永久路由數據包,啟用多個路由,甚至對於未在機器上證明的網路:

nano /etc/sysctl.conf

net.ipv4.conf.default.rp_filter = 2
net.ipv4.conf.all.rp_filter = 2
net.ipv4.ip_forward = 1

for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 >| $f ; done

這將初始化 iptables,尤其是 mangle 和 nat,它們是標記流量所必需的:

iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X

添加替代路線編輯:

nano /etc/iproute2/rt_tables

添加(名稱是您的參考):

1 tunnel0
2 tunnel1

添加路由和規則,我們使用表 ID 而不是更直接的名稱。如您所見,網關無關緊要,尤其是對於可以具有動態網關的隧道:

ip route add 0.0.0.0/0 dev tun0 table 1
ip route add 0.0.0.0/0 dev tun1 table 2

添加規則以標記流量並綁定到相應的表:

ip rule add from all fwmark 1 table 1
ip rule add from all fwmark 2 table 2
ip route flush cache

檢查你是否喜歡:

ip route show table 1
ip route show table 2
ip rule show

如果你錯過了什麼,你可以這樣刪除:

ip rule del table 1
ip route flush table 1

現在缺少的部分:這行不通:

iptables -A PREROUTING -t mangle -p tcp --dport 80 -j MARK --set-mark 1

這會:

iptables -A OUTPUT -t mangle -p tcp --dport 80 -j MARK --set-mark 1
iptables-save

您是否需要選擇流量並將其同時推送到設備/隧道中?沒問題,我也解決了這個問題:

iptables -A OUTPUT -t mangle -p tcp --dport 10001 -j MARK --set-mark 1
iptables -A OUTPUT -t mangle -p tcp --dport 10002 -j MARK --set-mark 2
iptables -t nat -A OUTPUT -p tcp --dport 10001 -j DNAT --to :80
iptables -t nat -A OUTPUT -p tcp --dport 10002 -j DNAT --to :80

NAT 強制回复

iptables -t nat -A POSTROUTING -o $DEV1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $DEV2 -j MASQUERADE

iptables-save

引用自:https://serverfault.com/questions/733705