欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

FreeBSD下一块网卡绑定多个IP的方法

程序员文章站 2022-03-16 19:57:16
假设网卡lnc0原IP地址为192.168.0.2,现在为它绑定另一个IP: CODE # ifconfig lnc0 192.168.0.3 netmask 255.255.255.255 alias 解释: CODE 如果别名IP地址和网卡原IP地址... 08-09-08...

假设网卡lnc0原ip地址为192.168.0.2,现在为它绑定另一个ip:

code

# ifconfig lnc0 192.168.0.3 netmask 255.255.255.255 alias

解释:
code

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

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

要在/etc/rc.conf中设置别名,应该使用 ifconfig_xxx#_alias# 关键字,该关键字的使用形式类似于 ifconfig_xxx#:

code

ifconfig_lnc0="inet 192.168.0.2 netmask 255.255.255.0"
ifconfig_lnc0_alias0="inet 192.168.0.3 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"