openvpn:如何不对具有多个 IP 地址的域使用 VPN

Dav*_*lar 5 vpn routing openvpn

我想围绕特定域的 openvpn 进行路由。我努力了:

allow-pull-fqdn
route specificdomain.com 255.255.255.255 net_gateway
Run Code Online (Sandbox Code Playgroud)

但这只是对域进行 DNS 查找,并将其获取的任何 IP 添加到路由表中以使用默认路由。

问题是,特定域有多个 IP 地址,并且它们似乎不在我可以仅使用网络掩码的简单网络上。

我也尝试过:

push "route specificdomain.com 255.255.255.255 net_gateway"
Run Code Online (Sandbox Code Playgroud)

虽然我承认在阅读文档后我仍然没有弄清楚区别是什么 - 尽管这里它没有出现在我的路由表中并且它不起作用(即使我使用具有单个IP地址的域)

有没有办法让 openvpn 不路由像这样的具有多个 IP 地址的域,或者在路由中 openvpn 知道我们最初请求的域是什么已经太晚了,我最好的选择是尝试提出当前与域匹配的 IP 地址的集合?

Bas*_*ass 4

可悲的是,你想要的是不可能的。路由基于 IP 地址进行工作,而域名根本不存在于 IP 数据包中,因此不能用于做出路由决策。

添加路由时,您可以添加到特定域名的路由,但该名称在添加到路由表之前会先通过 DNS 解析为 IP 地址。另请注意,如果 DNS 条目中的 IP 地址发生更改,您的路由表将不会更新。

基本上你的选择是:

1:在VPN启动时,添加一条到您要在没有VPN的情况下访问的所有特定主机名的路由。名称将立即得到解析,但这可能并不重要,除非 IP 地址变化得非常快。

2:找出目标域使用的所有网络块,并为它们设置没有VPN的路由。但在某些情况下,不可能找出网络块。

3:反转你的路由逻辑:删除“通过VPN路由所有内容”规则,仅通过VPN路由特定的网络块(你比你不控制的特定域的网络块更有可能知道这些),并让默认路由将所有非 VPN 流量传输到没有 VPN 的互联网。

  • VPN 是否必须先对任何域进行 DNS 解析才能确定如何路由它们?换句话说,这在技术上不是可以通过VPN软件来处理吗? (2认同)