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)


What Doesn't Kill Me Makes Me Stronger