分享
 
 
 

如何在Linux机器上设定IP别名

王朝system·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

指令:

* 首先载入 IP Alias 模组(如果你将它编译进核心可跳过此步骤):

/sbin/insmod /lib/modules/`uname -r`/ipv4/ip_alias.o

* 再来,建立回绕(loopback)装置,以及 eth0 界面上以主 IP 号码为开头的所有 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 在每一不同的 IP 号码上.主 IP 号码不需要这个.

* 第三步是建立递送路径.首先,递送到回绕装置,然後是区域网路,最後是不同的

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

就这样了.

在上面的例子中,为了说明我用的是 RFC 1918 所定义的私用 IP 号码.用你正式或

私有的 IP 号码来取代它.

上面的例子只展示了三个 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:5088 errors:0 dropped:0 overruns:0

TX packets:5088 errors:0 dropped:0 overruns:0

eth0 Link encap:10Mbps Ethernet HWaddr 00:8E:B8:83:19:20

inet addr:172.16.3.1 Bcast:172.16.3.255 Mask:255.255.255.0

UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1

RX packets:334036 errors:0 dropped:0 overruns:0

TX packets:11605 errors:0 dropped:0 overruns:0

Interrupt:7 Base address:0x378

eth0:0 Link encap:10Mbps Ethernet HWaddr 00:8E:B8:83:19:20

inet addr:172.16.3.10 Bcast:172.16.3.255 Mask:255.255.255.0

UP BROADCAST RUNNING MTU:1500 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0

TX packets:0 errors:0 dropped:0 overruns:0

eth0:1 Link encap:10Mbps Ethernet HWaddr 00:8E:B8:83:19:20

inet addr:172.16.3.100 Bcast:172.16.3.255 Mask:255.255.255.0

UP BROADCAST RUNNING MTU:1500 Metric:1

RX packets:1 errors:0 dropped:0 overruns:0

TX packets:0 errors:0 dropped:0 overruns:0

而 /proc/net/aliases 是

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

当然,/proc/net 的内容是由 ifconfig 指令产生而非用手写的!

问: 如何在重新启动机器後保持设定?

答: 不论你是用 BSD 形式或是 SysV 形式(例如 Red Hat)的 init 启动,你都可以把它

放在 /etc/rc.d/rc.local 中.下面是我在我的 SysV init 系统(Red Hat 3.0.3

及 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 Aliases ..."

/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 eth0

/sbin/route add -host 172.16.3.10 eth0:0

/sbin/route add -host 172.16.3.100 eth0:1

/sbin/route add default gw 172.16.3.200

#

问: 我如何在具 IP 别名的机器上在不同的 IP 别名号码上接收电子邮件(在一部用

sendmail 的机器上)?

答: * 建立(如果还没有的话)一个档案,例如叫 /etc/mynames.cw.不需要真的是这个

名字,也不一定要放在 /etc 目录下.

* 在那个档案中,放上别名 IP 号码的完整领域名称.如果别名的 IP 没有领域名

称,你可以用这个 IP 本身.

/etc/mynames.cw:

----------------

# /etc/mynames.cw - include all aliases for your machine here; # 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

.

.

.

* 这样应该就可以了.以测试模式执行 sendmail 以测试新的设定:

ganymede$ /usr/lib/sendmail -bt

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)

Enter < ruleset> < address>

> 0 me@4.5.6.7

rewrite: ruleset 0 input: me @ 4 . 5 . 6 . 7

rewrite: ruleset 98 input: me @ 4 . 5 . 6 . 7

rewrite: ruleset 98 returns: me @ 4 . 5 . 6 . 7

rewrite: ruleset 97 input: me @ 4 . 5 . 6 . 7

rewrite: ruleset 3 input: me @ 4 . 5 . 6 . 7

rewrite: ruleset 96 input: me < @ 4 . 5 . 6 . 7 >

rewrite: ruleset 96 returns: me < @ 4 . 5 . 6 . 7 . >

rewrite: ruleset 3 returns: me < @ 4 . 5 . 6 . 7 . >

rewrite: ruleset 0 input: me < @ 4 . 5 . 6 . 7 . >

rewrite: ruleset 98 input: me < @ 4 . 5 . 6 . 7 . >

rewrite: ruleset 98 returns: me < @ 4 . 5 . 6 . 7 . >

rewrite: ruleset 0 returns: $# local $: me

rewrite: ruleset 97 returns: $# local $: me

rewrite: ruleset 0 returns: $# local $: me

> 0 me@4.5.6.8

rewrite: ruleset 0 input: me @ 4 . 5 . 6 . 8

rewrite: ruleset 98 input: me @ 4 . 5 . 6 . 8

rewrite: ruleset 98 returns: me @ 4 . 5 . 6 . 8

rewrite: ruleset 97 input: me @ 4 . 5 . 6 . 8

rewrite: ruleset 3 input: me @ 4 . 5 . 6 . 8

rewrite: ruleset 96 input: me < @ 4 . 5 . 6 . 8 >

rewrite: ruleset 96 returns: me < @ 4 . 5 . 6 . 8 >

rewrite: ruleset 3 returns: me < @ 4 . 5 . 6 . 8 >

rewrite: ruleset 0 input: me < @ 4 . 5 . 6 . 8 >

rewrite: ruleset 98 input: me < @ 4 . 5 . 6 . 8 >

rewrite: ruleset 98 returns: me < @ 4 . 5 . 6 . 8 >

rewrite: ruleset 95 input: < > me < @ 4 . 5 . 6 . 8 >

rewrite: ruleset 95 returns: me < @ 4 . 5 . 6 . 8 >

rewrite: ruleset 0 returns: $# smtp $@ 4 . 5 . 6 . 8 $: me < @ 4 . 5 . 6 . 8 >

rewrite: ruleset 97 returns: $# smtp $@ 4 . 5 . 6 . 8 $: me < @ 4 . 5 . 6 . 8 >

rewrite: ruleset 0 returns: $# smtp $@ 4 . 5 . 6 . 8 $: me < @ 4 . 5 . 6 . 8 >

>

注意,当我测试 me@4.5.6.7 时,它将信件送到本地机器上,因为 me@4.5.6.8 会

被 smtp mailer 拒绝.这是正常的回应.

* 所有都设定完成了.

希望前面说的对某些人有用.

感谢那些在 Linux 及 IP 别名上做了伟大贡献的人们.还有特别感谢 Juan Jose

Ciarlante 澄清我的疑问.还有感谢那些为我找出打字错误及提供建议的人!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有