日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

[ipsec][strongswan] 使用VTI配置基于路由的ipsec

發布時間:2023/12/13 综合教程 24 生活家
生活随笔 收集整理的這篇文章主要介紹了 [ipsec][strongswan] 使用VTI配置基于路由的ipsec 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前寫的一個:[dev][ipsec] 基于路由的VPrivateN

我們默認用strongswan的時候基于策略的. 也就是policy. 基于策略的ipsec中, policy承擔了兩部分功能

一是訪問權限的控制功能, 另一個是路由的功能. linux kernel做完路由之后會在查詢policy,從而確定要將包轉發給哪一個SA.

基于一中的描述, 我們現在要做基于路由的ipsec, 也就是說將路由功能從policy中去除出來, 在路由表中使用路由條目來做.

于是在這里需要解決的就是路由指向下一條的問題, 而這個下一條就是Ipsec SA.

現在引入一個概念叫做VTI(Vitual Tunnel Interface), VTI是內核中的一種設備. 使用如下命令添加:

ip link add name vti1 type vti key VTI_KEY local LOCAL_IPv4_ADDR remote REMOTE_IPv4_ADDR

我們看見, 創建vti時指定了一個key, 這個key便是與SA之間的關聯. 見下面的例子如何完成這樣一個關聯:

# ip link add name vti1 type vti key VTI_KEY local LOCAL_IPv4_ADDR remote REMOTE_IPv4_ADDR
# ip link set vti1 up
# ip addr add LOCAL_VIRTUAL_ADDR/24 dev vti1

# ip xfrm state add src LOCAL_IPv4_ADDR dst REMOTE_IPv4_ADDR spi SPI PROTO ALGR mode tunnel
# ip xfrm state add src REMOTE_IPv4_ADDR dst LOCAL_IPv4_ADDR spi SPI PROTO ALGR mode tunnel
# ip xfrm policy add dir in tmpl src REMOTE_IPv4_ADDR dst LOCAL_IPv4_ADDR PROTO mode tunnel mark VTI_KEY
# ip xfrm policy add dir out tmpl src LOCAL_IPv4_ADDR dst REMOTE_IPv4_ADDR PROTO mode tunnel mark VTI_KEY

這樣呢. 這個新增的VTI就等價于SA, 我們只有正常的配置路由, 將流量路由到這個VTI上, 便等于完成了基于路由的IPsec.

參考:https://developers.redhat.com/blog/2019/05/17/an-introduction-to-linux-virtual-interfaces-tunnels/

三里邊我們使用iproute工具做的配置, strongsan里同樣如此. 在配置的時候, 比如有一個mark的配置項,用來關聯SA

 mark_in = mark_out = 42 

基于一中的分析. 我們在基于路由的場景下將police的功能進行了分離. 所以policy的原有的策略控制功能和定義并沒有發生變化.

雙端還是可以自由的協商出需要的安全策略.

VTI是有很多局限性的, 最新的kernel里新增了類型名叫做xfrm的interface, 作為VTI的下一代. 見:

https://lwn.net/Articles/757391/

基于二, 我們解決這個問題的方法有很多, 只要能達成路由到SA的包轉發.

處理VTI, XFRM, 還可以用GRE.

見:https://wiki.strongswan.org/projects/strongswan/wiki/RouteBasedVPN

所有問題的關鍵,都在于將作為工具的interface將SA進行關聯.

VTI用了 key/mark (mark_in=mark_out=42)

XFRM用了 interface Id(if_id_in|outinswanctl.conf)

GRE在strongswan中使用這樣一個配置:(local|remote_ts=dynamic[gre]inswanctl.conf)

另外, 如果你使用strongswan的話, 需要改一下這個, 因為基于策略時他會在路由表里加東西:charon.install_routes=0

總結

以上是生活随笔為你收集整理的[ipsec][strongswan] 使用VTI配置基于路由的ipsec的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。