首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libreswan为ipsec流量配置虚拟接口

libreswan为ipsec流量配置虚拟接口
EN

Server Fault用户
提问于 2021-04-14 15:46:28
回答 1查看 1.5K关注 0票数 1

描述:

我正在学习如何使用libreswan配置ipsec。我想在两个主机之间建立一个主机到主机的vpn。我希望每个主机使用一个虚拟接口作为他们的ipsec隧道。

问题:

我用RSA设置了ipsec配置,并启动了隧道,但是没有构建虚拟接口。

系统:

(2) RHEL 8.2虚拟机

,我不清楚什么,

  • 我该怎么开隧道?我知道我运行的是ipsec auto --up mytunnel,但是这个命令需要同时在两个系统上运行吗?还是首先在右边运行,然后在左边运行呢?
  • 我的“左”和“右”ips是在可以彼此路由的接口上配置的ip地址。这是正确的吗?
  • 我觉得我在这里遗漏了一个步骤,比如配置一个接口并设置libreswan来使用它?

Troubleshooting:

  • 我跟踪这些指示关于如何设置ipsec隧道。
  • 我和netstat确认了,似乎所有的接口都在监听500和4500。
  • 执行了一个ip a,我看到没有创建虚拟接口。
  • 要启动隧道,我运行systemctl restart ipsec.service,然后运行ipsec auto --up mytunnel,最后运行ipsec auto --up mytunnel,我看到了这个输出
代码语言:javascript
复制
181 "mytunnel" #1: initiating IKEv2 IKE SA
181 "mytunnel" #1: STATE_PARENT_I1: sent v2I1, expected v2R1
182 "mytunnel" #2: STATE_PARENT_I2: sent v2I2, expected v2R2 {auth=IKEv2 cipher=AES_GCM_16_256 integ=n/a prf=HMAC_SHA2_512 group=DH19}
002 "mytunnel" #2: IKEv2 mode peer ID is ID_FQDN: '@west'
003 "mytunnel" #2: Authenticated using RSA with IKEv2_AUTH_HASH_SHA1
002 "mytunnel" #2: negotiated connection [10.10.10.111-10.10.10.112:0-65535 0] -> [10.10.10.111-10.10.10.112:0-65535 0]
004 "mytunnel" #2: STATE_V2_IPSEC_I: IPsec SA established transport mode {ESP=>0xe25ebdee <0x3d8ac123 xfrm=AES_GCM_16_256-NONE NATOA=none NATD=none DPD=passive}

我的ipsec配置:

代码语言:javascript
复制
conn mytunnel
    auto=add
    leftid=@west
    left=10.10.10.111
    leftrsasigkey=0sAwEAAbqd ... blqu1K0=
    rightid=@east
    right=10.10.10.112
    rightrsasigkey=0sAwEAAboA ... NEJbLk=
    authby=rsasig

编辑修复了我的日志输出。

EDIT2我了解到ipsec不会单独设置虚拟接口。这需要通过IPIP、GRE或其他方法来完成。

  • 是建立虚拟专用网路由的各种方法的一个有用的链接。
  • 是如何设置IPIP的一个很好的链接。
EN

回答 1

Server Fault用户

回答已采纳

发布于 2021-04-14 16:37:10

IPsec不一定使用虚拟接口。

相反,您有一个IPsec策略数据库(setkey -DP显示当前内容),并且这些策略在数据包通过堆栈时应用于数据包。

这是有用的,当你不想额外的努力分配额外的地址,并确保它们与其他用途冲突。

正如您已经配置的那样,传输模式甚至在数据包中没有其他地址的空间。像您这样的策略说:“从10.10.10.111到10.10.10.112之间的任何数据包都需要加密,然后正常路由”,但是如果您没有使用这些地址的任何接口,那么就不会生成这样的数据包。

我并不完全清楚为什么日志文件中的地址与配置中的地址不同。

根据日志,您拥有的IPsec设置将对10.104.8.109和10.104.8.108之间的数据包进行加密。如果您从另一个主机中选择其中一个,则应当封装ping数据包,其数据包结构为IP - ESP - ICMP,而不拥有密钥的任何人都只能看到ESP,并且无法知道在其中传输了什么内部协议。

对于隧道,主要有两种方法:将IPsec策略应用于未加密的隧道,以及连接将通过相同接口路由的两个网络。

未加密的隧道将使用GRE或IPIP,以创建包结构IPIP,加密策略(在传输模式下)将环绕内部IP报头以获得IP - ESP - IP - ICMP。隧道提供了IP地址绑定到的虚拟接口。

网络链接方法使用隧道模式IPsec,这仍然不能创建接口。在这里,数据包从内部网络接口到达,并被寻址到目的地而不是内部接口上,因此它们被路由到默认路由。IPsec策略将整个数据包包装在一个传输包中,将其带到另一边,在那里它被打开,并通常被路由到内部接口。中间的路由器看不到内部地址,因此它们可以在私有范围内。对于这种方法,也不需要虚拟网络设备,路由器也不需要远程网络的路由条目。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1060372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档