BBS水木清华站∶精华区
发信人: rudey (huihui), 信区: Linux
标 题: IP别名mini-HowTo
发信站: BBS 水木清华站 (Wed Sep 16 19:54:02 1998)
IP别名mini-HowTo
作者:Harish Pillay (h.pillar@ieee.org)
翻译: rudey.bbs@bbs.cdit.edu.cn (1998/09/10)
摘要
Jan 13,1997
这是一个讲述如何用LINUX发布包运行IP别名的小书。也包括了如何设置使不同IP别名可
以收发电子邮件的步骤。
1 我的设置:
最新的核心(2.0.27-ftp.funet.fi:/pub/Linux/kernel/src/v2.0),从1.3.7x都支
持。
将IP别名功能编译成可装载模块。你可以使用“make config”来配置新的核心,将IP
转换功能编译成模块,请检查你的模块HOW-TO文档(假如有的话)或者看/usr/src/
linux/Documentation/modules.txt这个文件。
我已经将两个新的IP加到了原有的IP地址上。
一个D-LINK DE620袋式网卡(并不重要,任何LINUX支持的网卡都行)。
2 设置的步骤
首先载入IP别名的模块(如果你已将这个功能编译进核心,就可以跳过这一步);
/sbin/insmod /lib/modules/'uname -r' /ipv4/ip_alias.o
其次,设置你的回送地址、eth0和所有的IP别名的界面:
/sbin/ifconfig lo 127.0.0.1
/sbin/ifconfig eth0 up
/sbin/ifconfig eth0 172.16.3.1
/sbin/ifconfig eth0:0 172.16.3.10
/sbin/ifconfig eth0:1 172.16.3.100
172.16.3.1是我原有的IP地址,而.10和.100是这个地址的别名。其中的奥妙是
eth0:x,x=0,1,2,...,n。n就是不同的别名。而eth0是不需要别名的。
第三,设置路由。要设置回送地址的路由,网络的路由,从原始分配的那个IP开始的
不同别名的路由:
/sbin/route add -net 127.0.0.0
/sbin/route add -net 172.16.3.0 dev eth0
/sbin/route add -host 172.16.3.1 dev eth0
/sbin/route add -host 172.16.3.10 dev eth0:0
/sbin/route add -host 172.16.3.100 dev eth0:1
/sbin/route add default gw 172.16.3.200
在上述的IP举例中,我使用了内部IP(RFC1918中定义)。请用你自己的IP做替换。
举例中仅仅有3个IP地址,在/usr/include/linux/net_alias.h中定义最大值为256。
即可以使一块网卡最多有256个IP别名。太多了吧:)!
下边是我用/sbin/ifconfig显示的结果:
lo Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:4094 errors:0 dropped:0 overruns:0 frame:0
TX packets:4094 errors:0 dropped:0 overruns:0 carrier:0 coll:0
eth0 Link encap:Ethernet HWaddr 00:00:21:77:27:02
inet addr:172.16.3.1 Bcast:172.16.3.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:412771 errors:0 dropped:0 overruns:0 frame:0
TX packets:234328 errors:0 dropped:0 overruns:0 carrier:0 coll:2239
Interrupt:3 Base address:0x320
eth0:0 Link encap:Ethernet HWaddr 00:00:21:77:27:02
inet addr:172.16.3.1 Bcast:172.16.3.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 coll:2239
eth0:1 Link encap:Ethernet HWaddr 00:00:21:77:27:02
inet addr:172.16.3.1 Bcast:172.16.3.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 coll:2239
在/proc/net/alias下:
device family address
eth0:0 2 172.16.3.10
eth0:1 2 172.16.3.100
在/proc/net/alias_types下:
type name n_attach
2 ip 2
当然哪,这些文件的内容都是ifconfig自动生成的,可用不着你来手工的编辑!
问题:如何在重新启动机器后保留这些设置?
答案:不论你使用BSD还是SysV(比如Redhat)风格的LINUX启动,都可以将这些设置
保存在/etc/rc.d/rc.local文件中。下面的是我的SysV风格启动例子(Redhat 3.03
和4.0):
我的 /etc/rc.d/rc.local: (为了显示一般的情况,作了适当修改)
#setting up IP alias interfaces
echo "Setting 172.16.3.1,172.16.3.10,172.16.3.100 IP Aliasing ..."
/sbin/ifconfig lo 127.0.0.1
/sbin/ifconfig eth0 up
/sbin/ifconfig eth0 172.16.3.1
/sbin/ifconfig eth0:0 172.16.3.10
/sbin/ifconfig eth0:1 172.16.3.100
#Setting up the routes
echo "Setting IP routes ..."
/sbin/route add -net 127.0.0.0
/sbin/route add -net 172.16.3.0 dev eth0
/sbin/route add -host 172.16.3.1 dev eth0
/sbin/route add -host 172.16.3.10 dev eth0:0
/sbin/route add -host 172.16.3.100 dev eth0:1
/sbin/route add default gw 172.16.3.200
#
问题:(使用sendmail)怎样设置,才能使这些IP别名也能接收电子邮件?
答案:创建一个文件,名字可以是/etc/mynames.cw。未必放在这个目录下,也未必取
在这个文件中,写入这些别名IP的域名。如果这些IP不拥有域名,可以直接写上这个
IP地址。
/etc/mynames.cw:
# /etc/mynames.cw - 包括了本机器所有的别名
# is a comment (# 是注释)
domain.one.net
domain.two.com
domain.three.org
4.5.6.7
在你的系统sendmail.cf文件中,有一个定义文件Fw的宏,加入如下行:
.
.
.
##############
# local info #
##############
.
.
# file containing names of hosts for which we receive email
Fw/etc/mynames.cw
.
.
##############
# local info #
##############
.
.
# file containing names of hosts for which we receive email
.w/etc/mynames.cw
.
(wait I setup it,and print the result here-yf)
你现在就设定好了。
希望这篇文章对一些人有用。
感谢对LINUX和IP别名作出巨大工作的人们。特别感谢Juan Jose Ciarlante 给问题
归类,感谢那些提出建议的人们!
如果你觉得这篇文档还有些用,或者有改进的建议,一定发给我一封信哦:
h.pillay@ieee.org。
好好的享用吧!IP别名mini-HowTo
作者:Harish Pillay (h.pillar@ieee.org)
翻译: rudey.bbs@bbs.cdit.edu.cn (1998/09/10)
摘要
Jan 13,1997
这是一个讲述如何用LINUX发布包运行IP别名的小书。也包括了如何设置使不同IP别名可
以收发电子邮件的步骤。
1 我的设置:
最新的核心(2.0.27-ftp.funet.fi:/pub/Linux/kernel/src/v2.0),从1.3.7x都支
持。
将IP别名功能编译成可装载模块。你可以使用“make config”来配置新的核心,将IP
转换功能编译成模块,请检查你的模块HOW-TO文档(假如有的话)或者看/usr/src/
linux/Documentation/modules.txt这个文件。
我已经将两个新的IP加到了原有的IP地址上。
一个D-LINK DE620袋式网卡(并不重要,任何LINUX支持的网卡都行)。
2 设置的步骤
首先载入IP别名的模块(如果你已将这个功能编译进核心,就可以跳过这一步);
/sbin/insmod /lib/modules/'uname -r' /ipv4/ip_alias.o
其次,设置你的回送地址、eth0和所有的IP别名的界面:
/sbin/ifconfig lo 127.0.0.1
/sbin/ifconfig eth0 up
/sbin/ifconfig eth0 172.16.3.1
/sbin/ifconfig eth0:0 172.16.3.10
/sbin/ifconfig eth0:1 172.16.3.100
172.16.3.1是我原有的IP地址,而.10和.100是这个地址的别名。其中的奥妙是
eth0:x,x=0,1,2,...,n。n就是不同的别名。而eth0是不需要别名的。
第三,设置路由。要设置回送地址的路由,网络的路由,从原始分配的那个IP开始的
不同别名的路由:
/sbin/route add -net 127.0.0.0
/sbin/route add -net 172.16.3.0 dev eth0
/sbin/route add -host 172.16.3.1 dev eth0
/sbin/route add -host 172.16.3.10 dev eth0:0
/sbin/route add -host 172.16.3.100 dev eth0:1
/sbin/route add default gw 172.16.3.200
在上述的IP举例中,我使用了内部IP(RFC1918中定义)。请用你自己的IP做替换。
举例中仅仅有3个IP地址,在/usr/include/linux/net_alias.h中定义最大值为256。
即可以使一块网卡最多有256个IP别名。太多了吧:)!
下边是我用/sbin/ifconfig显示的结果:
lo Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:4094 errors:0 dropped:0 overruns:0 frame:0
TX packets:4094 errors:0 dropped:0 overruns:0 carrier:0 coll:0
eth0 Link encap:Ethernet HWaddr 00:00:21:77:27:02
inet addr:172.16.3.1 Bcast:172.16.3.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:412771 errors:0 dropped:0 overruns:0 frame:0
TX packets:234328 errors:0 dropped:0 overruns:0 carrier:0 coll:2239
Interrupt:3 Base address:0x320
eth0:0 Link encap:Ethernet HWaddr 00:00:21:77:27:02
inet addr:172.16.3.1 Bcast:172.16.3.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 coll:2239
eth0:1 Link encap:Ethernet HWaddr 00:00:21:77:27:02
inet addr:172.16.3.1 Bcast:172.16.3.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 coll:2239
在/proc/net/alias下:
device family address
eth0:0 2 172.16.3.10
eth0:1 2 172.16.3.100
在/proc/net/alias_types下:
type name n_attach
2 ip 2
当然哪,这些文件的内容都是ifconfig自动生成的,可用不着你来手工的编辑!
问题:如何在重新启动机器后保留这些设置?
答案:不论你使用BSD还是SysV(比如Redhat)风格的LINUX启动,都可以将这些设置
保存在/etc/rc.d/rc.local文件中。下面的是我的SysV风格启动例子(Redhat 3.03
和4.0):
我的 /etc/rc.d/rc.local: (为了显示一般的情况,作了适当修改)
#setting up IP alias interfaces
echo "Setting 172.16.3.1,172.16.3.10,172.16.3.100 IP Aliasing ..."
/sbin/ifconfig lo 127.0.0.1
/sbin/ifconfig eth0 up
/sbin/ifconfig eth0 172.16.3.1
/sbin/ifconfig eth0:0 172.16.3.10
/sbin/ifconfig eth0:1 172.16.3.100
#Setting up the routes
echo "Setting IP routes ..."
/sbin/route add -net 127.0.0.0
/sbin/route add -net 172.16.3.0 dev eth0
/sbin/route add -host 172.16.3.1 dev eth0
/sbin/route add -host 172.16.3.10 dev eth0:0
/sbin/route add -host 172.16.3.100 dev eth0:1
/sbin/route add default gw 172.16.3.200
#
问题:(使用sendmail)怎样设置,才能使这些IP别名也能接收电子邮件?
答案:创建一个文件,名字可以是/etc/mynames.cw。未必放在这个目录下,也未必取
在这个文件中,写入这些别名IP的域名。如果这些IP不拥有域名,可以直接写上这个
IP地址。
/etc/mynames.cw:
# /etc/mynames.cw - 包括了本机器所有的别名
# is a comment (# 是注释)
domain.one.net
domain.two.com
domain.three.org
4.5.6.7
在你的系统sendmail.cf文件中,有一个定义文件Fw的宏,加入如下行:
.
.
.
##############
# local info #
##############
.
.
# file containing names of hosts for which we receive email
Fw/etc/mynames.cw
.
.
##############
# local info #
##############
.
.
# file containing names of hosts for which we receive email
.w/etc/mynames.cw
.
(wait I setup it,and print the result here-yf)
你现在就设定好了。
希望这篇文章对一些人有用。
感谢对LINUX和IP别名作出巨大工作的人们。特别感谢Juan Jose Ciarlante 给问题
归类,感谢那些提出建议的人们!
如果你觉得这篇文档还有些用,或者有改进的建议,一定发给我一封信哦:
h.pillay@ieee.org。
好好的享用吧!
--
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.115.128.54]
BBS水木清华站∶精华区