使用debian配置網關服務器及內網連入IPV6

本文遵從自由軟件基金會發布的GNU自由文檔許可證(GNU Free Document License), 任何組織和個人都有在此條款下的複製,轉載,修改的權限。


原文網址:http://mail.ustc.edu.cn/~lixuebai/GNU/GatewayServer.html

首先要求電腦有兩塊網卡,一個連接到外網,一個連接到switch,而switch與內網其他電腦相連。

安裝linux操作系統,這裏選擇了debian stable版本(目前是sarge版)只需要安裝基本部分,不需要安裝x(比如xorg)和wm(比如fvwm)以及desktop environment(比如gnome,kde)

選擇eth0作爲主網卡(若eth0不能連接,則對調兩個網線,或着把eth1作爲對外網卡)

修改ip,不用

iface eth0 inet dhcp

並增加eth1的設置

vi /etc/network/interfaces

比如我這裏是

auto eth0
iface eth0 inet static
        address 202.38.68.148
        netmask 255.255.255.128
        network 202.38.68.0
        broadcast 202.38.68.255
        gateway 202.38.68.254
        dns-nameservers 202.38.64.1
auto eth1
iface eth1 inet static
        address 192.168.2.1
        netmask 255.255.255.0
        network 192.168.2.0
        broadcast 192.168.2.255

aptitude安裝resolvconf使得dns-nameservers有效。

aptitude安裝emacs,vim做編輯器,安裝lftp做ftp客戶工具,安裝ssh來遠程管理。

重啓網絡

/etc/init.d/network restart

配置iptables,在shell下執行

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

現在內網(設置好192.168.2.*等)就能夠上網了(ipv4)。當然這樣做比較麻煩,請看下面的dhcp自動分配ip服務的設置。

配置dhcp服務

如果子網內電腦很多,一個一個手動分配ip就給管理員帶來很大的麻煩的,dhcp服務可以給內網的電腦自動分配ip,可以大大減輕管理員的工作。

aptitude安裝dhcp這裏的dhcp是版本2,當然也可以選擇版本3,版本3叫做dhcp3-server不過dhcp3軟件包使用/etc/dhcp3/dhcpd.conf作爲其配置文件,而不像dhcp2使用/etc/dhcpd.conf

寫配置文件/etc/dhcpd.conf

subnet 192.168.2.0 netmask 255.255.255.0 {
  option routers 192.168.2.1;
  option subnet-mask 255.255.255.0;

  option domain-name "domain.org";
  option domain-name-servers 202.38.64.1;
  option broadcast-address 192.168.2.255;

  option time-offset -18000;
  range 192.168.2.11 192.168.2.250;
  default-lease-time 216000;
  max-lease-time 432000;
}

設置提供dhcp的網卡修改/etc/default/dhcp

INTERFACES="eth1"

重新啓動dhcp服務

/etc/init.d/dhcp restart

下面配置ipv6

去網絡中心板申請外網ip的ipv6,以及分配在此之下的一段給內網。

(根據jameszhang提供的方法)

aptitude安裝iproute

如果是2.4的內核需要加載ipv6模塊,若是2.6內核就不需要。

modprobe ipv6

把申請的ipv6設置上,並設置缺省路由。

ip addr add 2001:da8:d800:68:202:38:68:148/64 dev eth0
ip addr add 2001:da8:d800:6800::1/64 dev eth1
ip route add 2000::/3 via 2001:da8:d800:68::1 dev eth0

查看

/sbin/ifconfig

能夠看到ipv6了。

把原來的ipv6可以刪掉了

ip addr del ?????????? dev eth0

在網關上測試

ping6 bbs6.ustc.edu.cn

可以了。

給內網自動分配ipv6,需要安裝radvd

aptitude安裝radvd

cp /usr/share/doc/radvd/examples/simple-radvd.conf /etc/radvd.conf

編輯

emacs -nw /etc/radvd.conf

修改爲如下內容

interface eth1
{
   AdvSendAdvert on;
   MinRtrAdvInterval 30;
   MaxRtrAdvInterval 100;
   prefix 2001:da8:d800:6800::/64
   {
        AdvOnLink on;
        AdvAutonomous on;
        AdvRouterAddr on;
   };
};

重啓radvd

/etc/init.d/radvd restart

現在在內網測試

ping6 bbs6.ustc.edu.cn

現在測試看ipv6的在線影視

mplayer mms://tv6.ustc.edu.cn/tv7
這樣就作好了。

使內網能夠上科大video服務器的ftp

modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

以上命令開機自動啓動

在/etc/init.d/建立一個腳本比如叫做startnetgate.sh

#!/bin/sh
# lixuebai

PATH=/sbin:/bin:/usr/sbin:/usr/bin

echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

ip addr add 2001:da8:d800:68:202:38:68:148/64 dev eth0
ip addr add 2001:da8:d800:6800::1/64 dev eth1
ip route add 2000::0/3 via 2001:da8:d800:68::1 dev eth0
/etc/init.d/radvd restart

echo "OK"

若是2.4內核,則需要在腳本中的ip命令之前加入

modprobe ipv6

修改這個腳本的權限

chmod -v 755 startnetgate.sh

設定爲啓動服務

/usr/sbin/update-rc.d startnetgate.sh defaults

這樣就會開機自動啓動了。

這裏順便多說一下/usr/sbin/update-rc.d的用法其實只要

emacs -nw /usr/sbin/update-rc.d

就能看到用法了。

update-rc.d會自動在/etc/init.d/找文件,所以如前所示,startnetgate.sh不需要寫路徑.

一些常用的方法:

設定爲啓動服務
#/usr/sbin/update-rc.d startnetgate.sh defaults

將其刪除
#/usr/sbin/update-rc.d -f startnetgate.sh remove

根據運行級別設定,如
#/usr/sbin/update-rc.d startnetgate.sh start 20 1 2 3 . stop 20 4 5 .

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章