移动光纤宽带两种拨号方法小试

您所在的位置:网站首页 移动h2-3s光猫设置 移动光纤宽带两种拨号方法小试

移动光纤宽带两种拨号方法小试

2023-04-01 00:22| 来源: 网络整理| 查看: 265

移动不时地发短信说我有一个300m的光纤套餐,免费试用一年,第二年起每月30元,感觉有点心动就叫师傅来安装了。这几天使用的效果很不错的,速度能保证,Ookla在线测速下载都超过400Mbps,也没发现有什么时段拥挤。有人说移动宽带延迟高,我不玩在线游戏,没这方面的体会。让我感到不便是对一些网站的支持,从教育往来的,经常要用到谷歌搜索和谷歌学术,还有github,这些网站都水泄不通,不知为什么。

用浏览器从阿里云下载电影,最高可达45MB/s。

移动的宽带有ipv6(可以实现原生的ip),v4只有内网ip。接入通过一个光猫,给我的是吉比特H2-3e,光猫自带拨号,一个千兆网口。如果不介意自家的手机电脑直接面对移动的大内网,直接由千兆网口通过交换机连接手机电脑就可。光猫充当拨号路由,但用户没有光猫的控制权,无法做任何的设置。这时用户机器上分配的ip为192.168.1.x,ipv6为原生ip。这是最常见的也可取得原生ipv6的接法,这里不说。要说的两种方法为:1、通过取得光猫的管理员密码,光猫以桥接的方式输出,用户用自己的路由器组内网进行拨号接入。2、光猫拨号不变,用户用自己的路由器组内网实现ipv6。这两种方法,相对要安全些,因为自己的路由器充当了隔离。两种方法我都试了,Ookla速度测试无明显差别。如果只是上网,不必纠结哪种方法,除非有其他需求。第一种方法关键需要能进入光猫实现桥接,第二种方法技术含量高一些,因为光猫拨号给的ipv6前缀为128位的,自家路由器的dhcp无法给下一级的机器路由ipv6。网上搜了一下,可通过relay(取得Native)、NAT6、6TO4、6IN4等模式都能实现ipv6。我试了前面的两种,中继relay的方法没成功,也说取得ipv6要3~4分钟,后来放弃了。要说就NAT6了,这个方法比较成熟。

1、光猫桥接方法

管理员密码可以百度,比较有幸我这里直接可用。进入后首先找到原网络设置页面,先截屏备份,记录各项设置参数包括拨号的用户名和密码,这边的用户名手机号开头,密码是手机最后6位。之后删除,建立一个对应的桥架设置,如下图:

划红线的每一项不能漏,除模式其余都要跟之前的一致。还可以把远程管理平台的网址去除,不去除据说会定期复原设置。

我没用几天,所以还没遭遇更改被复原。在光猫上要做的就这些,下面是路由器的拨号设置。我用了刷了openwrt的红米Ac2100路由器,开源的openwrt也很安全。首先是lan的设置,子网不要用1了,我用100,dns也用自己觉得好的。

lan的ipv6 dhcp选择“总是通告默认路由”,另外,也可以用自己喜欢的dns。

wan选择PPPoE协议拨号就好。

拨号连接的效果如下:

wan网v4连接的是移动二级子网,172开头的,ipv6虚拟出了一个拨号的wan_6,看见了吗,取得了一个60位ipv6前缀,dhcpv6可以自动给子网分配v6 ip。所以,电脑得到的是原生ipv6。这里需要注意,因为拨号连接到了二级子网,这时就无法进入光猫的控制页面了,路由指向172那里了,要再设置光猫需要停止拨号,或拔下网线用光猫连电脑就可,这时可访问192.168.1.1。

2、光猫拨号不变路由NAT6实现ipv6

维持光猫拨号,用自家的路由器组网接入就涉及到如何实现ipv6的问题。Nat6已经是成熟的技术,openwrt知识库有现成的方法,因此需要一台刷了openwrt的路由器。我用了一台红米AC2100。设置的具体步骤如下:

2.1、 安装kmod-ipt-nat6

用putty登录路由器,首先安装组件,记住,以下代码都在putty上运行。

opkg update opkg install kmod-ipt-nat6

2.2、修改局域网ipv6前缀

uci set network.globals.ula_prefix="$(uci get network.globals.ula_prefix | sed -e "s/^./d/")" uci commit network /etc/init.d/network restart

2.3、dhcp宣告默认路由

uci set dhcp.lan.ra_default="1" uci commit dhcp /etc/init.d/odhcpd restart

2.4、firewall配置

上流wan区配置ipv6地址伪装

uci set $(uci show firewall | sed -n -e "/\.name='wan'$/s//.masq6='1'/p" | sed -n -e "1p") uci commit firewall

2.5、禁用防火墙Allow-ICMPv6-Forward规则

uci set $(uci show firewall | sed -n -e "/\.name='Allow-ICMPv6-Forward'$/s//.enabled='0'/p" | sed -n -e "1p") uci commit firewall

2.5、保存nat6防火墙规则脚本,直接复制到shell console中执行,会在生成/etc/firewall.nat6。别怕那么长,拷贝进去运行即可。

# Configure firewall cat /etc/firewall.nat6 # NAT6 + masquerading firewall script # https://github.com/akatrevorjay/openwrt-masq6 # trevorj # # You can configure in /etc/config/firewall per zone: # * IPv4 masquerading # option masq 1 # * IPv6 masquerading # option masq6 1 # * IPv6 privacy extensions # option masq6_privacy 1 set -e -o pipefail . /lib/functions.sh . /lib/functions/network.sh . /usr/share/libubox/jshn.sh log() { logger -t nat6 -s "${@}" } get_ula_prefix() { uci get network.globals.ula_prefix } validate_ula_prefix() { local ula_prefix="${1}" if [ $(echo "${ula_prefix}" | grep -c -E -e "^([0-9a-fA-F]{4}):([0-9a-fA-F]{0,4}):") -ne 1 ] ; then log "Fatal error: IPv6 ULA ula_prefix=\"${ula_prefix}\" seems invalid. Please verify that a ula_prefix is set and valid." return 1 fi } ip6t() { ip6tables "${@}" } ip6t_add() { if ! ip6t -C "${@}" &> /dev/null; then ip6t -I "${@}" fi } nat6_init() { iptables-save -t nat \ | sed -e "/\s[DS]NAT\s/d;/\sMASQUERADE$/d;/\s--match-set\s\S*/s//\06/" \ | ip6tables-restore -T nat } masq6_network() { # ${config} contains the ID of the current section local network_name="${1}" local device network_get_device device "${network_name}" || return 0 local done_net_dev for done_net_dev in ${DONE_NETWORK_DEVICES}; do if [ "${done_net_dev}" = "${device}" ]; then log "Already configured device=\"${device}\", so leaving as is." return 0 fi done log "Found device=\"${device}\" for network_name=\"${network_name}\"." if [ "${zone_masq6_privacy}" -eq 1 ]; then log "Enabling IPv6 temporary addresses for device=\"${device}\"." log "Accepting router advertisements on ${device} even if forwarding is enabled (required for temporary addresses)" echo 2 > "/proc/sys/net/ipv6/conf/${device}/accept_ra" \ || log "Error: Failed to change router advertisements accept policy on ${device} (required for temporary addresses)" log "Using temporary addresses for outgoing connections on interface ${device}" echo 2 > "/proc/sys/net/ipv6/conf/${device}/use_tempaddr" \ || log "Error: Failed to enable temporary addresses for outgoing connections on interface ${device}" fi append DONE_NETWORK_DEVICES "${device}" } handle_zone() { # ${config} contains the ID of the current section local config="${1}" local zone_name config_get zone_name "${config}" name # Enable masquerading via NAT6 local zone_masq6 config_get_bool zone_masq6 "${config}" masq6 0 log "Firewall config=\"${config}\" zone=\"${zone_name}\" zone_masq6=\"${zone_masq6}\"." if [ "${zone_masq6}" -eq 0 ]; then return 0 fi # IPv6 privacy extensions: Use temporary addrs for outgoing connections? local zone_masq6_privacy config_get_bool zone_masq6_privacy "${config}" masq6_privacy 1 log "Found firewall zone_name=\"${zone_name}\" with zone_masq6=\"${zone_masq6}\" zone_masq6_privacy=\"${zone_masq6_privacy}\"." log "Setting up masquerading nat6 for zone_name=\"${zone_name}\" with zone_masq6_privacy=\"${zone_masq6_privacy}\"" local ula_prefix="$(get_ula_prefix)" validate_ula_prefix "${ula_prefix}" || return 1 local postrouting_chain="zone_${zone_name}_postrouting" log "Ensuring ip6tables chain=\"${postrouting_chain}\" contains our MASQUERADE." ip6t_add "${postrouting_chain}" -t nat \ -m comment --comment "!fw3" -j MASQUERADE local input_chain="zone_${zone_name}_input" log "Ensuring ip6tables chain=\"${input_chain}\" contains our permissive DNAT rule." ip6t_add "${input_chain}" -t filter -m conntrack --ctstate DNAT \ -m comment --comment "!fw3: Accept port forwards" -j ACCEPT local forward_chain="zone_${zone_name}_forward" log "Ensuring ip6tables chain=\"${forward_chain}\" contains our permissive DNAT rule." ip6t_add "${forward_chain}" -t filter -m conntrack --ctstate DNAT \ -m comment --comment "!fw3: Accept port forwards" -j ACCEPT local DONE_NETWORK_DEVICES="" config_list_foreach "${config}" network masq6_network log "Done setting up nat6 for zone=\"${zone_name}\" on devices: ${DONE_NETWORK_DEVICES}" } main() { nat6_init config_load firewall config_foreach handle_zone zone } main "${@}" EOF

2.6、把NAT6脚本加入到系统配置

# Configure firewall uci -q delete firewall.nat6 uci set firewall.nat6="include" uci set firewall.nat6.path="/etc/firewall.nat6" uci set firewall.nat6.reload="1" uci commit firewall /etc/init.d/firewall restart

2.7、参数配置

# Configure firewall uci set firewall.@zone[1].masq6="1" uci set firewall.@zone[1].masq6_privacy="1" uci commit firewall /etc/init.d/firewall restart

如果masq6_privacy指定为1(默认为0即关闭), 此时外发的IPv6将使用临时地址并动态变化。这将使得很难追踪浏览行为。

至此配置完成且防火墙已经再次启动,已经向内网转发ipv6了。

3、结语

两种方法我都试过,速度无差别,可以根据自己的情况用。从安全性上看,nat6方法更高,因为机器上的v6 ip可以实现动态变化,但nat6的配置要求有刷了openwrt的路由器。如果是普通市面上的路由器,那么光猫桥接更可行。

参考文献:

Openwrt知识库 https://openwrt.org/docs/guide-user/network/ipv6/ipv6.nat6



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3