OpenWRT 配置 IPv6,在网上有许多教程,但大部分都说的不清不楚。 所以我从 OpenWRT 配置文件的角度,给出一个肯定能用的配置。 相关配置原理不详述,可自行上网查找。
# /etc/config/network ... config interface 'lan' option proto 'static' option ipaddr '192.168.10.10' option netmask '255.255.255.0' option device 'eth0' option ip6assign '64' # IPv6分配长度。要与 wan 口一致。 config interface 'wan' option proto 'pppoe' option username '***********' option password '***********' option device 'eth1' option ipv6 'auto' # 自动获取IPv6地址,使用这个选项后,会自动创建一个虚拟动态接口(WAN_6),不用配置。 option ip6assign '64' # IPv6分配长度。参考 WAN_6 接口 IPv6-PD 的掩码长度,一般为“60”,比它大即可,系统默认为64。 ...
# /etc/config/firewall ... config zone option name 'lan' list network 'lan' option input 'ACCEPT' option output 'ACCEPT' option forward 'ACCEPT' config zone option name 'wan' list network 'wan' option input 'DROP' # 关闭 wan 口输入流量 option output 'ACCEPT' # 只出不进 option forward 'REJECT' option masq '1' # 打开 NAT 功能 option mtu_fix '1' # 路由器直接拨号时使用 ... # 转发规划很重要 config forwarding option src 'lan' option dest 'wan' ... # 允许外网IPv6协议下,任意地址的547端口的UDP包通过wan口,访问本机546端口 config rule option name 'Allow-DHCPv6' option proto 'udp' option src 'wan' option src_port '547' option dest_port '546' option target 'ACCEPT' option family 'ipv6'
# /etc/config/dhcp
...
config dhcp 'lan'
option interface 'lan'
option start '100'
option dhcpv4 'server'
option limit '200'
option force '1'
option leasetime '2h'
option ra 'server' # RA服务 服务器模式
option dhcpv6 'server' # DHCPv6服务 服务器模式
list ra_flags 'none' # RA标记 无
config dhcp 'wan'
option interface 'wan'
option ignore '1'
list ra_flags 'none'
config odhcpd 'odhcpd'
option maindhcp '0'
option leasefile '/tmp/hosts/odhcpd'
option leasetrigger '/usr/sbin/odhcpd-update'
option loglevel '4'
$ curl 6.ipw.cn
使用以下拓扑结构来,解决多个物理网卡随时切换的问题: 宿主机直连路由器,宿主机上创建一个虚拟路由器,和一个虚拟机,宿主机与虚拟机都通过虚拟路由器来上网。
TP Route | 宿主机 | OpenWRT | 虚拟机 | |
---|---|---|---|---|
WLAN | >DHCPIP: 192.168.10.113IP: 192.168.10.114mac: ac-8f | >BridgeIP: -mac: ac-8f | - | - |
外部网络 | - | >WLANIP: 192.168.10.113mac: ac-8f | >WLANIP: 192.168.10.114mac: 01-36 | - |
内部网络 | - | >DHCPIP: 192.168.123.100mac: 01-28 | >StaticIP: 192.168.123.1mac: 01-29 | >DHCPIP: 192.168.123.102mac: 01-2c |
网桥 | - | >SwitchIP: -mac: ac-8f | - | - |
可以尝试使用网桥功能,解决多物理网卡切换的问题
~# nano /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.10.16/24
gateway 192.168.10.10
hostname alpine
# nano /etc/resolv.conf
nameserver 114.114.114.114
~# service networking restart
基于Centos 7
# 简单接口状态
$ nmcli dev status
# 详细的接口信息
$ nmcli dev show
# 接口的详细信息
$ nmcli dev show <interface-name>
# 简单信息
$ nmcli conn show
# 详细的连接信息
$ nmcli conn show
# 某个连接的详细信息
$ nmcli conn show <conn-name>
nmcli conn add type <ethernet> con-name <conn-name> ifname <dev-name> ip4 <192.168.100.100/24> [gw4 <192.168.100.1>]
nmcli conn mod <conn-name> /
ipv4.method auto /
ipv4.address "" /
ipv4.gateway "" /
ipv4.dns ""
$ nmcli conn mod <conn-name> ipv4.dns "1.2.4.8"
# 查询和显示所有网络连接的自动连接属性的当前值
$ nmcli -f name,autoconnect connection
# 更改网络连接的属性值
$ nmcli conn mod <conn-name> connection.autoconnect yes
nmcli conn up <conn-name>
$ nmcli conn up <conn-name>
$ nmcli conn down <conn-name>
$ nmcli dev connect <dev-name>
$ nmcli dev disconnect <dev-name>
建议使用 nmcli dev disconnect interface-name 命令,而不是 nmcli con down connection-name 命令,因为连接断开可将该接口放到“手动”模式,这样做用户让 NetworkManager 启动某个连接前,或发生外部事件(比如载波变化、休眠或睡眠)前,不会启动任何自动连接。