|
发表于 2006-1-10 09:11:03
|
显示全部楼层
为一张网卡指定两个IP(即网卡别名)与共享上网没有任何直接的关系。只需要您的机子开启数据包转发功能。
在这里首先假定您的网络连接情况是,你有一个HUB(Switch也是一样)用于组建网络连接,你有一个ADSL MODEM联在这个HUB上,你的linux主机和其他需要联网的主机也联在这个HUB
上,您的ADSL MODEM不能主动发起PPPoE拨号连接,这意味着必须由这个局域网中的某一台主机发起拨号连接。
经过协商一致认为由您的主机发起连接比较合适(windows漏洞难防暴露在外恐遭不测或是您需要独立的Internet IP,对外开启服务等等)。于是经过一番努力终于找到了在linux上发
起PPPoE拨号连接的办法。执行一个脚本之后,您的主机透过ADSL MODEM与你的ISP(电信或网通)建立起连接。恭喜!您上网了。你的计算机有了一个独立的IP,成为Internet上的一
台主机。
好开心,不是吗?别急还有一帮兄弟等在一边急不可耐。OK,在开启连接共享设定之前让我们再看一下你此时的网络连接状态。ifconfig -a。奇怪,怎么多出了个ppp0接口?还带ip的
?看上去像真正的Internet IP。而接到HUB上的那张网卡eth0还是原来的IP。是的,PPPoE拨号呼叫经由ADSL MODEM接入到Internet而建立起的连接正是这个虚连接,接口正是这个ppp0
。两个接口,两个IP。;)跟您想的不太一样吧。
好了,说到这里其中原委想必你已经能猜出个大半,接下来该怎么做且听我慢慢道来。从物理上讲,你的数据包是经过eth0发送到网络上,ppp0接口是建立在eth0接口上的虚拟接
口,xxxxxx(此出省略1千字)。从逻辑上讲你的主机拥有两个网络接口,ppp0接入到Internet,eht0接入到你当前所在的局域网。你的主机同时接入到两个网络。局域网内的主机要跟
Internet上的主机建立起通讯就必须经过你的主机进行数据包的转发。课本上管这个叫网关。(铛,铛铛,铛~某人做恍然大悟状)
要变成网关首先开启数据包转发功能:
# echo 1 > /proc/sys/net/ipv4/ip_forward
启用NAT功能:
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
网络上其他主机设置:
ip置为同一网段,如你的eth0为192.168.1.xxx则其他主机ip也必为192.168.1.xxx;指定你的主机为网关,如你的eth0为192.168.1.1;设定DNS服务器,看看你自己的DNS服务器ip是多
少。
打完收工,呼呼。:cool:
路人甲:两行代码写了这么多,靠~ |
|