无线和以太网接口上的路由冲突

无线和以太网接口上的路由冲突

我有两个网络接口:LANIF 接口是以太网,没有连接到互联网,WANIF 接口是 wifi 类型,有外部连接。我在尝试定义两个接口的默认路由时遇到了一些问题。

执行该作业的操作来自同一脚本,该脚本将 WANIF 和 LANIF 的实际值作为参数

第一部分:接口转发和伪装


sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

# enable masquerading to allow LAN internet access
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
# enable masquerading to allow LAN internet access
echo 'Enabling IP Masquerading and other rules...'
sudo iptables -t nat -A POSTROUTING -o "$WANIF" -j MASQUERADE
sudo iptables -A FORWARD -i "$LANIF" -o "$WANIF" -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i "$WANIF" -o "$LANIF" -j ACCEPT

这似乎能起到作用

第二部分:接口定义


# ADD NEW SUBNET TO INPUT INTERFACE
sudo sh -c "cat /etc/netplan/01-network-manager-all.yaml > /etc/netplan/01-network-manager-all.yaml.backup"
sudo sh -c "echo '
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    \"$LANIF\":
      addresses:
        - 10.102.44.33/27
      routes:
        - to: default
          via: 10.102.44.36
  wifis:
    \"$WANIF\":
      addresses:
        - 10.102.44.36/27
        - 192.168.0.100/24
      routes:
        - to: default
          via: 192.168.0.1
      access-points:
        "Network":
          password: "passw"
' > /etc/netplan/01-network-manager-all.yaml"

基于此,我预计到达 LANIF 的流量将通过 10.102.44.36 路由到 WANIF。但是,我收到以下错误:

Problem encountered while validating default route consistency.Please set up multiple routing tables and use `routing-policy` instead.
Error: Conflicting default route declarations for IPv4 (table: main, metric: default), first declared in LANIF but also in WANIF

错误很明显,两个接口中都定义了网关。执行route并查看网络配置:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    600    0        0 WANIF
default         _gateway        0.0.0.0         UG    20100  0        0 LANIF

上面我们清楚地看到两个网关都存在。

妇女事务联合会

妇女事务联合会

兰尼夫

兰尼夫

在屏幕截图中,网关似乎正常,但 WANIF 没有互联网连接。

欢迎任何帮助。

答案1

LANIF接口是以太网,不连接互联网,WANIF接口是wifi类型,有外部连接。

这意味着您只需要在 WANIF 接口上设置默认路由。即使 LANIF 接口上有路由器,也只需向该路由器后面的子网添加特定静态路由即可。

相关内容