Solaris11.1如何设置缺省路由
solaris11有两种网络配置模式,分别是手动和自动。两种模式下配置缺省路由方式是一样的。本文示例为手动方式。
1. 查看网络配置模式:
root@sol11ai:~# netadm list
TYPE PROFILE STATE
ncp Automatic disabled
ncp DefaultFixed online
loc Automatic offline
loc NoNet offline
loc DefaultFixed online
当前生效的profile是DefaultFixed,即手动模式。
2. 检查当前路由设置:
root@sol11ai:~# route -p show
No persistent routes are defined
未设置永久路由root@sol11ai:~# netstat -rn
Routing Table: IPv4
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ---------- ---------
127.0.0.1 127.0.0.1 UH 2 142 lo0
192.168.114.0 192.168.114.10 U 4 1586858 net0Routing Table: IPv6
Destination/Mask Gateway Flags Ref Use If
--------------------------- --------------------------- ----- --- ------- -----
::1 ::1 UH 2 0 lo0
fe80::/10 fe80::20c:29ff:fe15:5d1d U 2 21 net0
当前路由表中没有缺省路由信息
3. 设置路由
为了了解route命令把永久路由放在了哪里,此处用truss跟踪一下route命令。
root@sol11ai:~# truss -o truss.out route -p add default 192.168.114.2
add net default: gateway 192.168.114.2
add persistent net default: gateway 192.168.114.2
-p参数用于设置永久路由
root@sol11ai:~# route -p show
persistent: route add default 192.168.114.2
root@sol11ai:~# netstat -rnRouting Table: IPv4
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ---------- ---------
default 192.168.114.2 UG 1 0
127.0.0.1 127.0.0.1 UH 2 142 lo0
192.168.114.0 192.168.114.10 U 5 1587003 net0Routing Table: IPv6
Destination/Mask Gateway Flags Ref Use If
--------------------------- --------------------------- ----- --- ------- -----
::1 ::1 UH 2 0 lo0
fe80::/10 fe80::20c:29ff:fe15:5d1d U 2 21 net0
以下是truss信息
......
so_socket(PF_ROUTE, SOCK_RAW, 0, 0, SOV_DEFAULT) = 3
......
shutdown(3, SHUT_RD, SOV_DEFAULT) = 0
write(3, " |\00301\0\0\0\002\b\0\0".., 124) = 124
以上信息表明route命令更改了路由表ioctl(1, TCGETA, 0xFCD35570) = 0
fstat64(1, 0xFCD354D0) = 0
write(1, " a d d n e t d e f a".., 39) = 39
open("/etc/inet/static_routes-DefaultFixed", O_RDWR|O_CREAT, 0644) = 4
fstat(4, 0xFCD36470) = 0
fcntl(4, F_SETLK, 0xFCD36500) = 0
fcntl(4, F_GETFD, 0x00000000) = 0
fstat64(4, 0xFCD35AD0) = 0
fstat64(4, 0xFCD359E0) = 0
ioctl(4, TCGETA, 0xFCD35A80) Err#25 ENOTTY
read(4, " # F i l e g e n e r".., 512) = 45
read(4, 0x08A7126C, 512) = 0
lseek(4, 0, SEEK_END) = 45
write(1, " a d d p e r s i s t e".., 50) = 50
write(4, " d e f a u l t 1 9 2 .".., 22) = 22
close(4)
route命令把永久路由信息写到了/etc/inet/static_routes-DefaultFixed文件中。
注意,以上是网络配置为手动的情况。当网络配置为自动时,永久路由信息是写到另外的文件中的。尽管solaris11不建议通过手工修改文件的方式设置永久路由信息,但实际上是可以这样做的。即直接修改/etc/inet/static_routes-DefaultFixed文件(手动模式)。
另外虽然solaris11不建议在/etc/defaultrouter中设置缺省路由,但实际上在这个文件中设置仍然有效。