如何在AIX中配置虚拟IP地址
2008-09-06 08:21:50 来源:WEB开发网在操作系统AIX5L中推出了对虚拟IP地址( VIPA Virtual IP Adress)的支持, 本文将解 释什么是虚拟IP地址?并给出在AIX中配置虚拟IP地址的详细说明。
什么是虚拟IP地址 (VIPA)?
AIX中虚拟IP地址的概念与IBM OS/390中的很相似。将虚拟IP地址赋给AIX系统后, 可以使IP地址不再依赖指定的网络接口。发送方只需将包送到接收方服务器的虚拟 IP地址上即可(所有接收到的包还是通过真正的物理网络接口到达该服务器的)。
在虚拟IP地址使用以前,如果一个网络接口失效,所有与之相关的连接(connection) 就都会失去。使用虚拟IP地址,需要有AIX系统对虚拟接口和网络中路由器提供自动 重新路由的支持,只要包可以重新路由到其他的网络接口上,现存到虚拟IP网络接 口的连接就不会中断。因此虚拟IP地址可以屏蔽网卡,路由器等引起的故障,使连 接保留。网卡的故障不会影响到已有的连接,在AIX上使用虚拟IP地址进一步提高了 系统的可用性。同时有多块网卡共同来负担系统的负载,可以减少对单一网卡和子 网的集中使用,解决由此带来的瓶颈。
AIX中VIPA的功能对网络设备是透明的,无需专用的P系列或网络设备。在IBM P系列 服务器上实施虚拟IP地址,需要:
AIX5L
两个以上连接到企业网络,不在同一子网的 IP 接口 (不分物理类型)
在企业网中运行IP路由(routing protocols)协议
虚拟IP地址 应用环境实例
图1 中的 P系列服务器有一虚拟IP地址(vi0) 10.68.6.1,两块以太网网卡。不同网卡 (FDDI,token-ring, ATM, X.25等)只要IP网络接口最终连接到大的企业网,企业路由 器有路由可到达,就可一起使用。
图中的 "X"表示有可能出故障的位置。接口en1 和 en5 使用相同的虚拟IP地址 vi0 地址。如果物理网络接口,路由器或网络路径出现故障,网络协议可将此次连接 (connection)路由到此台服务器的另一物理网络接口。远端系统通过 telnet vi0 访 问P系列服务器,所有发到 vi0地址的包,是通过服务器的en1 或 en5接口收到的。 使用虚拟IP地址,远端系统和所涉及的路由器必须能将发送到虚拟IP地址(vi0)的包 路由到服务器的一个物理网络接口 (en1 或 en5)。
在SMIT菜单中,对虚拟IP地址的配置同其他IP网络接口一样。需要注意的是,一旦 配置了虚拟IP地址地址,此地址 将成为该服务器的首选源地址(source address)。 表现为以下两方面:
虚拟IP地址将成为该服务器所发出的TCP/IP包头的源地址。
如果远端系统和路由器没有到达虚拟IP地址的路由,连接就会丢失。
虚拟IP地址的配置
虚拟IP地址只在服务器上配置就可以了,在服务器上的已有的和随后配置的IP接口
都会自动加到虚拟IP地址的环境中。 ( 在AIX5L 5.1中不能指定所包含的IP接口,
AIX5.2中用户可指定 虚拟IP地址 使用哪几个IP接口)
1. 用 smitty chinetvi 来配置 VIPA 接口 ( AIX5L 5.1)
#smitty mkinetvi ( AIX5L 5.2)
2.ifconfig 命令
在 ifconfig 命令中增加了两个选项-- 'vipa_iflist'和 '-vipa_iflist'. ifconfig 命令可按以下
方法调用该选项:
为VIPA配置可用的物理接口
# ifconfig vi0 1.1.1.1 vipa_iflist en0,en1,tr0
从VIPA中删除物理接口
# ifconfig vi0 -vipa_iflist en1,tr0
"ifconfig -a" 和 "ifconfig <vi interface>" 用于显示vipa接口的配置
# ifconfig vi0
vi0: flags=84000041<UP,RUNNING,64BIT>
inet 1.1.1.1 netmask 0xffffff00
vipa_iflist : en0 en1 tr0
3.虚拟IP地址配置完成后,用命令查看接口表。输出结果显示了一个接口项vi0,但
在路由表中没有此项。由于没有包通过vi0,包的记数值(count) 始终为零。
#netstat -in | ||||||||
Name | Mtu | Network | Address | Ipkts | Ierrs | Opkts | Oerrs | Coll |
en1 | 1500 | link#3 | 2.7.1.1b.d8.1e | 989 | 0 | 996 | 0 | 0 |
en1 | 1500 | 10.68.1 | 10.68.1.1 | 989 | 0 | 996 | 0 | 0 |
en5 | 1500 | link#4 | 8.0.5a.42.e3.c | 813 | 0 | 1162 | 0 | 0 |
en5 | 1500 | 10.68.5 | 10.68.5.1 | 813 | 0 | 1162 | 0 | 0 |
vi0 | 0 | link#5 | 0 | 0 | 0 | 0 | 0 | |
vi0 | 0 | 10.68.6 | 10.68.6.1 | 0 | 0 | 0 | 0 | 0 |
lo0 | 16896 | link#1 | 261 | 0 | 267 | 0 | 0 | |
lo0 | 16896 | 127 | 127.0.0.1 | 261 | 0 | 267 | 0 | 0 |
lo0 | 16896 | ::1 | 261 | 0 | 267 | 0 | 0 |
接收的包都会被路由到为网络所知的虚拟IP地址地址 (10.68.6.1)上,发送的包则是
通过IP路由表所管理的一实际物理接口送出的。vi0是虚拟的 -- 和设备没有绑定,
用netstat -rn 命令在系统的路由表中没有记录项。说明用 SMIT 配置此接口时,
没有增加此接口路由。
# netstat -rn
Routing tables
destination Gateway Flags Refs Use If PMTU Exp Groups
Route Tree for Protocol Family 2 (internet):
default 10.68.1.1 UG 3 1055 en0 - -
10.68.1/24 10.68.1.1 U 0 665 en0 - -
10.68.5/24 10.68.5.1 U 0 1216 en5 - -
127/8 127.0.0.1 U 4 236 lo0 - -
10.68.6.1 127.0.0.1 UH 0 0 lo0 - -
相关技术说明
VIPA 与 alias
虚拟IP地址的概念与IP 别名( IP alias) 很类似,只是 IP 别名需绑定硬件接口。使用
虚拟IP地址的最大好处在于,虚拟设备可独立的激活或关闭(up or down) 而不会影
响真实的网络接口的状态。另外,虚拟接口地址可以改变,而IP 别名只能增加或
删除。
通过真实IP地址访问
在为服务器设置了虚拟IP地址后,原来真实的网络接口IP地址仍然有效,也可通过指
定它来访问主机。只是在用 ping 和 telnet 命令时,不能发挥虚拟IP地址不依赖物理
网卡进行通讯的作用。虚拟IP地址可以屏蔽物理网卡/连接的失效。使用真实IP地址
会再次引入应用对物理网卡的依赖。
如果远程系统使用虚拟IP地址访问VIPA主机或运行在VIPA系统上的应用是会话的发
起者,虚拟IP地址将是IP包中的源地址。如果远程系统使用服务器的真实IP地址发
起会话呼叫,响应包中的源地址则是真实IP地址。有一例外,对于绑定到指定IP接
口的应用,服务器发送包的源地址是绑定的IP地址。
VIPA 与路由协议
在上图中的AIX系统虽然没有运行路由协议,但在第一跳的网络路由器中配置了通过
真实物理IP接口到虚拟IP地址的路由,并向其他路由器发布。如果需要,可在AIX系
统中启动 gated 后台进程。为虚拟IP地址修改后的 gated 进程不会增加到vi0接口的
路由,或通过vi0 发布信息,gated 进程支持的OSPF协议会向相邻的路由器发布虚
拟接口信息。
设置多个VIPA地址
可为一台服务器设置多个虚拟地址,此时列在neststat -in输出结果中的第一个 vi 接
口项起作用。用户可以向使用其他物理IP接口一样,将应用绑定到其他的vi# 上。
如果路由器需要对到特定的虚拟IP地址的包进行优先传递,多个虚拟虚拟IP地址非常
有用。在一台主机上为多个公司运行WEB服务,需要使用多个虚拟IP地址,将不同
的应用绑定到特定的虚拟IP地址上,也要使用多虚拟IP地址:
vi0 200.1.1.1 www.companyA.com
vi1 200.1.1.2 www.companyB.com
vi2 200.1.1.3 www.companyC.com
更多精彩
赞助商链接