首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网络重启后Openswan隧道不工作

网络重启后Openswan隧道不工作
EN

Stack Overflow用户
提问于 2012-05-30 16:54:01
回答 4查看 13.7K关注 0票数 4

在尝试创建ipsec连接时,我观察到一些奇怪的行为。我在cisco asa和我的Linux机器之间配置了ipsec,它按预期工作。但是,当我在Linux机器上重新启动网络服务或在cisco端重新启动端口时,隧道停止工作,但隧道状态为up:

代码语言:javascript
复制
/etc/init.d/ipsec status
/usr/libexec/ipsec/addconn Non-fips mode set in /proc/sys/crypto/fips_enabled
IPsec running  - pluto pid: 2684
pluto pid 2684
1 tunnels up
some eroutes exist

当我尝试连接到另一端(telnet、ping、ssh)时,连接不起作用。

我的/etc/ipsec.conf如下所示:

代码语言:javascript
复制
# /etc/ipsec.conf - Openswan IPsec configuration file
#
# Manual:     ipsec.conf.5
#
# Please place your own config files in /etc/ipsec.d/ ending in .conf

version 2.0     # conforms to second version of ipsec.conf specification

# basic configuration
config setup
        # Debug-logging controls:  "none" for (almost) none, "all" for lots.
        # klipsdebug=none
        # plutodebug="control parsing"
        # For Red Hat Enterprise Linux and Fedora, leave protostack=netkey
        protostack=netkey
        nat_traversal=yes
        virtual_private=
        oe=off
        # Enable this if you see "failed to find any available worker"
        nhelpers=0

#You may put your configuration (.conf) file in the "/etc/ipsec.d/" and uncomment this.
include /etc/ipsec.d/*.conf

我的/etc/ipsec.d/myvpn.conf如下所示:

代码语言:javascript
复制
conn myvpn
        authby=secret                # Key exchange method
        left=server-ip                     # Public Internet IP address of the
                                     # LEFT VPN device
        leftsubnet=server-ip/32            # Subnet protected by the LEFT VPN device
        leftnexthop=%defaultroute    # correct in many situations
        right=asa-ip                 # Public Internet IP address of
                                     # the RIGHT VPN device
        rightsubnet=network/16       # Subnet protected by the RIGHT VPN device
        rightnexthop=asa-ip          # correct in many situations
        auto=start                   # authorizes and starts this connection
                                     # on booting
        auth=esp
        esp=aes-sha1
        compress=no

当我重新启动openswan服务时,一切都开始工作了,但我认为应该有一些逻辑可以自动执行此操作。有人知道我错过了什么吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-30 22:32:10

您可能希望启用失效对等检测(如果两端均可用)。失效对等体检测会注意到隧道实际上不再工作,并将其断开或重置。

如果不可用,您还可以尝试将会话重新协商时间更改为非常低的时间;您的隧道将频繁创建新密钥,并定期设置新隧道来替换旧密钥,从而在会话中断时在超时后有效地重新创建隧道。

对于Linux上的PPP会话,我只需在/etc/ PPP /ip-up.local中设置一个"service ipsec restart“,以便在PPP设备重新联机时重新启动所有隧道。

YMMV.

票数 5
EN

Stack Overflow用户

发布于 2013-01-10 11:35:49

试一试DPD,但不是工作。

所以我刚从mikebabcock学到了一些东西。

在我的/etc/ppp/ip-down中添加以下行

代码语言:javascript
复制
service ipsec restart

有了这个变通方法,现在L2TP/IPSec就像一个护身符。

票数 3
EN

Stack Overflow用户

发布于 2014-01-05 11:54:15

我不喜欢每次你失去连接就重新启动ipsec的想法。实际上,在ipsec中,/usr/libexec/ipsec/_updown在不同的操作上运行。同样的脚本可以在leftupdown/rightupdown上运行。但问题是,当远程客户端连接回您的主机时,它并不执行任何实际的命令。要解决此问题,您需要在/usr/libexec/ipsec/_updown.netkey中的up-client)之后添加doroute replace (当然,如果您使用Netkey ):

代码语言:javascript
复制
# ...skipped...
#
up-client)
# connection to my client subnet coming up
# If you are doing a custom version, firewall commands go here.
    doroute replace
#
# ...skipped...

但请注意,如果您更新软件包,此文件将被覆盖,因此只需将其放在其他位置,然后将以下命令添加到您的连接配置中:

代码语言:javascript
复制
rightupdown="/usr/local/libexec/ipsec/_updown"
leftupdown="/usr/local/libexec/ipsec/_updown"

现在,一旦远程连接回您的服务器,路由就会被恢复。

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

https://stackoverflow.com/questions/10813000

复制
相关文章

相似问题

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