标签:linux dhcp nat iptables ip隧道
作为实验室的后备网络管理员,在经历了n次被骂之后,终于完成了这个DHCP+NAT+IP隧道的实验。
说一下实验室的情况,我们的实验室分为两个屋子,这两个屋子离得也比较远。每个屋子使用一个linux主机作为与外界网络连接的出口,这个linux主机的另一个作用是DHCP服务器。而两个屋子的linux主机需要完成的另一个功能就是将两个屋子的两个局域网连接起来,就像在同一个局域网络中一样。
我的任务就是模拟这个环境,为维护实验室网络做一些前期的演练。
两台Linux主机,每个主机都有两块物理网卡。
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地址可能会不一样).
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
语句之前。
预备条件
    计算机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 之前就可以了。
标签:linux dhcp nat iptables ip隧道
原文地址:http://blog.csdn.net/xiaocainiaoshangxiao/article/details/36665861