V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
GetWoke
V2EX  ›  WireGuard

wireguard 做 ipv6 隧道

  •  
  •   GetWoke · 2019-10-14 18:59:03 +08:00 · 13589 次点击
    这是一个创建于 1628 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在你们还在讨论宽带的时候,我来问个其他的问题
    1、家里有两条宽带,电信(有公网 ipv4、无公网 ipv6)、免费的移动(无公网 ipv4、有公网 ipv6),wireguard 连接了,怎么让 wireguard 连接的对端能获取到移动的 ipv6 呢,路由器 openwrt,双线拨号。
    2、一个老问题,两个 wireguard 怎么互相连通? https://www.v2ex.com/t/596772#reply14 里面提到了,后来试了一下,没用成功,还是不明白 iptables 的 nat 转发跟 linux 策略路由之间的区别。
    3、v2 咋传图啊。
    ps:现在闹的沸沸扬扬的流量穿透?没错,我就是要搞这个,不过我不是盈利,而是最大化理由资源
    第 1 条附言  ·  2019-10-16 18:36:06 +08:00
    我看大部分再说 nat 的事情,我这个应该跟 nat 没关系吧
    最近比较忙,也没时间去调试,过段时间再弄吧
    最近闹的沸沸扬扬的封停宽带,我这边没听说啊,上海地区,我路由器上开了一大堆端口,各种 web 管理,v*n 之类的东西,也没人找我啊。
    200M 宽带,专门在咸鱼上买了氮气瓶把上传提到 100M 的,一个流量大概在 1T 左右,不是很多,因为公司是 CN2 网络,我在公司拨到家里,然后科学上网的,公司是内网,没有网管权限,有时候一晚上跑 200G,并且都是科学上网的流量,公司也没人找我啊
    第 2 条附言  ·  2019-11-05 16:08:41 +08:00
    终于解决了,卧槽,头疼了半个月,研究了很久 osi 模型,理解了三层四层的相关知识后,终于搞定了,确实如大佬们所说的一样,其实中间根本不需要 nat,写好目的路由就行了,当然 WireGuard 得再两边的 perr 各自写上对方的路由,也就是 AllowedIPs 选项中必须要写目的地址,回程路由一样在另一边的 AllowedIPs 写上源地址(数据包的原地址,不一定是 WireGuard 隧道的地址段),不然不会路由。WireGuard 的官方资料还是太少了,东西我觉得还是不错,加密 速度 资源占用之类的优点,确定就是资料少,官方更新也慢,目前国内用的不错,轻松跑满 200M 外网带宽。
    26 条回复    2019-11-30 19:35:29 +08:00
    GetWoke
        1
    GetWoke  
    OP
       2019-10-14 19:12:18 +08:00
    有人知道这个东西咋弄吗,有跟我一样想法的吗,要不要建个群,一起建个网络,通过隧道共享?大家各自的 ipv4,ipv6 都用起来啊,还有 CN2 的网络,用来穿透打游戏不是很好吗
    ungrown
        2
    ungrown  
       2019-10-14 19:14:28 +08:00
    zerotier
    cwbsw
        3
    cwbsw  
       2019-10-14 19:16:52 +08:00
    wireguard 隧道在创建时要显式指定地址,所以最好还是使用 ULA 地址然后 NAT6 吧。不然移动下发的前缀每次变动你都要在隧道两边配置新的地址。
    mason961125
        4
    mason961125  
       2019-10-14 19:18:18 +08:00
    建议学习 CCIE Routine & Switching
    mason961125
        5
    mason961125  
       2019-10-14 19:20:31 +08:00
    @mason961125 #4 *Routing
    GetWoke
        6
    GetWoke  
    OP
       2019-10-14 19:25:21 +08:00
    @cwbsw 对啊,现在就是纠结这个问题,如果我不指定 ipv6 的地址,只指定 ipv4 地址,或者我指定了 ULA 地址,可以通过 dhcpdv6 下发临时地址吗,到各个接口吗,还是说 wireguard 接口一定要指定 ipv6 才能通讯,有点麻烦的是 AllowedIPs 这个选项,这个不是说指定接口地址,而是说哪些地址可以通过接口
    GetWoke
        7
    GetWoke  
    OP
       2019-10-14 19:30:53 +08:00
    一年前发现了 wireguard,后来一直在用,主要是觉得国内运营商对其他协议封锁的厉害,而且也不安全,这个协商速度还挺快的,之前用 open***,不是那么满意,虽然是在国内使用,但是速度不是很快,目前 wireguard,城域网轻轻松松跑满,跨省的话用上 udp2raw,也能跑满,协议本身的加密也不错,后来就想到用这个做穿透岂不是美哉
    zro
        8
    zro  
       2019-10-14 19:31:43 +08:00
    GetWoke
        9
    GetWoke  
    OP
       2019-10-14 19:34:43 +08:00
    @mason961125 CCIE 没了解过,iptables,前段时间恶补了一下,常用的都会了,策略路由网上讲的比较散,也不深,不管是 google 还是 baidu,路由跟交换我知道啊,我看了网络层跟传输层的资料,也许是比较笨,有些概率理解不了
    optional
        10
    optional  
       2019-10-14 19:36:24 +08:00
    openwrt 不会给你的设备分配 v6 地址吗?如果会分配,那么只要把目标的 dns 解析成 v6 地址就会自动走移动了吧。
    GetWoke
        11
    GetWoke  
    OP
       2019-10-14 19:38:10 +08:00
    @zro 这个我看过了,不是我想要的实现,我是想通过移动 PD 自动分配,或者手动分配地址,不是要 nat6,因为移动的 pd 是 60 的,所以应该用很多地址,想用起来,关键是我手动配置了全球唯一单播地址也不通,比如我在接口配置了 2409::1 类似的地址
    GetWoke
        12
    GetWoke  
    OP
       2019-10-14 19:40:28 +08:00
    @optional openwrt 只给局域网内的接口分配了 v6,Lan 接口下面的都能获取到 v6,wireguard 或者其他虚拟接口没有自动分配
    optional
        13
    optional  
       2019-10-14 19:43:19 +08:00
    @GetWoke 你要其它设备获得 ipv6 地址然后通过 openwrt 的移动 ipv6 上网?
    GetWoke
        14
    GetWoke  
    OP
       2019-10-14 19:44:05 +08:00
    @optional 所有我从虚拟接口(隧道)接入的客户端没法使用 v6,因为 v4 默认我不会走全局,想实现的效果就是客户端接入后,客户端除非虚拟接口或者我指定的 ip 走隧道,v6 应该通过 v4 使用全局路由
    GetWoke
        15
    GetWoke  
    OP
       2019-10-14 19:48:48 +08:00
    @optional 对的,就是想这样,这样的话有两个好处,1、60 的 PD 地址比较多,可以合理使用。2、所有设备都能获得一个公网 v6,以后要访问这个设备直接走 v6 就能到达。比如我现在再公司,或者我要帮助我朋友或者客户远程调试一些东西,那么我再也不用通过类似的虚拟隧道去访问了,我直接连接对应的公网 ipv6 就可以了
    zro
        16
    zro  
       2019-10-14 19:54:14 +08:00
    optional
        17
    optional  
       2019-10-14 20:03:12 +08:00
    @GetWoke nat 转发肯定可以,但是分配公网 ip 过去不知道行不行,我用 zerotier,晚上回去试试
    gefranks
        18
    gefranks  
       2019-10-14 20:04:07 +08:00
    我猜用 wireguard 要得到 PD IPv6 需要个类似 proxy 或者 relay 的东西搞下,或者可能要把 wg 的口跟有 pd 的口桥接下, 但基于大陆的 ipv6 基本是无法用的状态我现在也没动力去试.
    wg 如果只是多网段路由要通的话没啥特别难的啊, 就是几个主机上 ip 转发开启,iptables FORWARD 链允许转发.然后手工写来去的路由,要么几个机器都跑 OSPF
    GetWoke
        19
    GetWoke  
    OP
       2019-10-14 20:12:20 +08:00
    @zro 这个我没仔细看,我去看看
    bilibilifi
        20
    bilibilifi  
       2019-10-14 21:44:25 +08:00 via iPhone
    在启动脚本里用 ip6tables 映射 ipv6 ula 就可以了,两行搞定
    bilibilifi
        21
    bilibilifi  
       2019-10-14 21:45:30 +08:00 via iPhone
    ps: 记得开 forwarding
    optional
        22
    optional  
       2019-10-15 21:02:16 +08:00
    @GetWoke 我的 op 装不上 kmod-ip6tables, 创建不了 ipv6 nat。
    GetWoke
        23
    GetWoke  
    OP
       2019-10-16 18:26:46 +08:00
    @optional 不清楚,你得看看提示什么,这个包应该默认就是安装好的,我是软路由,就是因为之前再 k2p 上跑 v*n,速度死慢,我才换的
    zro
        24
    zro  
       2019-10-24 23:50:29 +08:00
    这两天发现 Warp+有楼主想实现的功能,本地无 v6 地址,但连上成功后可得到公网 v6 地址
    Wassermelone
        25
    Wassermelone  
       2019-10-25 10:02:50 +08:00
    老哥中转询价
    zro
        26
    zro  
       2019-11-30 19:35:29 +08:00
    楼主,可否详细说一下配置?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2870 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 13:02 · PVG 21:02 · LAX 06:02 · JFK 09:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.