在 Oracle Solaris : 中,有多个接口的系统被视为多宿主主机。多宿主主机不转发 IP 包。但是,您可以将多宿主主机配置为运行路由协议。通常,可以将以下类型的系统配置为多宿主主机:
可以将 NFS 服务器(尤其是用作大型数据中心的那些服务器)连接到多个网络,以便在大量用户之间共享文件。这些服务器无需维护路由表。
数据库服务器可以具有多个网络接口,从而可为大量用户提供资源,就像 NFS 服务器那样。
防火墙网关是连接公司网络和公共网络(如 Internet)的系统。管理员将设置防火墙作为一项安全措施。当配置为防火墙时,主机不在连接到主机接口的网络之间传递包。但是,主机仍可以为授权用户提供标准 TCP/IP 服务,如 ssh。
当多宿主主机在其任一接口上具有不同类型的防火墙时,请小心谨慎以免无意中中断主机的包。对于有状态防火墙,尤其容易出现此问题。针对此问题的一种解决方案是配置无状态防火墙。有关防火墙的更多信息,请参阅《系统管理指南:安全性服务》中的“防火墙系统”或第三方防火墙的相应文档。
在预期的多宿主主机上,承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
配置并检测在 Oracle Solaris : 安装过程中没有配置的其他每个网络接口。
请参阅如何在安装系统后配置物理接口。
# routeadm |
不带选项的 routeadm 命令可报告路由选择守护进程的状态。routeadm 的以下输出说明已启用 IPv4 转发:
Configuration Current Current Option Configuration System State --------------------------------------------------------------- IPv4 routing disabled disabled IPv6 routing disabled disabled IPv4 forwarding enabled disabled IPv6 forwarding disabled disabled Routing services "route:default ripng:default" |
如果在系统上启用了包转发,请禁用它。
使用以下命令之一:
对于 routeadm 命令,请键入以下内容:
# routeadm -d ipv4-forwarding -u |
要使用 SMF,请键入以下内容:
# svcadm disable ipv4-forwarding |
(可选)为多宿主主机打开动态路由。
使用以下命令之一打开 in.routed 守护进程:
对于 routeadm 命令,请键入以下内容:
# routeadm -e ipv4-routing -u |
要使用 SMF,请键入以下内容:
# svcadm enable route:default |
以下示例说明如何配置图 5–3 所示的多宿主主机。在该示例中,系统具有主机名 hostc。此主机具有两个接口,这两个接口都已连接到网络 192.168.5.0。
要开始操作,请显示系统接口的状态。
# dladm show-link hme0 type: legacy mtu: 1500 device: hme0 qfe0 type: legacy mtu: 1500 device: qfe0 qfe1 type: legacy mtu: 1500 device: qfe1 qfe2 type: legacy mtu: 1500 device: qfe2 qfe3 type: legacy mtu: 1500 device: qfe3 # ifconfig -a lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 hme0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 192.168.5.82 netmask ff000000 broadcast 192.255.255.255 ether 8:0:20:c1:1b:c6 |
dladm show-link 命令报告,hostc 具有两个接口,共有五个可能的链路。但是,仅检测到 hme0。要将 hostc 配置为多宿主主机,必须在 qfe NIC 上添加 qfe0 或其他链路。首先,请将 qfe0 接口物理连接到 192.168.5.0 网络。然后,检测 qfe0 接口,并使其在重新引导后继续存在。
# ifconfig qf0 plumb up # ifconfig qfe0 192.168.5.85 # ifconfig -a lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 hme0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 192.168.5.82 netmask ff0000 broadcast 192.255.255.255 ether 8:0:20:c1:1b:c6 qfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 192.168.5.85 netmask ff000000 broadcast 192.255.255.255 ether 8:0:20:e1:3b:c4 # vi /etc/hostname.qfe0 192.168.5.85 255.0.0.0 |
使用重新配置命令,重新引导系统:
# reboot -- -r |
接下来,将 qfe0 接口添加到 hosts 数据库:
# vi /etc/inet/hosts 127.0.0.1 localhost 192.168.5.82 host3 #primary network interface for host3 192.168.5.85 host3-2 #second interface |
然后,在 host3 上检查包转发和路由的状态:
# routeadm Configuration Current Current Option Configuration System State --------------------------------------------------------------- IPv4 routing enabled enabled IPv6 routing disabled disabled IPv4 forwarding enabled enabled IPv6 forwarding disabled disabled Routing services "route:default ripng:default" |
routeadm 命令报告,当前打开了通过 in.routed 守护进程的动态路由和包转发。但是,您将需要关闭包转发:
# svcadm disable ipv4-forwarding |
也可以使用 routeadm 命令(如如何创建多宿主主机所示)关闭包转发。禁用包转发后,host3 将成为多宿主主机。