V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
ihciah
V2EX  ›  Linux

[求助]linux 如何在两个 tun 之间转发数据包?

  •  
  •   ihciah ·
    ihciah · 2015-04-24 21:33:50 +08:00 · 4756 次点击
    这是一个创建于 3290 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在同一台机器(A)上同时开了一个openvpn的服务端和客户端
    客户端连接B主机,设备tun3,10.8.0.x
    服务端对其他机器提供ovpn服务,设备tun9,10.9.0.1
    如何将tun9的数据包经过tun3中转呢?

    谢谢!

    6 条回复    2015-04-26 09:10:39 +08:00
    aarwwefdds
        1
    aarwwefdds  
       2015-04-24 22:35:16 +08:00   ❤️ 1
    你需要策略路由。。用ip route命令新建一个路由表1。用ip rule 将来自10.9.0.1/16的数据包走路由表1 然后设定路由表1的默认路由到tun3设备的网关

    一般的做法还得到“B”设置返回的路由,不过如果你不介意多次NAT,可以用iptables直接设置NAT表POSTROUTING链默认指向MASQUERADE就可以了
    catinsnow
        2
    catinsnow  
       2015-04-24 22:36:56 +08:00 via Android   ❤️ 1
    定义个路由表默认走tun3, 用策略路由 ip rule让10.9.0段IP lookup 这个表。
    tmqhliu
        3
    tmqhliu  
       2015-04-24 22:43:30 +08:00   ❤️ 1
    内核开启转发功能,然后再添加路由即可
    ihciah
        4
    ihciah  
    OP
       2015-04-24 23:26:13 +08:00
    感谢大家!
    问题解决:
    iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o tun3 -j MASQUERADE

    发现虽然转了两层openvpn,浏览网页正常,DNS正常,iOS的ingress依旧提示无法建立安全连接QAQ
    opkgopkg
        5
    opkgopkg  
       2015-04-25 12:07:19 +08:00 via Android
    萌。
    liuchen9586
        6
    liuchen9586  
       2015-04-26 09:10:39 +08:00
    https://www.v2ex.com/t/180070

    也许我写的这个教程能帮到你
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3012 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 08:17 · PVG 16:17 · LAX 01:17 · JFK 04:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.