我正在尝试在客户端和核心路由器之间建立一个基于 Ubuntu 的网关,理想的流量应该是:
ClientGroup 1 (10.0.0.0/24) -> Ubuntu 网关 (10.0.0.2) -> 核心路由器 (10.0.0.1) -> Internet
ClientGroup 2 (10.0.1.0/24) -> Ubuntu 网关 (10.0.1.2) -> 核心路由器 (10.0.1.1) -> 互联网
ClientGroup 3 (10.0.2.0/24) -> Ubuntu 网关 (10.0.2.2) -> 核心路由器 (10.0.2.1) -> 互联网
客户使用 Ubuntu 实例作为他们的网关。
以下netplan
配置正确路由内部流量,但是对于 Internet 流量,它默认为eth0.1
(10.0.1.1),因为gateway4
.
network:
version: 2
ethernets:
eth0:
addresses: [10.0.0.2/24]
routes:
- to: 10.0.0.0/24
via: 10.0.0.1
table: 101
routing-policy:
- from: 10.0.0.0/24
table: 101
dhcp4: false
vlans:
eth0.1:
id: 1
link: eth0
addresses: [10.0.1.2/24]
gateway4: 10.0.1.1
routes:
- to: 10.0.1.0/24
via: 10.0.1.1
table: 102
routing-policy:
- from: 10.0.1.0/24
table: 102
dhcp4: false
eth0.2:
id: 2
link: eth0
addresses: [10.0.2.2/24]
routes:
- to: 10.0.2.0/24
via: 10.0.2.1
table: 103
routing-policy:
- from: 10.0.2.0/24
table: 103
dhcp4: false
关于如何将所有流量路由到核心路由器上相应的下一跳的任何想法?也就是说,来自的所有流量 ( 0.0.0.0/0
)10.0.0.0/24
都应该路由到,10.0.0.1
而10.0.2.0/24
应该路由到10.0.2.1
。
我也很乐意使用简单ip route
的规则。
提前致谢!
编辑 13/05/20:
我已经为每个添加了一个默认路由routes
,路由按预期工作,但traceroute
输出看起来很奇怪:
routes:
- to: 0.0.0.0/0
via: 10.0.0.1
table: 101
第一次测试:
traceroute to 1.1.1.1 (1.1.1.1), 64 hops max, 52 byte packets
1 10.0.0.2 (10.0.0.2) 0.896 ms * *
2 10.0.0.1 (10.0.0.1) 1.361 ms 1.126 ms 0.879 ms
第二次测试:
traceroute to 1.1.1.1 (1.1.1.1), 64 hops max, 52 byte packets
1 * * *
2 10.0.0.1 (10.0.0.1) 1.353 ms 1.062 ms 0.825 ms