两个接口-互联网接入问题

两个接口-互联网接入问题

我有两个接口:eth0 和 eth1。它们都有静态地址。它们连接到不同的路由器,并且两个路由器都可以访问互联网。我使用本教程来配置链接:https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System

问题是我可以访问两个子网,但我只通过 eth0 连接到互联网。当我尝试使用 eht1 链路(例如)进行 ping 时,我得到了Destination Host Unreachable

我应该如何配置这些链接才能通过它们两个访问互联网。

路线-n:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use  Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0  eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0  eth0
10.10.0.0       0.0.0.0         255.255.255.0   U     0      0        0  eth1

当我设置10.10.0.1为默认网关时,我仅通过 eth1 连接到互联网。

在 /etc/网络/接口:

auto eth0
  iface eth0 inet static
    address 192.168.1.202
    netmask 255.255.255.0
    gateway 192.168.1.1

auto eth1
  iface eth1 inet static
    address 10.10.0.10
    netmask 255.255.255.0
    post-up ip route add 10.10.0.0/24 dev eth1 src 10.10.0.10 table rt2
    post-up ip route add default via 10.10.0.1 dev eth1 table rt2
    post-up ip rule add from 10.10.0.10/32 table rt2
    post-up ip rule add to 10.10.0.10/32 table rt2

答案1

目前系统只能有一个网关。你唯一能做的就是强制某些流量(例如 ssh、ftp 等)或特定网络通过不同的接口进行传输

通过特定接口将流量路由到特定端口

例子:

这里我们将其port 4444作为路由服务。使用mangleiptables表来修改4444数据包。

sudo iptables -t mangle -A OUTPUT -p tcp –dport 4444 -j MARK –set-mark 0×1

我们将所有目的地的数据包标记port 4444为“0×1”。

要从中删除该条目,iptables我们可以使用-D而不是-A

/etc/iproute2/rt_table接下来,只需输入一个条目即可创建一个新的 IP 路由表

100 4444table

为数据包编写规则4444

ip rule add fwmark 0×1 lookup 4444table

在新表中添加路由4444table。这里我们将使用“192.168.1.1”作为网关4444

我们从主表复制除默认网关条目之外的所有条目。

sudo ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table 4444table $ROUTE; done

将数据包的默认网关条目添加4444到表中4444table

sudo ip route add default via 192.168.1.1 table 4444table

使用ip route show table 4444table显示 所有路线4444table

或者按目的地路由

目标 IP132.45.65.60

再次使用 mangle 表iptables修改数据包132.45.65.60

sudo iptables -t mangle -A OUTPUT -d 132.45.65.60 -j MARK -set-mark 0×1

我们将所有到 IP 的路由器数据包标记132.45.65.60为“0×1”。

现在保存并重新启动iptables

service iptables save
service iptables restart

/etc/iproute2/rt_tables接下来,只需输入一个条目即可创建一个新的 IP 路由表

100 132table

为发往目标 IP 的数据包编写规则132.45.65.60

ip rule add fwmark 0×1 lookup 132table

在新表中添加路由132table。这里我们将使用192.168.1.1。所有其他流量将通过默认网关。

从主表复制除默认网关条目之外的所有条目。

sudo ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table 132table $ROUTE; done

将 132.45.65.60 数据包的默认网关条目添加到表 132table

 sudo ip route add default via 192.168.1.1 table 132table

编辑1

如果你必须设置没有度量的接口,metric则 akametric具有“优先级”

auto eth0
  iface eth0 inet static
    address 192.168.1.202
    netmask 255.255.255.0
    gateway 192.168.1.1

auto eth1
  iface eth1 inet static
    address 10.10.0.10
    netmask 255.255.255.0
    gateway 10.10.0.1
    metric 800 

使用此设置(如果可用),默认网关将是192.168.1.1,流量将通过eth0。当您执行ifdown eth0或断开电缆时eth0,次优选择将是网关10.10.0.1metric 800流量将通过eth1。当您连接电缆或ifup eth0默认网关时,将再次出现192.168.1.1

就像我说的。

系统不能同时有两个默认网关。如果有网络则无法工作。

相关内容