linux下NAT内网连通IPv6的实现

网络拓扑图如下:



·        eth0为网关WAN口,接入广域网。

·        eth1为网关LAN口,接入局域网。

主要配置:

1. linux服务器接口的ipv6地址配置

# sysctl net.ipv6.conf.all.forwarding=1     //打开ipv6转发功能;

#ip addr add 2001:250:1006:5066::100/64 dev eth1  //配置lan口ipv6地址,即内网的网关,前64位与wan口的相同;

 #ip addr add 2001:250:1006:5066:216:d3ff:fe25:93ff/64 dev eth0     // 配置wan口ipv6地址,即从广域网获得的IPv6地址;

# ip -6 route add ::/0 via 2001:250:1006:5066::1 dev eth0 metric 256  //添加默认路由,即广域网所给的网关;

2.配置radvd为局域网自动配置网络信息

安装radvd  #yum install radvd 

配置/etc/radvd.conf       

interface eth1
{
        AdvSendAdvert on;
        MinRtrAdvInterval 30;
        MaxRtrAdvInterval 100;
        prefix 2001:250:1006:5066::/64
        {
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr on;
        };
};
打开radvd:  #radvd 

此时局域网内的计算机应该已经获得了 2001:250:1006:5066: 开头的IPv6地址。由于没有向ISP申请单独的IPv6地址块,这里不可能在外网上添加路由,同时,由于内网与外网同属一个子网(2001:250:1006:5066/64),也不可能想外网广播路由信息包,这样会造成路由混乱。Linux 提供了一个 proxy_ndp 选项,可以让外网的ndp请求穿过网关。

3.配置npd6

 #sysctl net.ipv6.conf.all.proxy_ndp=1  //开启proxy_ndp功能;

编译安装npd6

#svn checkout http://npd6.googlecode.com/svn/trunk/ npd6 

#cd npd6

#make

#make install

#mv /etc/npd6.conf.sample /etc/npd6.conf

#vi /etc/npd6.conf

主要修改2项:

prefix = 2001:250:1006:5066:
interface = eth0 #这里要写WAN网卡

启动npd6

#npd6

现在内网就已经可以与外网正常通信了。如果不能通信就在你的内网电脑上开个终端,一直ping着内网网关,即ping 2001:250:1006:5066::100 -t


你可能感兴趣的:(IPv6)