如何设置另一网段的ip作为本机的网关
2013-05-10 15:04
357 查看
如何设置另一网段的ip作为本机的网关?
一般来说我们上网(wan)都需要isp给我们一个网关地址(无论我们的地址是静态的还是动态分配的),并且,一般的情况下,这个网关地址跟本地外网地址是同一个网段;然而,我遇到两种与此不同的情况:
1。pppoe(adsl)上网,有时,本地分配到的外网地址是61.xxx.xxx.xxx,而网关是218.xxx.xxx.xxx,这里,由于是ppp协议,ppp协议里通道两端地址是可以不是同一网段的(因为在这里,没有网段的概念,os不需要做arp寻址,所有发往对端地址的数据直接从ppp网口发送)。
2。某些宽带提供商提供LAN(以太网)上网连接服务,分配给用户的地址是:192.168.xxx.xxx掩码255.255.255.0,分配的网关地址是:172.16.xxx.xxx;这个情况下,如果使用windows类os,只要在网络参数中填上上述参数,就可以上网了;如果使用unix
like os,如FreeBSD,如果把网关设为172.16.xxx.xxx,根本ping不出去,提示No
route
to
host,如果是linux,在把该地址设置为网关是系统直接报错:SIOCADDRT:
Network is unreachable,不能做如此设置。
解决的方法很简单:
route add -host 172.16.xxx.xxx gw 192.168.xxx.xxx eth0
route add -net 0.0.0.0 gw 172.16.xxx.xxx eth0
(假设eth0是外网卡)
此方法的原理是:
如果没有前一条路由设置,因为当route add -net 0.0.0.0 gw 172.16.xxx.xxx eth0
时,系统必须知道到达172.16.x.x的路由得到该地址对应的MAC,不然os无法通过路由表判断该从哪块网卡发送arp请求以获得网关的MAC,(至少系统中有eth0跟loopback两块网卡,这是SIOCADDRT: Network is unreachable的来源),虽然route
add -net 0.0.0.0 gw 172.16.xxx.xxx eth0中有指定eth0,然而这是在前述路由检查之后;这就如同上楼梯,必须一级一级连续的,其中断了一级就无法跨越了。加了第一条路由后,就把这个断层补上了。
应该指出的是,此时上级网关172.16.xxx.xxx(isp端)必须做类似的设置:
route add -net 192.168.xxx.xxx/24 gw 172.16.xxx.xxx eth1
保证有正确的返回路由;
此外,用户(192.168.xxx.xxx)和isp(172.16.xxx.xxx)之间的连接必须是集线器或且交换机这样的第二层设备,如果是路由器就需要做在路由器上arp proxy(保证arp寻址正常)。
一般来说我们上网(wan)都需要isp给我们一个网关地址(无论我们的地址是静态的还是动态分配的),并且,一般的情况下,这个网关地址跟本地外网地址是同一个网段;然而,我遇到两种与此不同的情况:
1。pppoe(adsl)上网,有时,本地分配到的外网地址是61.xxx.xxx.xxx,而网关是218.xxx.xxx.xxx,这里,由于是ppp协议,ppp协议里通道两端地址是可以不是同一网段的(因为在这里,没有网段的概念,os不需要做arp寻址,所有发往对端地址的数据直接从ppp网口发送)。
2。某些宽带提供商提供LAN(以太网)上网连接服务,分配给用户的地址是:192.168.xxx.xxx掩码255.255.255.0,分配的网关地址是:172.16.xxx.xxx;这个情况下,如果使用windows类os,只要在网络参数中填上上述参数,就可以上网了;如果使用unix
like os,如FreeBSD,如果把网关设为172.16.xxx.xxx,根本ping不出去,提示No
route
to
host,如果是linux,在把该地址设置为网关是系统直接报错:SIOCADDRT:
Network is unreachable,不能做如此设置。
解决的方法很简单:
route add -host 172.16.xxx.xxx gw 192.168.xxx.xxx eth0
route add -net 0.0.0.0 gw 172.16.xxx.xxx eth0
(假设eth0是外网卡)
此方法的原理是:
如果没有前一条路由设置,因为当route add -net 0.0.0.0 gw 172.16.xxx.xxx eth0
时,系统必须知道到达172.16.x.x的路由得到该地址对应的MAC,不然os无法通过路由表判断该从哪块网卡发送arp请求以获得网关的MAC,(至少系统中有eth0跟loopback两块网卡,这是SIOCADDRT: Network is unreachable的来源),虽然route
add -net 0.0.0.0 gw 172.16.xxx.xxx eth0中有指定eth0,然而这是在前述路由检查之后;这就如同上楼梯,必须一级一级连续的,其中断了一级就无法跨越了。加了第一条路由后,就把这个断层补上了。
应该指出的是,此时上级网关172.16.xxx.xxx(isp端)必须做类似的设置:
route add -net 192.168.xxx.xxx/24 gw 172.16.xxx.xxx eth1
保证有正确的返回路由;
此外,用户(192.168.xxx.xxx)和isp(172.16.xxx.xxx)之间的连接必须是集线器或且交换机这样的第二层设备,如果是路由器就需要做在路由器上arp proxy(保证arp寻址正常)。
相关文章推荐
- windows 2003 单网卡双网关 多IP地址如何设置
- 网关和IP必须设置在同一个网段吗
- 网关和IP必须设置在同一个网段吗?
- 网关和IP必须设置在同一个网段吗?
- 三层交换机如何设置IP-MAC绑定?跨网段IP-MAC绑定方案。
- 如何在程序中设置 Android 的 IP、DNS 和网关?
- 如何设置同一网段IP
- linux 设置默认网关与网卡ip不同网段
- 关于路由器中设置IP与网关不在同一网段方法的问题
- Windows 7 下如何自动设置静态ip、 网关等
- Linux下用ifconfig命令设置IP、掩码、网关
- 网关和本机IP不同网段的上网办法
- 在Linux操作系统下用命令方式修改IP、网关和dns设置
- 主机网卡IP与网关IP不在相同网段对外通讯测试
- jmeter如何设置IP欺骗
- 命令设置ip,dns,网关
- [置顶] 如何判断两个IP大小关系及是否在同一个网段中
- linux/windows系统设置ip、网关、加路由
- FreeBSD 设置网卡IP,网关和DNS
- centos7 如何安装图形化界面以及设置IP,设置键盘布局,取消锁定