这是我的路由表(按这个顺序排列):
10.3.68.0/22 via 172.16.100.9 dev vlan4
10.3.68.0/22 dev eth3 proto kernel scope link src 10.3.69.254
eth3有ip 10.3.69.254/22。
为什么Linux选择通过172.16.100.9网关访问10.3.68.0/22子网(因此没有尝试直接链接)?
例如,我用ip route get 10.3.68.123进行了测试。它说它将通过172.16.100.9,在实践中,它是这样做的。
它只表示当我请求10.3.68.0 (“网络”地址)、10.
我遇到了一个Linux系统,其中一些通过以太网接口的路由是在没有指定网关的情况下配置的。我一直认为,指定接口而不是网关的路由仅用于点对点链接。对于以太网接口来说,这是没有意义的,因为以太网不是点对点介质。
当数据包通过没有指定网关的以太网接口与路由匹配时,Linux如何传送数据包?它是否从接口广播对目标IP地址的ARP请求?(而未指定的网关必须充当ARP代理?)在基于策略的路由具有多个路由表的情况下,行为是否不同?(下面的第二个例子)
下面是这样一条路线的一个例子:
[Gaia]# ip route list
10.25.35.0/24 dev eth3 proto routed
...
我使用以下命令将Linux盒配置为开关模式:
ip link add name switch type bridge
ifconfig switch 192.168.1.2
ip link set switch up
ip link set swp0 master switch && ip link set swp0 up
ip link set swp1 master switch && ip link set swp1 up
ip link set swp2 master switch && ip link set swp2 up
ip li
我必须配置NAT,并在连接到Linux盒的两个网关之间手动拆分internet流量。
如果每个网关都有特定的IP地址,则没有问题。我可以通过iproute2做到这一点:
ip route add default via 192.168.1.1 dev eth1
ip route add 2.3.4.5 via 192.168.0.1 dev eth0
ip route add 8.9.4.5 via 192.168.0.1 dev eth0
但我的问题太简单了!我无法更改网关地址和网络ids。我只需要使用两个来自Linux机器的地址相同的互联网网关,内核3.2.0和更高版本。
检查这个路由表
track 1 ip route 10.46.52.5 255.255.255.255 reachability
ip route 10.1.0.0 255.255.128.0 10.243.222.1 track 1
ip route 10.1.128.0 255.255.128.0 10.243.222.1 track 1
ip route 0.0.0.0 0.0.0.0 10.11.70.2 name FW_INTERNET
ip route 10.1.3.211 255.255.255.255 GigabitEthernet0/0.10 tag 20
ip route
配置:
ip route 172.27.8.17/32 172.24.0.141
ip route 172.27.8.17/32 172.24.0.102 2
结果:
show ip route 172.27.8.17
Routing entry for 172.27.8.17/32
Known via "static", distance 2, metric 0
172.24.0.102, via me0_link1
Routing entry for 172.27.8.17/32
Known via "static", distance 1
我办公室里的linux电脑:
> uname -a
Linux 3.2.0-2-686-pae #1 SMP Tue Mar 20 19:48:26 UTC 2012 i686 GNU/Linux.
它有两个ISP,第一个是静态ip和默认路由:
> ip ro
default via 19.11.20.15 dev vlan40
19.11.20.0/27 dev vlan40 proto kernel scope link src 19.11.20.20
第二个是gprs调制解调器。我不使用默认路由调用wv配:
> ip ro
10.64.64.64 dev ppp