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水木清华站∶精华区