标签: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