AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1894038
Accepted
voipp
voipp
Asked: 2025-04-25 15:37:20 +0800 CST2025-04-25 15:37:20 +0800 CST 2025-04-25 15:37:20 +0800 CST

什么是隧道?

  • 772
这个问题是从 Server Fault迁移过来的,因为可以在超级用户那里找到答案。 迁移时间: 2 天前。

根据维基百科:

隧道协议通过使用数据包的数据部分(有效载荷)来承载实际提供服务的数据包来工作。

隧道使用分层协议模型,例如 OSI 或 TCP/IP 协议套件,但在使用有效载荷承载网络通常不提供的服务时,通常会违反分层。

承载网络通常不提供的服务是什么意思?

networking
  • 5 5 个回答
  • 789 Views

5 个回答

  • Voted
  1. grawity
    2025-04-25T16:12:18+08:002025-04-25T16:12:18+08:00

    “隧道”涉及将特定层封装在同一层的另一个实例内(例如,网络层内的网络层数据包),或者封装在更高层内(例如,传输层连接内的网络层数据包),这与正常的层顺序相反。

    隧道最常见的用途可能是 IPv4-in-IPv4,它由 VPN 软件(企业和商业)完成。

    承载网络通常不提供的服务是什么意思?

    以互联网这样的仅支持 IPv4 和 IPv6 路由的网络为例。通常,这意味着您无法在互联网上使用其他网络协议,例如 AppleTalk、DECnet 或 ISO CLNP 1——组成该网络的大多数路由器根本无法识别此类数据包(即使少数能识别的路由器也不知道转发这些数据包的路由)。

    但是您可以建立一个将 AppleTalk 封装在 IPv4 中的隧道 - 将整个“网络层”数据包放入另一个“网络层”数据包中 - 这样 Internet 就可以像 IPv4 一样传输它,只处理外部 IPv4 标头,直到隧道另一端的主机将其放回原生 AppleTalk 网络。

    因此,在这个例子中,AppleTalk 路由并非互联网提供的服务,但隧道技术却允许 AppleTalk 无论如何都能在互联网上传输。(现实生活中确实存在一些“复古计算”网络,它们支持 IP 中的 AppleTalk、TCP 中的 X.25 等等。)

    在半现代实践中,这已非常普遍地用于在通常仅提供 IPv4 的网络上提供 IPv6 服务(SiXXS 曾经提供此类隧道,而 Tunnelbroker.net 仍然提供),而现在你会发现 ISP 做相反的事情并使用隧道在仅 IPv6 网络上提供 IPv4 服务(我相信这称为 DS-Lite)。


    顺便说一下, ISO CLNP 实际上是 IP 的“OSI 协议套件”等效协议。我从 NANOG/NSFNET 邮件列表存档中了解到,一些运营商早在 20 世纪 90 年代就曾使用 CLNP 进行路由,但即便如此,他们也很快切换到了纯 IP 核心,并通过 CLNP 隧道进行路由。(反之亦然;我的旧思科路由器既可以同时支持 CLNP-over-IP 隧道传输,也可以支持 IP-over-CLNP 隧道传输。)

    • 7
  2. symcbean
    2025-04-25T17:42:43+08:002025-04-25T17:42:43+08:00

    这里提到的“数据包”或许是理解该过程的便捷试金石,但并非所有网络(此处指的是网络协议而非实例)都是基于数据包的。另外值得注意的是,互联网协议 (IP) 并不符合 OSI 模型,尽管后者的术语通常适用于前者。

    所有网络都可以被视为几层抽象,将编码、加密、完整性、寻址等功能分离出来……隧道描述了将一个网络协议的某些层堆叠在另一个协议之上,甚至是同一协议的不同实例之上。

    互联网 VPN 在 TCP/IP 或 UDP/IP 协议之上堆叠了 (TCP/UDP/ICMP)+IP 协议。但需要注意的是,组合协议栈可能分布在通信两端的多个设备上。

    在文章的上下文中,“服务”一词与网络协议、寻址和路由有关,而不是与 IP 一起用于描述在 IP 之上运行的事物(SMTP、HTTP、SMB……)。

    假设我在英国,要给德国的一个家庭寄送圣诞礼物,我会把每件礼物单独包装,并贴上一个写有收件人姓名的标签——后者是网络意义上的地址信息。然后,我会把这些礼物打包成一个包裹,并贴上邮政服务可以识别的邮政地址标签。这就是隧道技术的一个例子(它确实使用了数据包!)。德国邮政不知道该如何处理寄给汉斯叔叔的包裹——但邮政地址上的人知道。

    相反,如果我把礼物送到那个地址,就不需要贴有邮寄地址标签的外包装了。我不需要通过邮政服务进行隧道投递。

    • 5
  3. Best Answer
    Chester Gillon
    2025-04-25T17:11:35+08:002025-04-25T17:11:35+08:00

    除了其他答案之外,还有 IPsec隧道模式:

    Ipsec模式

    IPsec隧道模式在网络层运行,对IP数据包进行加密,封装成带有新IP头的新IP数据包。

    这样就可以对主机之间的通信进行加密,而无需对应用程序1进行任何更改,而其他解决方案(如TLS/SSL)则需要进行更改。

    问题主体询问:

    承载网络通常不提供的服务是什么意思?

    有人可能会认为 IPsec 隧道并非直接添加了网络通常不提供的服务。然而,它只是“什么是隧道?”(也就是问题标题)的一个例子。


    1 NordLayer IPsec(互联网协议安全)VPN文章包含以下内容,因此添加隧道可能会影响某些应用程序:

    应用程序透明度。IPSec 作为网络层的嵌入式安全解决方案,使其能够与几乎任何应用程序兼容。

    • 3
  4. Greg Askew
    2025-04-26T16:29:42+08:002025-04-26T16:29:42+08:00

    承载网络通常不提供的服务意味着什么?

    例如,机场中的某人可能需要连接到远程服务(例如 SQL Server 数据库),但由于存在防火墙而无法连接。

    为了实现这一点,首先使用虚拟专用网络 (VPN) 连接建立隧道。

    这使用资源(SQL Server)所在的远程位置的网络地址在两个点之间提供网络层连接。

    • 1
  5. raj
    2025-04-27T19:59:30+08:002025-04-27T19:59:30+08:00

    “承载网络通常不提供的服务”是指您与您想要连接的目标机器之间的网络受到某种限制,并且无法以常规方式建立连接,但您仍然想要连接的情况。

    例子可能包括:

    • 您想要连接到公司网络内的计算机,该计算机使用私有 IP 地址(例如,范围为 10.xxx),而这些地址通常无法通过互联网访问;
    • 您想通过 IPv6 连接(例如,因为目标机器只有 IPv6 地址),但您所连接的网络仅支持 IPv4
    • 您和目标机器之间存在限制性防火墙(它可以位于您这边,也可以位于目标这边),该防火墙仅允许使用某些协议/服务进行连接(常见情况是仅允许 HTTP/HTTPS),并且您想要连接到不同的服务(例如 SSH 或 IMAP/SMTP)。

    要建立隧道,您必须在隧道两端各有两台计算机,并且它们能够使用网络允许的任何服务进行连接。例如,如果网络仅允许 HTTP/HTTPS 连接,则隧道两端都可以通过 HTTPS 连接,然后在 HTTPS 会话内发送任何类型的流量。“外部”网络只能“看到”可以通过的 HTTPS 流量,并且由于 HTTPS 流量是加密的,因此它“不知道”内部的内容。隧道两端的软件会将流量“打包”和“解包”到已建立的会话中。

    隧道的种类很多,以下是一些示例:

    • VPN 隧道(也称为 IP-in-IP 隧道)可以连接两个不同的网络(例如,您的家庭网络和您想要访问的公司网络),就像直接连接一样。如果 VPN 直接建立在路由器上,效果会更好(许多路由器都支持这种连接方式)。例如,如果您的家庭网络是 192.168.1.x,而公司网络是 10.10.xx,那么如果您在路由器和公司路由器之间建立 VPN,您就可以直接从家庭网络访问公司网络 10.10.xx 中的计算机,就像您的家庭网络和公司网络之间有一条专用电缆一样。
    • IPv6-in-IPv4 隧道用于在仅支持 IPv4 的网络上建立 IPv6 连接。这同样最好在路由器上完成,但也可以用于专用计算机。如果您网络中一台仅具有 IPv6 地址的计算机想要连接到互联网上某台同样具有 IPv6 地址的服务器,数据包将被发送到您网络中的一台设备,该设备将数据包“打包”在 IPv4 数据包中,然后(通过 IPv4)发送到“另一端”某台与目标服务器具有 IPv6 连接的设备。服务器的响应将以相反的方向进行相同的处理。
    • SSH 或 HTTPS 隧道:如果您的网络与目标网络之间支持 SSH 或 HTTPS,但不支持其他协议,则可以在 SSH 或 HTTPS 会话中建立隧道,并通过该隧道发送其他流量。与上述建立后几乎可以承载任何流量的隧道不同,使用 SSH 或 HTTPS 隧道通常必须精确指定要连接的目标地址和端口。
    • 0

相关问题

  • 三台电脑,没有路由器/交换机怎么组网?

  • 用户使用 FileZilla 连接到 SFTP 服务器拒绝连接

  • NAT 后面的 NAT 如何工作(路由器的 NAT 和 ISP 的 NAT)?

  • Win10 1803:如何让移动热点成为专用网络?

  • nc如何识别服务名称

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve