我有两个网络接口: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 接口上有路由器,也只需向该路由器后面的子网添加特定静态路由即可。