我正在尝试在两台 Ubuntu PC 之间配置 gre 隧道:第一台使用 wlan1 接口 192.168.1.51,第二台使用 wlan2 192.168.1.2。
电脑1:
ip link add gre1 type gretap remote 192.168.1.2 local 192.168.1.51
ip link set dev gre1 up
gre1@NONE: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1462 qdisc pfifo_fast state
UNKNOWN mode DEFAULT group default qlen 1000
link/ether 92:d0:28:8b:3e:a6 brd ff:ff:ff:ff:ff:ff promiscuity 0
gretap remote 192.168.1.2 local 192.168.1.51 ttl inherit
电脑2:
ip link add gre1 type gretap remote 192.168.1.51 local 192.168.1.2
ip link set dev gre1 up
7: gre1@NONE: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1462 qdisc pfifo_fast
state UNKNOWN mode DEFAULT group default qlen 1000
link/ether ba:09:9a:66:85:02 brd ff:ff:ff:ff:ff:ff promiscuity 0
gretap remote 192.168.1.51 local 192.168.1.2 ttl inherit
但是当我从 .51 ping 到 .2 时,我没有看到任何 GRE 封装。它只是通过 wlan 接口。
电脑1:
10.1.0.0/16 dev eth0 proto kernel scope link src 10.1.0.51 metric 1
192.168.1.0/24 dev wlan1 proto kernel scope link src 192.168.1.51
答案1
配置缺少隧道接口的 IP 地址。
PC1:192.168.1.51(假设隧道IP:10.200.0.51)
ip tunnel add gre1 mode gre remote 192.168.1.2 local 192.168.1.51 ttl 255
ifconfig gre1 up
ifconfig gre1 10.200.0.51
PC2:192.168.1.2(隧道IP:10.200.0.2)
ip tunnel add gre1 mode gre remote 192.168.1.51 local 192.168.1.2 ttl 255
ifconfig gre1 up
ifconfig gre1 10.200.0.2
答案2
我知道这是一个老问题,但在寻找其他东西时,我发现了这个并决定回答。
长话短说,事实并非如此。
答案有点长:两端都需要单独的 IP:隧道端点将获得比 WLAN 地址更不同的 IP。因此,您将 192.168.1.0/24 作为您的主(物理)网络。然后,您将拥有 10.0.0.0/24 作为您的虚拟 (GRE) 网络。如果您为 gre1 接口提供 10.0.0.0/24 子网中的 IP,然后进行 ping 操作,它们将通过 GRE 链路。观察 wlan 连接上的流量应该会显示 GRE 封装。