Asuswrt / Ubuntu 18.04通过终端获取所有网络接口的网关

问题描述 投票:0回答:1

我在编写用于路由家庭网络的脚本中遇到问题。基本上,在我的路由器上,我有3个接口(WAN和2个VPN隧道),应在sourceIP的基础上通过这些接口之一路由客户端。

实际上,该脚本在运行Asuswrt-merlin的Asus路由器(wan和1个vpn)上运行,但我试图以1 wan和2个vpn的方式编写它,使其最终甚至可以在Asuswrt和ubuntu上运行,因此使用了基本的shell命令(但我想如果它在merlin上也可以在其他两个上工作)。

测试脚本运行良好,但是我不得不对2个tun接口的网关进行硬编码,因为我没有找到从ifconfig / ip route / ip a /等shell命令中提取此类信息的方法。>>

更具体地说,这三个接口都是基于dhcp的。WAN接口指向我网络中的另一个路由器,因此网关是已知的。这是默认路由(通过…dev eth0默认)。

tun11和tun12连接到vpn提供程序(openvpn),但只有完成连接的第一个接口通过[IP] dev tun1X以“ 0.0.0.0/1 ...”的形式添加到主路由表中。揭示其网关(通过[IP])。

另一个没有,我无法在其他地方找到第三个网关ip。当然,如果我不能动态地获得此信息,该脚本将变得毫无用处。

编辑:

ip route show table all

192.168.200.200 dev eth0  table wan0  proto kernel  scope link
YYY.YYY.YYY.116 via 192.168.200.200 dev eth0  table wan0
10.12.134.0/25 dev tun12  table wan0  proto kernel  scope link  src     10.12.134.2
192.168.200.0/24 dev eth0  table wan0  proto kernel  scope link  src 192.168.200.254
10.0.0.0/24 dev br0  table wan0  proto kernel  scope link  src 10.0.0.254
127.0.0.0/8 dev lo  table wan0  scope link
default via 192.168.200.200 dev eth0  table wan0
192.168.200.200 dev eth0  proto kernel  scope link
YYY.YYY.YYY.116 via 192.168.200.200 dev eth0
XXX.XXX.XXX.96/27 dev tun11  proto kernel  scope link  src XXX.XXX.XXX.98
10.12.134.0/25 dev tun12  proto kernel  scope link  src 10.12.134.2
192.168.200.0/24 dev eth0  proto kernel  scope link  src 192.168.200.254
10.0.0.0/24 dev br0  proto kernel  scope link  src 10.0.0.254
127.0.0.0/8 dev lo  scope link
0.0.0.0/1 via XXX.XXX.XXX.97 dev tun11
128.0.0.0/1 via XXX.XXX.XXX.97 dev tun11
default via 192.168.200.200 dev eth0
broadcast XXX.XXX.XXX.96 dev tun11  table local  proto kernel  scope link src XXX.XXX.XXX.98
broadcast 192.168.200.0 dev eth0  table local  proto kernel  scope link  src 192.168.200.254
broadcast 127.255.255.255 dev lo  table local  proto kernel  scope link  src 127.0.0.1
local XXX.XXX.XXX.98 dev tun11  table local  proto kernel  scope host  src XXX.XXX.XXX.98
broadcast 10.12.134.127 dev tun12  table local  proto kernel  scope link  src 10.12.134.2
local 10.0.0.254 dev br0  table local  proto kernel  scope host  src 10.0.0.254
local 127.0.1.1 dev lo  table local  proto kernel  scope host  src 127.0.0.1
broadcast 10.0.0.255 dev br0  table local  proto kernel  scope link  src 10.0.0.254
local 192.168.200.254 dev eth0  table local  proto kernel  scope host  src 192.168.200.254
broadcast 192.168.200.255 dev eth0  table local  proto kernel  scope link  src 192.168.200.254
local 10.12.134.2 dev tun12  table local  proto kernel  scope host  src 10.12.134.2
broadcast 10.12.134.0 dev tun12  table local  proto kernel  scope link  src 10.12.134.2
broadcast XXX.XXX.XXX.127 dev tun11  table local  proto kernel  scope link  src XXX.XXX.XXX.98
local 127.0.0.1 dev lo  table local  proto kernel  scope host  src 127.0.0.1
broadcast 10.0.0.0 dev br0  table local  proto kernel  scope link  src 10.0.0.254
local 127.0.0.0/8 dev lo  table local  proto kernel  scope host  src 127.0.0.1
unreachable default dev lo  table 0  proto kernel  metric 4294967295  error -101 hoplimit 255
unreachable default dev lo  table 0  proto kernel  metric 4294967295  error -101 hoplimit 255

从这里我可以获取所有相关信息(子网,ip,网关),但不能获取tun12网关。它没有被添加。

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.200.200 0.0.0.0         255.255.255.255 UH    0      0        0 eth0
YYY.YYY.YYY.116 192.168.200.200 255.255.255.255 UGH   0      0        0 eth0
XXX.XXX.XXX.96  0.0.0.0         255.255.255.224 U     0      0        0 tun11
10.12.134.0     0.0.0.0         255.255.255.128 U     0      0        0 tun12
192.168.200.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 br0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         XXX.XXX.XXX.97  128.0.0.0       UG    0      0        0 tun11
128.0.0.0       XXX.XXX.XXX.97  128.0.0.0       UG    0      0        0 tun11
0.0.0.0         192.168.200.200 0.0.0.0         UG    0      0        0 eth0

也不是这里...与这两个vpn关联的特定路由表也为空(表111和112)

编辑:为了进一步阐明这个问题,到目前为止,我可以得到(使用上面的输出):

WAN IP:      192.168.200.254
WAN subnet:  192.168.200.0/24
WAN gateway: 192.168.200.200

tun11 IP:      XXX.XXX.XXX.98
tun11 subnet:  XXX.XXX.XXX.96/27
tun11 gateway: XXX.XXX.XXX.97

tun12 IP:      10.12.134.2
tun12 subnet:  10.12.134.0/25
tun12 gateway: ???

我需要tun12网关才能使用我的脚本为其正确构建路由规则。我想念什么?或确实无法做到这一点,因为网络似乎缺乏解决方案。预先感谢!

我在编写用于路由家庭网络的脚本中遇到问题。基本上在我的路由器上,我有3个接口(WAN和2个VPN隧道),应通过这些接口之一在...

bash shell routing ubuntu-18.04 dd-wrt
1个回答
0
投票

到目前为止,我无法在asuswrt或ubuntu中为Windows“ ipconfig / all”找到相应的命令。我确定我想念一些东西。在Windows上运行该命令时,您可以随时看到所有网络接口及其当前ip / subnet / gateway / dns的列表。

我想无论如何我都找到了解决此问题的方法。只是要再次总结问题,这实际上是我系统中发生的事情

© www.soinside.com 2019 - 2024. All rights reserved.