tinc ***简单配置示例扩展(一)——跨越三层网络
在tinc ***简单配置示例(http://watertoeast.blog.51cto.com/8489855/1711649)一文中,构建tinc ×××的两台机器同属一个局域网(如图一),这样的场景基本与实际应用情况不符。今天对简单示例进行扩展,使构建***的两台主机跨越三层网络边界(如图二)。
图一 tinc *** in lan
图二 tinc ×××跨越三层网络边界
如图二所示,PC02的IP地址变成了172.16.1.6,与PC01分属不同的网络,中间跨越了三层网络边界。根据图二的要求,可以给出如图三的实验环境:
图三 跨网tinc ×××示意图
PC01所在网络为192.168.1.0/24,网关为192.168.1.254;PC02所在网络为172.16.1.0/24,网关为172.16.1.254;两个网络通过路由器R1、R2进行互联。
在这个环境基础上,我们的目标是:在PC01和PC02搭建tinc ×××,其××× IP分别为10.0.2.1、10.0.1.1。当192.168.1.6与172.16.1.6通信,走正常的IP路由;当10.0.1.1与10.0.2.1通信时,走PC01与PC02构建的×××隧道,如图三下方的蓝色管道。
PC01与PC02的配置可参考http://watertoeast.blog.51cto.com/8489855/1711649,R1和R2的模拟可参考http://watertoeast.blog.51cto.com/8489855/1701333。假设R1、R3在PC03模拟,下面直接给出具体的配置过程:
一、配置PC01
1、创建所需文件夹以及文件
cd /etc/tinc
mkdir twwh
mkdir twwh/hosts
touch twwh/tinc.conf
touch twwh/tinc-up
touch twwh/tinc-down
2、创建公私钥
tincd -n twwh -K
公私钥文件路径使用默认的,无须修改。
3、修改tinc.conf文件
# beg tinc.conf
ConnectTo=twwhserver
Device=/dev/net/tun
Mode=switch
Name=twwhclient
PrivateKeyFile=/etc/tinc/twwh/rsa_key.priv
# end
4、修改twwhclient文件
twwhclient在创建密钥的时候生成,在其头部添加
Compression=9
Subnet=10.0.2.0/24
Address=192.168.1.6
5、修改tinc-up和tinc-down
tinc-up内容如下:
#!/bin/sh
ifconfig $INTERFACE 10.0.2.1 netmask 255.255.255.0
route add -host 10.0.1.1 dev $INTERFACE
route add -net 10.0.1.0 netmask 255.255.255.0 gw 10.0.1.1
tinc-down内容如下:
ifconfig $INTERFACE down
二、配置PC02
①创建所需文件夹以及文件
cd /etc/tinc
mkdir twwh
mkdir twwh/hosts
touch twwh/tinc.conf
touch twwh/tinc-up
touch twwh/tinc-down
②创建公私钥
tincd -n twwh -K
公私钥文件路径使用默认的,无须修改。
③修改tinc.conf文件
# beg tinc.conf
ConnectTo=twwhclient
Device=/dev/net/tun
Mode=switch
Name=twwhclient
PrivateKeyFile=/etc/tinc/twwh/rsa_key.priv
# end
④修改twwhserver文件
twwhserver在创建密钥的时候生成,在其头部添加
Compression=9
Subnet=10.0.1.0/24
Address=172.16.1.6
⑤修改tinc-up和tinc-down
tinc-up内容如下:
#!/bin/sh
ifconfig $INTERFACE 10.0.1.1 netmask 255.255.255.0
route add -host 10.0.2.1 dev $INTERFACE
route add -net 10.0.2.0 netmask 255.255.255.0 gw 10.0.2.1
tinc-down内容如下:
ifconfig $INTERFACE down
三、配置PC03
1、配置网桥和虚拟网卡
brctl addbr br0
brctl addbr br1
brctl addbr br2
(说明:添加br0、br1、br2三个网桥)
ip l s dev br0 up
ip l s dev br1 up
ip l s dev br2 up
(说明:启动网桥)
tunctl -t tap0 -u root
tunctl -t tap1 -u root
tunctl -t tap2 -u root
tunctl -t tap3 -u root
(说明:添加虚拟网卡)
ip l s dev tap0 up
ip l s dev tap1 up
ip l s dev tap2 up
ip l s dev tap3 up
(说明:启动虚拟网卡)
brctl addif br0 tap0
brctl addif br0 eth0
brctl addif br1 tap1
brctl addif br1 tap3
brctl addif br1 eth1
brctl addif br2 tap2
brctl addif br2 eth2
(说明:把网卡和虚拟网卡添加到对应的网桥)
ifconfig eth0 0.0.0.0 promisc
ifconfig eth1 0.0.0.0 promisc
ifconfig eth2 0.0.0.0 promisc
(说明:把网卡设置成混杂模式)
2、模拟路由器R1、R2
dynamips -P 2691 -s 0:0:tap:tap0 -s 0:1:tap:tap1 ../c2691-adventerprisek9-mz.124-25d.bin
dynamips -P 2691 -s 0:0:tap:tap2 -s 0:1:tap:tap3 ../c2691-adventerprisek9-mz.124-25d.bin
对R1配置如下:
R1(config)#int fa0/0
R1(config-if)#ip add 192.168.1.254 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int fa0/1
R1(config-if)#ip add 1.1.1.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#ip route 0.0.0.0 0.0.0.0 1.1.1.2
R1(config)#end
对R2配置如下:
R2(config)#int fa0/0
R2(config-if)#ip add 172.16.1.254 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#int fa0/1
R2(config-if)#ip add 1.1.1.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#ip route 0.0.0.0 0.0.0.0 1.1.1.1
R2(config)#end
在PC01上ping 10.0.1.1,在PC02上用wireshark嗅探172.16.1.6网络接口的数据,如图二所示。由图可以看出,这些数据都是tinc的×××密数据。
图四 PC02 172.16.1.6接口的通信数据
图五 PC02 10.0.1.1接口的通信数据
到此为止,一个简单跨越三层网络边界的tinc ***实验环境已构建完毕。
转载于:https://blog.51cto.com/watertoeast/1712897