光猫的宽带连接设置成桥接模式后,使用openwrt进行PPPoE拨号,这时光猫的LAN口IP还是保留的,可以直接把电脑接到光猫的其他LAN口对光猫进行访问。
如果想让电脑通过openwrt去访问光猫也是可以的,只要在openwrt连接光猫的接口上新建一个虚拟接口,将这个接口的IP配置成跟光猫的LAN口IP同一个网段就可以了。
这样openwrt的上行接口就有两个网段,一个是与运营商的PPPoE服务器相连的网段,用于上网;另一个是与光猫相连的网段,用于管理光猫。
拓扑
在openwrt创建一个新接口
网络—接口—添加新接口,新建一个接口,名称自定义,我这里命名为ont。
基本配置
协议:可以设置为DHCP客户端,从光猫的LAN口自动获取IP;也可以设置为静态地址,手动将接口的IP设置为跟光猫的LAN口相同的网段。
IPv4地址:例如我的光猫的LAN口IP为10.0.0.1,掩码为255.255.255.0,将openwrt的ONT接口的IP设置为·10.0.0.3,掩码为255.255.255.0。
IPv4网关:可以不用配置,如果设置的话,就填写光猫的LAN口IP。
高级设置
这里主要是设置“使用网关跃点”,只要填写一个比WAN接口的跃点数更大的值就可以了。
!> 此时一定要在openwrt上配置好WAN接口和ONT接口这两个网段的路由跃点数,可以把用于上网的WAN接口网段的路由的跃点数设置为0,连接光猫的ONT接口网段的跃点数设置为更大的值就可以了。
跃点数就是关于这条路由的优先级,数值越小优先级越高。如果WAN接口和ONT接口都设置了网关,那么路由器会自动生成两条默认路由0.0.0.0/0,只是这两条路由的网关不一样,WAN接口的网关是运营商的IP,ONT接口的网关是光猫的LAN接口IP。如果ONT这个接口的默认路由0.0.0.0/0的跃点数更小,就会导致无法上网,因为光猫已经对宽带连接做了桥接,没有连接到运营商的上行链路,LAN接口IP只能用于管理。所以要保证WAN接口的默认路由0.0.0.0/0的跃点数是最小的。
物理设置
将ONT这个虚拟接口与eth0物理接口关联。图中显示eth0这个物理接口关联了ont接口和wan接口这两个虚拟接口,也就是两个不同网段的虚拟接口共用一个物理接口。
防火墙设置
将ONT接口加入到防火墙的wan区域。这时没必做再为ONT接口新建一个防火墙区域,和WAN口放在同一个区域即可。
i> 因为防火墙的wan区域是做了NAT的,所以WAN接口和ONT接口的流量都会做NAT,这样ONT接口不用指定网关也可以。openwrt做了NAT后,其他网段的IP访问光猫时,被转换为openwrt接口的IP,此例中是ONT接口的IP。而openwrt的ONT接口与光猫LAN接口是同一个网段的,使得光猫不用写静态回程路由,即使有的光猫无法添加静态路由也没有问题。
关于路由的跃点数
如果ONT接口不配置网关,路由器关不会生成0.0.0.0/0的路由,如下图所示。
关于ont这个接口,“对象”下显示的只是ont接口的网段,”IPv4网关”下是空的。而关于wan这个接口,“对象”下显示的是0.0.0.0/0,这是一条默认路由,”IPv4网关”下显示的是运营商设备的IP,上网就是走这条路由。
如果ONT接口配置了网关,即把网关设置为光猫的LAN口IP,路由器也会根据ont接口生成一条新的默认路由,这样就同时存在两条默认路由了。
上图中有两条路由路由0.0.0.0/0,一条是关于wan口的,网关为运营商的设备,一条是关于ont接口的,网关为光猫的LAN口IP。如果数据是从这个默认路由转发,那肯定是不能上网的,所以我们需要把WAN口的路由跃点数设置为最低的,如设置为0,把ont接口的跃点数设置为100,这样上网时就会选择WAN口转发数据。