http://blog.chinaunix.net/uid-346158-id-2131136.html
linux下ip地址除了primary外,还有两种:
1. ip alias(子接口)
2. secondary ip(辅助ip)
都可在一块物理网卡上添加,alias由ifconfig添加,ifconfig查看时以子接口如eth0:1的形式显示;secondary ip由ip命令所支持.
添加子接口:
# ifconfig eth0:1 10.10.56.33/24 up
#添加到内存中并立即生效,ifconfig和ip addr sh可查看.也可到/etc/sysconfig/network-scripts目录下面创建一个对应的子接口配置文件:
cd /etc/sysconfig/network-scripts ;
cp ifcfg-eth0 ifcfg-eth0:0
;
编辑:ifcfg-eth0:0,
将里面的设备名称和ip地址等修改即可:
DEVICE=eth0:0
IPADDR=
10.10.56.33
Linux最多255个ip alias.
添加secondary ip:
# ip a add dev eth1 172.16.18.18/24 brd 172.16.18.255
# ip a sh dev eth1
......
inet 172.16.18.118/24 brd 172.16.18.255 scope global secondary eth1
#如果添加的是同网段的ip,那么显示的是secondary ip;如果不是同一网段的那就是primary. 不过对于物理网卡,对于我们来说,除了第一个配置的ip地址,之后添加的都可以算是secondary了.这里添加的ip ifconfig命令是看不到的.
就我本人所知, ip添加secondary ip只添加到内存,不知道是否可以以配置文件的方式实现.
-------------------------
对secondary ip address的理解
为端口设置一个IP地址,在端口设置状态下
ip address 本端口IP地址 子网掩码
另外,在同一端口中可以设置两个以上的不同网段的IP地址,这样可以实现连接在同一局域网上不同网段之间的通讯。一般由于一个网段对于用户来说不够用,可以采用这种办法。
在端口设置状态下
ip address 本端口IP地址 子网掩码 secondary
注意:如果要实现连在同一路由器端口的不同网段的通讯,必须在端口设置状态下
ip redirect
一般地,Cisco路由器不允许从同一端口进来的IP包又发回到原端口中,ip redirect表示允许在同一端进入路由器的IP包由原端口发送回去。
2、网络中含有0的IP地址如138.0.0.1或192.1.0.2,强烈建议尽量不要使用这样的IP地址,如要使用这的地址,在全局设置模式下必须设置
ip subnet-zero
-------------------------------
ip alias and secondary ip address different?
孤陋寡闻了,以前一直以为ip别名(ip aliase)和辅助ip地址(secondary ip address)是一码事情。或者说是不知道还有secondary
ip address一说。
今天偶然翻阅linux enterprise cluster时,提到了这样一句话:
引用
As of this
writing, the Linux kernel supports both IP aliases and secondary IP addresses,
though IP aliases are deprecated in favor of secondary IP
addresses.
那也就意味着secondary ip address和ip aliase是不同的概念,首先问Google,Google没有给我好的答案。只好自己摸索了,于是目前只能得到下面的一些概念:
ip
alias和secondary ip address是两种不同的实现方式,用来在Linux系统中给同一个物理网卡增加多个ip地址。
ip
alias是由ifconfig程序来创建和维护的,而secondary ip address则是有ip程序来创建和维护的。ip addr add
创建的scondary ip address不能在ifconfig -a中看到,反过来,ifconfig创建的ethX:Y却能在ip addr
show中看到。
ip alias大家比较熟悉,因此说说secondary ip
address如何创建
[root@mlsx autostart]# ifconfig
eth1 Link
encap:Ethernet HWaddr 00:13:77:00:7C:C6
inet addr:192.168.0.100
Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST
MTU:1500 Metric:1
RX packets:163438 errors:2515 dropped:0 overruns:0
frame:2515
TX packets:165217 errors:0 dropped:0 overruns:0
carrier:0
collisions:0 txqueuelen:1000
RX bytes:96792997 (92.3 MiB) TX
bytes:16356841 (15.5 MiB)
lo Link encap:Local Loopback
inet
addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX
packets:561 errors:0 dropped:0 overruns:0 frame:0
TX packets:561 errors:0
dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:119798
(116.9 KiB) TX bytes:119798 (116.9 KiB)
eth0被我用ifconfig eth0
down了。
[root@mlsx autostart]# ip addr sh
2: lo:
<LOOPBACK,UP,10000> mtu 16436 qdisc noqueue
link/loopback
00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
4:
eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast qlen
1000
link/ether 00:12:f0:1d:e8:c5 brd ff:ff:ff:ff:ff:ff
inet
192.168.1.101/24 brd 192.168.1.255 scope global eth0
6: eth1:
<BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen
1000
link/ether 00:13:77:00:7c:c6 brd ff:ff:ff:ff:ff:ff
inet
192.168.0.100/24 brd 192.168.0.255 scope global
eth1
down下去的eth0在这里还是能体现出来的。
[root@mlsx autostart]# ip addr add
192.168.0.102/24 dev eth1
[root@mlsx autostart]# ip addr sh eth1
6: eth1:
<BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen
1000
link/ether 00:13:77:00:7c:c6 brd ff:ff:ff:ff:ff:ff
inet
192.168.0.100/24 brd 192.168.0.255 scope global eth1
inet 192.168.0.102/24
scope global secondary eth1
[root@mlsx autostart]# ping 192.168.0.102
PING
192.168.0.102 (192.168.0.102) 56(84) bytes of data.
64 bytes from
192.168.0.102: icmp_seq=1 ttl=64 time=0.049 ms
64 bytes from 192.168.0.102:
icmp_seq=2 ttl=64 time=0.043 ms
通过ip程序增加了一个secondar ip address,通过ip addr
show也能看到,而且能ping通,但是ifconfig中却看不到。
[root@mlsx autostart]# ifconfig
-a
eth1 Link encap:Ethernet HWaddr 00:13:77:00:7C:C6
inet
addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST
RUNNING MULTICAST MTU:1500 Metric:1
RX packets:163888 errors:2515 dropped:0
overruns:0 frame:2515
TX packets:165696 errors:0 dropped:0 overruns:0
carrier:0
collisions:0 txqueuelen:1000
RX bytes:96837439 (92.3 MiB) TX
bytes:16426734 (15.6 MiB)
lo Link encap:Local Loopback
inet
addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX
packets:565 errors:0 dropped:0 overruns:0 frame:0
TX packets:565 errors:0
dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:120134
(117.3 KiB) TX bytes:120134 (117.3 KiB)