router
操作系统版本:Slackware 12.2
1 硬件
配置4块网卡,分别映射到/dev/vmnet0、/dev/vmnet3、/dev/vmnet6、/dev/vmnet9。
2 安装基础系统
只安装a/目录下的软件包,全部安装。
配置lilo,安装在MBR中。
3 安装基本网络包
从光盘安装:
# mount /dev/cdrom /mnt # cd /mnt/slackware/n # installpkg iputils-s20070202-i486-2.tgz # installpkg net-tools-1.60-i486-2.tgz # installpkg network-scripts-12.2-noarch-4.tgz
4 配置网络
执行netconfig配置网络:
# netconfig
netconfig只能配置第一块网卡,其余3块编辑/etc/rc.d/rc.inet1.conf手工设置:
... # Config information for eth1: IPADDR[1]="172.16.0.1" NETMASK[1]="255.255.255.0" USE_DHCP[1]="" DHCP_HOSTNAME[1]="" # Config information for eth2: IPADDR[2]="172.17.0.1" NETMASK[2]="255.255.255.0" USE_DHCP[2]="" DHCP_HOSTNAME[2]="" # Config information for eth3: IPADDR[3]="172.18.0.1" NETMASK[3]="255.255.255.0" USE_DHCP[3]="" DHCP_HOSTNAME[3]="" ...
5 配置软件源
这里使用slackpkg工具来进行后续的软件包管理。
首先安装slackpkg和依赖的软件:
# mount /dev/cdrom /mnt # cd /mnt/slackware/ap # installpkg slackpkg-2.70.5-noarch-1.tgz # installpkg diffutils-2.8.1-i486-3.tgz # cd ../n # installpkg gnupg-1.4.9-i486-1.tgz # installpkg gnupg2-2.0.9-i486-1.tgz # installpkg wget-1.11.4-i486-1.tgz
编辑/etc/slackpkg/mirrors,添加本地镜像:
ftp://172.16.0.199/pub/slackware/slackware-12.2/
初始化:
# slackpkg update # slackpkg update gpg
修补当前系统:
# slackpkg upgrade-all
6 切换为generic内核
制作initrd:
# cd /boot # mkinitrd -c -k 2.6.27.7-smp -m ext3:scsi_transport_spi:mptbase:mptscsih:mptspi
编辑/etc/lilo.conf,添加启动项:
image = /boot/vmlinuz-generic-smp-2.6.27.7-smp initrd = /boot/initrd.gz root = /dev/sda1 label = Generic read-only
运行lilo,使之生效:
# /sbin/lilo
重启系统。
7 安装其他工具
# slackpkg install tcpdump # slackpkg install iptables
8 打开IP转发
# chmod +x /etc/rc.d/rc.ip_forward
9 配置路由
编辑/etc/rc.d/rc.local,增加路由:
route add -net 10.10.10.0 netmask 255.255.255.0 gw 172.16.0.10 route add -net 10.10.20.0 netmask 255.255.255.0 gw 172.16.0.10 route add -net 10.20.10.0 netmask 255.255.255.0 gw 172.17.0.10 route add -net 10.20.20.0 netmask 255.255.255.0 gw 172.17.0.10
注意:当home-gate和away-get启用NAT之后,需要删除这些路由。
10 配置nat
编辑/etc/rc.d/rc.local,打开nat,以便一些out-server能访问物理外网:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE