一、網絡拓撲圖(附件所示)及網絡規劃: 交換機為Cisco2924,劃分為3個VLAN,VLAN10給辦公室用,VLAN13給教室用,VLAN12為服務器區域,將交換機的第24口置為trunk模式(VLAN中繼線)。 網關機采用Linux系統,安裝有兩塊衛星卡,通過兩個Modem撥號並建立VPN,給Office分配子網為192.168.9.0/27,教室為192.168.10.0/24,服務器區域為192.168.5.0/28。 另外要求office在9:00——22:00能夠上網,Classroom在18:30——22:00能夠上網,並且每個子網都可以訪問192.168.5.0/28內的web服務器。 教室不能訪問辦公室。 二、Cisco2924交換機上VLAN的配置: 在Cisco2924交換機上,將1—8號端口設置為VLAN10,將9—16號端口設置為VLAN13,將17—22號端口設置為VLAN13,將23號端口設置為VLAN1以便管理交換機。將24號端口設置為中繼線路。 VLAN的劃分采用一般方法即可,這裡需要強調的是中繼線路的配置: Cisco2924#conf t (進入全局配置模式) Cisco2924(config)#interface fastEthernet0/24 (進入24號端口配置模式) Cisco2924(config-if)#switchport mode trunk (將24號端口設置為中繼模式) Cisco2924(config-if)#switchport trunk encapsulation dotlq (將數據幀的封裝格式設置為802.1Q,缺省為Cisco專用的isl。) Cisco2924(config-if)#switchport trunk allowed vlan remove vlan-list (將不需要進行VLAN中繼的VLAN列表刪除,如果是全部,可以用all參數。) Cisco2924(config-if)#switchport trunk allowed vlan add vlan-list 1—13 (將1—13號VLAN加入到VLAN中繼 列表。) 三、Linux系統(Gataway)上的VLAN配置: 1、編譯內核,使內核支持802.1Q VLAN。 下載Linux2.4.20內核:http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.20.tar.bz2 cp linux-2.4.20.tar.bz2 /usr/src tar -jxvf linux-2.4.20.tar.bz2 ln -s linux-2.4.20 linux cd linux make menUConfig Networking options ---> 802.1Q VLAN Support (可以編譯為模塊或編譯進內核。) ……………… 編譯完成後啟用新內核。 2、VLAN的配置 下載VLAN配置工具軟件:http://www.candelatech.com/~greear/vlan/vlan.1.7m.tar.gz tar -zxvf vlan.1.7m.tar.gz cd vlan cp vconfig /usr/sbin 注: 如果需要支持基於MAC地址劃分的VLAN,需要給內核打補丁(vlan.1.7m.tar.gz中有),並將macvlan_config拷貝到/sbin下,用macvlan_config命令來進行VLAN配置。 (1)、創建VLAN10、VLAN12、VLAN13 vconfig add eth0 10 vconfig add eth0 12 vconfig add eth0 13 (2)、為接口設置IP地址: ip address add 192.168.5.3/28 dev eth0.12 (DMZ區域的網關) ip address add 192.168.10.1/24 dev eth0.13 (Classroom的網關) ip address add 192.168.9.1/27 dev eth0.10 (office的網關) ip link set dev eth0.12 up (啟用設備) ip link set dev eth0.10 up ip link set dev eth0.13 up 四、配置撥號 1、創建Office的撥號網絡: (1)創建撥號腳本文件:/etc/ppp/dialisp1 #!/bin/sh /usr/sbin/pppd /dev/ttyS0 57600 connect '/usr/sbin/chat -f /etc/ppp/chat95788' login user 95788 mru 1500 mtu 1500 crtscts file /etc/ppp/options.pstn_isp1 (2)創建撥號用的會話文件:/etc/ppp/chat95788 "" at OK atm3 OK atdt95788 CONNECT (3)、創建撥號用的會話文件:/etc/ppp/options.pstn_isp1 local nodefaultroute noauth login user 95788 mru 1500 mtu 1500 crtscts updetach 注:由於有多個撥號,不能獲取缺省路由,所以有nodefaultroute。 2、創建Classroom的撥號網絡: (1)創建撥號腳本文件:/etc/ppp/dialisp2 #!/bin/sh /usr/sbin/pppd /dev/ttyS1 57600 connect '/usr/sbin/chat -f /etc/ppp/chat9_95788' login user 95788 mru 1500 mtu 1500 crtscts file /etc/ppp/options.pstn_isp2 (2)創建撥號用的會話文件:/etc/ppp/chat9_95788 "" at OK atm3 OK atdt9,,95788 CONNECT 注:該電話需要撥9字頭 (3)、創建撥號用的會話文件:/etc/ppp/options.pstn_isp2 local noauth login user 95788 nodefaultroute mru 1500 mtu 1500 crtscts updetach 五、創建VPN(衛星)撥號腳本: 1、下載Linux下的VPN客戶端軟件:http://pion.xs4all.nl/~elf/pkg/pptp-linux-1.1.0.tar.gz 解壓後將pptp文件拷貝到/usr/sbin下。 2、下載衛星卡的Linux驅動程序: 3、創建office的pptp撥號腳本:/etc/ppp/dialpptp1 ip route add 210.12.254.4 dev ppp0 (x.x.x.x 為ISP提供的VPN服務器地址,該命令設置訪問x.x.x.x的路由。) sleep 2 /usr/sbin/pptp 210.12.254.4 file /etc/ppp/options.pptp1 (建立PPTP連接) /etc/ppp/options.pptp1為建立office的VPN連接的選項文件,其內容如下: local user username +chap remotename 210.12.254.4 noauth mru 1400 mtu 1400 updetach 注:由於在PPTP內還要對數據進行封裝,包頭會占去一定的字節,所以其mru 和 mtu值要比ppp的小。 4、創建Classroom的pptp撥號腳本:/etc/ppp/dialpptp2 ip route add x.x.x.x dev ppp2 (x.x.x.x 為ISP提供的VPN服務器地址,該命令設置訪問x.x.x.x的路由。) sleep 2 /usr/sbin/pptp x.x.x.x file /etc/ppp/options.pptp2 (建立PPTP連接) /etc/ppp/options.pptp2為建立office的VPN連接的選項文件,其內容如下: local user username +chap remotename x.x.x.x noauth mru 1400 mtu 1400 updetach 5、進行撥號測試: 注意撥號的先後順序。 六、設置路由策略: 1.設置路由表名稱: 編輯/etc/iproute2/rt_tables文件,在文件的尾部加入下面的兩行: 100 classroom (將編號為100 的路由策略命名為classroom) 110 office (將編號為110的路由策略命名為office) 2.設置路由: (設置教室的路由表) ip route add 192.168.5.0/28 dev eth0.12 table classroom (設置辦公室的路由表) ip route add 192.168.5.0/28 dev eth0.12 table office (設置路由策略) ip rule add from 192.168.9.0/27 table office (來自192.168.9.0/27 的數據包走 office 表) ip rule add from 192.168.10.0/24 table classroom (來自192.168.10.0/24 的數據包走 classroom 表) ip rule add to 192.168.9.0/27 table main (去往192.168.9.0/27 的數據包走 main 表) ip rule add to 192.168.10.0/27 table main (去往192.168.10.0/27 的數據包走 main 表) 3.設置缺省路由: 根據前面的描述,我們想要教室和辦公室分別使用不同的Modem上網,因此我們為classroom和office表設置不同的缺省路由。 ip route add default dev ppp1 table offcie ip route add default dev ppp3 table classroom (注:ppp1為基於ppp0的 VPN 連接,ppp3為基於ppp2的 VPN 連接。) 一切已OK,現在的事情就是進行NAT設置及腳本的整理了,至於說分時段上網,可以通過crond來進行控制。 將上面的幾個執行腳本整理如下:1、劃分VLAN的腳本,以及本地路由和路由策略需要開機就執行,將他放入/etc/rc.local內: /sbin/ip addr add 0.0.0.0 dev eth0 /sbin/ip link set dev eth0 up /sbin/vconfig add eth0 10 /sbin/vconfig add eth0 12 /sbin/vconfig add eth0 13 /sbin/ip route add 192.168.5.0/28 dev eth0.12 table classroom /sbin/ip route add 192.168.5.0/28 dev eth0.12 table office /sbin/ip rule add from 192.168.9.0/27 table office /sbin/ip rule add from 192.168.10.