使用debian配置网关服务器及内网连入IPV6

http://mail.ustc.edu.cn/~lixuebai/GNU/GatewayServer.html

copyright(c) 李雪白 2007年

本文遵从自由软件基金会发布的GNU自由文档许可证(GNU Free Document License), 任何组织和个人都有在此条款下的复制,转载,修改的权限。


首先要求电脑有两块网卡,一个连接到外网,一个连接到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 .

相关推荐