码迷,mamicode.com
首页 > 其他好文 > 详细

DHCP+NAT+IP隧道

时间:2014-07-04 07:10:17      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:linux   dhcp   nat   iptables   ip隧道   

     作为实验室的后备网络管理员,在经历了n次被骂之后,终于完成了这个DHCP+NAT+IP隧道的实验。

     说一下实验室的情况,我们的实验室分为两个屋子,这两个屋子离得也比较远。每个屋子使用一个linux主机作为与外界网络连接的出口,这个linux主机的另一个作用是DHCP服务器。而两个屋子的linux主机需要完成的另一个功能就是将两个屋子的两个局域网连接起来,就像在同一个局域网络中一样。

     我的任务就是模拟这个环境,为维护实验室网络做一些前期的演练。

     1.先决条件

          两台Linux主机,每个主机都有两块物理网卡。

     2.DHCP服务器配置

1.首先安装dhcp服务器

    apt-get install isc-dhcp-server

2.我们打算将网卡eth1作为对内的网卡,eth0作为对外的网卡。

    修改/etc/default/isc-dhcp-server , 将最后一行的 INTERFACES=""
    修改为INTERFACES = "eth1" .

也就是说,当网络搭建好以后,用一根网线连接eth1和你的笔记本电脑,你
的笔记本电脑就会被分配一个IP地址。eth0用来连接外部网络.

 3.修改 /etc/dhcp/dhcpd.conf为:

    ddns-update-style none;

    option domain-name "dslab lzu.edu.cn";
    option domain-name-servers 202.201.0.131, 202.201.0.132;

    default-lease-time 600;
    max-lease-time 7200;

    log-facility local7;

    # 局域网地址可以根据自己的需要去配置
    subnet 10.0.1.0 netmask 255.255.255.0 {
          range dynamic-bootp 10.0.1.200 10.0.1.250;
            option broadcast-address 10.0.1.255;
              option routers 10.0.1.1;
    }

4.修改 /etc/network/interfaces 文件为:

    # The loopback network interface
    auto lo
    iface lo inet loopback

    # The primary network interface
    allow-hotplug eth0
    #iface eth0 inet dhcp
    iface eth0 inet static
    # 外网地址需要根据实际进行配置
    address 192.168.2.101
    netmask 255.255.255.0
    gateway 192.168.2.1
    broadcast 192.168.2.255

    allow-hotplug eth1
    #iface eth1 inet dhcp
    iface eth1 inet static
    address 10.0.1.1
    netmask 255.255.255.0
    network 10.0.1.0
    broadcast 10.0.1.255

5.重新启动计算机, 用网线将笔记本和eth1连接起来,就可以看到
连接成功。使用 ifconfig 命令在笔记本上查看自己的ip地址可以看
到ip地址为10.0.1.200(你的ip地址可能会不一样).

3.iptables NAT转发配置

1.首先修改文件 /etc/sysctl.conf,

    将其中的 "# net.ipv4.ip_forward=1" 这一行前面的 "#" 去掉

修改完之后,使用 sysctl -p 命令使这个修改生效

2.编写文件 nat_iptables.sh ,这个文件的主要作用是开机的时候,自动
启动数据转发,文件的内容如下:

    #!/bin/bash

    iptables -F
    iptables -t nat -A POSTROUTING -s 10.0.1.1/24 -j SNAT --to-source 192.168.2.101

最后一条命令配置将局域网内的数据包转向外网,第一个ip地址为内网地址,
第二个ip地址为外网地址。

3.修改 nat_iptables.sh的权限:

    chmod a+x nat_iptables.sh

4.将第2步中编写的 nat_iptables.sh 文件的绝对路径(注意是绝对路径,例如:
/home/dslab/nat_iptables.sh)写入文件 /etc/rc.local中,注意要写在exit 0
语句之前。

4.ip隧道配置

预备条件
    计算机A,两个网卡,对内ip为10.0.1.1,对外ip为192.168.1.162
    计算机B,两个网卡,对内ip为10.0.2.1,对外ip为192.168.1.195

1.在计算机A上编写文件 rc.ipip,输入内容如下:

    #!/bin/sh
    modprobe ipip
    modprobe ip_gre
    ip tun add tnl0 mode ipip remote 192.168.1.195 local 192.168.1.162
    ip link set tnl0 up

    ip ad ad 10.0.1.128 peer 10.0.2.128 dev tnl0
    ip ro ad 10.0.2.0/24 dev tnl0

2.在计算机B上编写文件 rc.ipip,输入以下内容:

    #!/bin/sh
    modprobe ipip
    modprobe ip_gre
    ip tun add tnl0 mode ipip remote 192.168.1.162 local 192.168.1.195
    ip link set tnl0 up

    ip ad ad 10.0.2.128 peer 10.0.1.128 dev tnl0
    ip ro ad 10.0.1.0/24 dev tnl0

3.分别在计算机A和B上执行命令:

    chmod a+x rc.ipip

给这个脚本添加执行权限.

4.分别修改计算机A和B上的 /etc/rc.local 文件,将 rc.ipip 文件的绝对路径
添加到 exit 0 之前就可以了。



DHCP+NAT+IP隧道,布布扣,bubuko.com

DHCP+NAT+IP隧道

标签:linux   dhcp   nat   iptables   ip隧道   

原文地址:http://blog.csdn.net/xiaocainiaoshangxiao/article/details/36665861

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!