Chinaunix首页 | 论坛 | 博客
  • 博客访问: 299620
  • 博文数量: 42
  • 博客积分: 2550
  • 博客等级: 少校
  • 技术积分: 475
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-30 15:23
文章分类

全部博文(42)

文章存档

2012年(2)

2010年(2)

2009年(13)

2008年(19)

2007年(6)

我的朋友

分类: BSD

2008-02-21 00:15:14

例如网卡lnc0原IP地址为192.168.0.3,现在为它绑定另一个IP:


# ifconfig lnc0 192.168.0.4 netmask 255.255.255.255 alias


解释:

如果别名IP地址和网卡原IP地址在同一个子网上,就需要设置掩码为255.255.255.255
如果位于不同的子网,就直接使用相应子网的正常网络掩码

从TCPIP的角度来看,这样做意味着什么呢?
网络掩码的所有位都设置成1,就会保证ICPIP栈这样来看待包:
只要包的目标地址匹配所有位,就把该包看成本地子网上的包;它创建了只有一个地址的“子网”。
所有发送给该地址的包以及该地址接受的包都会发送给路由器,而不会发送到LAN上。
如果多个别名使用了同一个网络掩码,这些别名的广播地址也应该相同,而这样却导致了TCPIP栈的混乱。
使用全1的网络掩码,才能骗过ifconfig,让该命令允许单个接口卡上有多个IP地址。

以上这样做可以立即生效使用,但只要关机重启所做的设置就没有了,如要使设置永久有效就要在 /etc/rc.conf 中设置别名,应该使用 ifconfig_xxx#_alias# 关键字,该关键字的使用形式类似于 ifconfig_xxx#,如:


ifconfig_lnc0=inet 192.168.0.3 netmask 255.255.255.0
ifconfig_lnc0_alias0=inet 192.168.0.4 netmask 255.255.255.255
ifconfig_lnc0_alias1=inet 192.168.1.2 netmask 255.255.255.0
ifconfig_lnc0_alias2=inet 192.168.1.3 netmask 255.255.255.255

删除已绑定的IP可以用:
#ifconfig lnc0 (delete|remove|-alias) 192.168.0.4
阅读(1616) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~