- 配置路由表
在同一个局域网上的计算机是直接连通的,但是不同的网络上的计算机并没有直接相连,只能通过一台特殊的专用计算机-路由器来完成连通。路由器连接有多个网络界面,每一个网络界面连接到一个相应的网络上,有一个相应的ip地址。而网络内部的计算机要向外连接,必须通过路由器进行转接,因此计算机必须知道路由器的ip地址。 缺省网关就是一个网络中的最基本的路由器,负责几乎所有的向外连接任务。假设缺省网关的地址为 192.168.1.254,则设置缺省网关的命令为:
# route add default 192.168.1.254 |
更复杂的情况下,网络中可以有多个路由器,每个路由器负责到一些网络的转发任务,因此应该在计算机中配置这个网络上所有路由器及这些路由器负责的网络的路由数据。可以使用route命令增加到各个网络的静态路由数据,其中-net参数是一个可选参数,否则route从所给予的ip地址中判断它是网络还是计算机,同样可以指定 -host参数为一个远程计算机指定路由。
# route add -net 192.168.10.0/24 192.168.1.253 # route add -net 192.168.20.0 192.168.1.253 |
这个语句将在路由表中增加到网络192.168.2.0和192.168.3.0的路由,其中ip地址后面的24用于指示网络掩码,它代表二进制方式的网络掩码前面非0位的长度,24个非0位的掩码等价于255.255.255.0。如果没有指定网络掩码,route就使用该ip对应的缺省网络掩码。 设置完路由表之后,可以使用netstat -r命令来查看当前的路由表的内容。
# netstat -r routing tables internet: destination gateway flags refs use netif expire default 192.168.1.254 ugsc 1 941 xl0 127.0.0.1 127.0.0.1 uh 1 644 lo0 192.168.1 link#1 uc 0 0 xl0 192.168.1.254 0:e0:1e:ce:85:a9 uhlw 2 0 xl0 192.168.1.64 0:90:27:4e:f6:67 uhlw 1 6 lo0 192.168.1.253 link#1 uhlw 2 0 xl0 192.168.10 192.168.1.253 ugsc 0 0 xl0 192.168.20 192.168.1.253 ugsc 0 0 xl0 |
除了显示到达其他网络的路由器之外,路由表中,还能显示出到达本地网段计算机的方式,例如link#1表示通过第一个网络界面,也能显示直接连接的其他主机的mac地址。
- 保存配置
上面的命令都是立即生效的命令,但是并没有将信息写入配置文件中,因此要想让系统重起之后配置仍然有效,就必须更改配置文件/etc/rc.conf。这里可以设置主机名,各个网络界面的属性,以及各个路由设置等。
hostname="wb.example.com.cn" network_interfaces="xl0 ppp0 lo0" ifconfig_xl0="inet 192.168.1.64 netmask 255.255.255.0" ifconfig_ppp0="inet 10.10.1.42 10.10.1.29" ifconfig_lo0="inet 127.0.0.1" defaultrouter=”192.168.1.254” static_routes=”static_route1 static_route2” static_route1=”-net 192.168.10.0/24 192.168.1.253” static_route2=”-net 192.168.20.0/24 192.168.1.253” |
其中network_interfaces定义了多个网络界面的名字,此后相对应的ifconfig_xl0等项的值是相应的 ifconfig的参数。同样static_routes参数也使用相同方式,来定义多个静态路由。
- 配置名字解析
在inetnet发展的早期,仅仅使用主机名配置文件来作主机名/ip之间的映射,这对于互连的计算机较少时十分有效,而随着相连的计算机的增多,hosts文件会越来越大,如果用当前internet上的计算机数量去衡量的话,使用hosts文件根本不可能。
# cat /etc/hosts 127.0.0.1 localhost 192.168.1.64 wb.example.com.cn wb 192.168.1.254 gateway 192.168.1.253 gateway2 192.168.1.252 gateway3 202.102.245.49 online.ha.cn |
因此人们发展了一种分级的方式管理名字与ip地址对应关系,称为域名解析系统。在这个系统中采用一种分级结构,每个组织负责自己的域及通过这个域内的名字服务器,对域内的计算机名字和ip地址的对应关系进行维护,每个域内还可以划分为几个不同的子域,子域由子域内的名字服务器负责解析,这样就降低了维护任务的复杂程度。通过标准协议dns,internet上所有的名字服务器可以相互交换数据,这样每台计算机都能通过查询名字服务器来查询internet上所有的计算机名字。 要使用域名解析系统dns,当用作普通的dns客户时,只需配置/etc/resolv.conf文件,指出所使用的名字服务器。
# cat /etc/resolv.conf domain example.com.cn nameserver 192.168.1.250 nameserver 192.168.2.210 |
这个配置文件指出本机使用的域为example.com.cn,这样如果查名字www,将会首先使用 example.com.cn作为全名。这里定义了两个名字服务器,第一个为192.168.1.250,第二个为备用名字服务器192.168.2.210。 注意,因为此时还不能通过dns查询名字,因此这里要使用ip地址而非主机名来指定名字服务器。 由于可以同时使用/etc/hosts主机文件和/etc/resolv.conf中配置的dns服务器都能进行计算机名字与ip 地址之间的转换,就可以规定查找的顺序,在/etc/host.conf文件中规定了进行名字转换时查找的顺序。
bind hosts |
系统缺省设置的顺序如上,第一行为bind,(berkeley internet name domain)这是dns域名系统的标准实现,第二行为hosts,因此这表示先查找dns服务器,然后再查找本机中的文件hosts。由于从dns 服务器上查找名字可以得到域名的全部信息,因此如果本机具备dns名字的情况下,应该设置为查找dns服务器优先。 虽然一般dns名字解析速度并不会造成太大的影响,但如果本地的dns反应较慢或者这台freebsd计算机的名字没有登记到dns服务器上,那么服务器试图查找本机名字的行动就影响网络应用程序的连接速度,造成很多依赖于主机名的应用程序启动非常缓慢,为了加速计算机名字解析速度,可以更改这个文件设置为先查找本机文件优先。
发表评论