正如我所发现的支持文件为了在两个路由器 R1 和 R2 之间配置 GRE 隧道,我发出以下命令集(省略 mtu 和 mss),
R1
R1(config)# interface Tunnel1
R1(config-if)# ip address 172.16.1.1 255.255.255.0
R1(config-if)# tunnel source 1.1.1.1
R1(config-if)# tunnel destination 2.2.2.2
R2
R2(config)# interface Tunnel1
R2(config-if)# ip address 172.16.1.2 255.255.255.0
R2(config-if)# tunnel source 2.2.2.2
R2(config-if)# tunnel destination 1.1.1.1
我不明白的是,为什么我们每端都需要两个地址?如果我没记错的话,R1 获取的是172.16.1.1
(接口) 和(隧道) 地址,而 R2 获取的是(接口) 和(隧道)1.1.1.1
地址。每个路由器都充当其他路由器的目的地。但为什么每端都分配两个地址?根据我的(错误)理解,在 R1 中,如果我们分配,为什么我们需要?同样的问题也适用于 R2。172.16.1.2
2.2.2.2
172.16.1.1
1.1.1.1
此外,正如我在同一文件,进一步的连接检查是通过使用
R1# ping 172.16.1.2
命令。因此,至少 1. 和 2. 地址在连通性测试中不起任何作用。
感谢您消除上述困惑。
答案1
1.1.1.1
和地址2.2.2.2
是点对点连接上的虚拟端点,它们是流量从 到 所经过172.16.1.1
的“道路” 172.16.1.2
。GRE 是一种在 IP 内部传输的协议,如果您想了解 VPN 的一般工作原理,它就是您需要的同一种概念。它不使用以太网(或其他物理层),而是使用 IP 作为传输层。
答案2
因为 GRE 隧道是一种第 3 层机制,需要第 3 层地址用于转发表。如果从路由器的角度来看,它需要知道将其发送到哪个“接口”,然后一旦进入接口,下一步将其发送到哪里。
另请注意,您可以在单个路由器上拥有多个 GRE 隧道。
如果您不想在隧道上使用 IP,请研究第 2 层隧道。
答案3
如果使用接口路由,则不需要 GRE 隧道上的 IP 地址。仅当您使用到远程网络的“下一跳”路由时才需要 IP 地址。