联通FTTR尝试不改桥接下接二级路由器

最近改完FTTR,原来的桥接被改成光猫拨号了
不过发现联通给的新猫可以配置UPNP以及向二级路由器下放PD,因此感觉可以先试着不改桥接

型号:Huawei OptiXstar V173

先尝试了一下直接用路由器获取前缀
(IP仅作为参考,和实际IP无关)

PPPoE下发:2408:831d:24d0:a840::/60
路由器WAN口:2408:831d:24d0:a840::/64
路由器LAN口:2408:831d:24d0:a840::/64

不知道是什么原因,向下级设备下发PD的时候好像下发了和LAN口一模一样的段。。
导致路由器后的设备获取到IP也没办法联网

最后把LAN口地址加了一个掩码,和PD段错开才能正常联网
(注意分配方式需要选DHCPv6)

19216821.jpg

改完后的IP如下

PPPoE下发:2408:831d:24d0:a840::/60
路由器WAN口:2408:831d:24d0:a847::/64
路由器LAN口:2408:831d:24d0:a840::/64

这样路由器后面的设备就可以正常使用IPv6了


至于端口映射,user 没有开 DMZ 或者端口映射的权限,不过 UPNP 是可以打开的
因此可以通过在路由器后面开一个服务,定期去向光猫请求来变相实现端口映射

(自己破解或者找人获取超级密码的话有可能故障的时候会跟联通扯皮,所以能用现有权限搞定的就先不弄超级用户了)

eth0: 通常的接在路由器上的网卡,用来以路由器的IP发送端口映射请求
eth1: 通过第二个网卡,或群晖等通过交换机VLAN来直接接到光猫上用来获取UPNP服务器地址
辽宁联通的光猫IP地址是 192.168.2.1,如果不一致的话请改成实际的地址

使用的系统为Debian 12.5, miniupnpc 版本 2.2.4

#!/bin/bash
function setredirection(){
        URL="$1"
        PROT="$2"
        IP="$3"
        PORT="$4"

        KeyWord="$PROT $PORT->$IP:$PORT"
        echo "[$(date)] Checking $KeyWord..."
        if upnpc -u "$URL" -l | grep -q "$KeyWord";then  # 如果要映射的记录已经存在则跳过
                echo "[$(date)] Current existed."
        else
                echo "[$(date)] Adding $KeyWord..."
                echo "====================="
                upnpc -u "$URL" -a "$IP" "$PORT" "$PORT" "$PROT" 86400
                echo "====================="
        fi

}

ip link set eth1 up  # 打开直连光猫的网卡
sleep 1

UpnpGet="$(upnpc -m eth1 -P | grep "desc:" | awk '{print $2}')"  # 获取UPNP服务地址
UpnpFile="$(cat /root/upnp.txt)". # 为防止eth1故障时端口映射失效,缓存一下UPNP地址

if echo "$UpnpGet" | grep -q "http://192.168.2.1:"; then  # 如果UPNP地址里包括光猫IP则使用获取到的地址,如果没有则使用缓存的地址
        echo "[$(date)] Get XML Addr: $UpnpGet"
        UpnpAddr="$UpnpGet"
        echo "$UpnpGet" > /root/upnp.txt
else
        echo "[$(date)] Use Cached Addr: $UpnpFile"
        UpnpAddr="$UpnpFile"
fi


ip link set eth1 down  # 断开直连光猫的网卡,使请求通过路由器发送
sleep 1

# 映射端口到路由器的WAN口IP上
setredirection "$UpnpAddr" TCP "192.168.2.2" 12345
setredirection "$UpnpAddr" UDP "192.168.2.2" 23456
# ...

放到机器上几分钟跑一次,然后路由器上和平常一样做端口映射即可

标签: none

仅有一条评论

  1. ┗|`O′|┛ 嗷~~

添加新评论