L2 транспорт через TP-LINK TL-WR842ND

Комментарии ()

Прошивку OpenWRT для роутер TL-WR842ND беремо тут. На момент написання статті, для ревізії V2 це файл openwrt-15.05.1-ar71xx-generic-tl-wr842n-v2-squashfs-factory.bin

Причому прийшлось його переіменувати в TL-WR842ND_V2_140922_RU.bin, оскільки рідна прошивка відмовлялась приймати на борт оригінальну назву файлу

Редагую конфігурацію мережі

vi /etc/config/network

В моєму випадку, прописую локальну ip

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fdaf:c070:c667::/48'

config interface 'lan'
        option ifname 'eth1 tap0'
        option force_link '1'
        option type 'bridge'
        option proto 'static'
        option ipaddr '10.254.254.4'
        option netmask '255.255.255.29'
        option ip6assign '60'

config interface 'wan'
        option ifname 'eth0'
        option proto 'dhcp'

config interface 'wan6'
        option ifname 'eth0'
        option proto 'dhcpv6'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '0 1 2 3 4'

Також прописую dns

vi /etc/resolv.conf

Дозволяєсо ssh через wan інтерфейс, добавляємо правило в /etc/config/firewall

#Allow SSH
config 'rule'
option 'src' 'wan'
option 'target' 'ACCEPT'
option 'proto' 'tcp'
option 'dest_port' '22'

Пробуємо поставити vtund

opkg update
opkg install vtund 
Unknown package 'vtund'.
Collected errors:
 * opkg_install_cmd: Cannot install package vtund.

Пакет беремо тут та копіюємо на желізку (я використовую Winscp)

інсталюємор vtun

opkg install vtun_3.0.2-1_ar71xx.ipk

Редагуємо конфіг vtun для клієнта

options {
  port 5005;            # Connect to this port.
  timeout 60;           # General timeout

  # Path to various programs
  ppp           /usr/sbin/pppd;
  ifconfig      /sbin/ifconfig;
  route         /sbin/route;
  firewall      /sbin/ipchains;
  ip            /sbin/ip;
}


# Ethernet example. Session 'lion'.
 connectio_name{
  passwd  mypassword;    # Password
  type  ether;          # Ethernet tunnel
  device tap0;
  persist yes;
  up {
        ifconfig "%% 20.20.20.2 netmask 255.255.255.0";
  };
  down {
        ifconfig "%% down";
  };
}

Створюємо скрипт запуску vtun-клієнта /etc/init.d/vtunclient

#!/bin/sh /etc/rc.common
# Example script
# Copyright (C) 2007 OpenWrt.org
 
START=10
STOP=15
 
start() {        
        echo start
        vtund connection_name server.host

	
	
}                 
 
stop() {          
        echo stop
        # commands to kill application 
}

Активізуємо скрипт запуску

chmod +x /etc/init.d/vtunclient
/etc/init.d/vtunclient enable

Проблеми

При включені другого тунеля, tap інтерфейс постійно Up/Down - то піднімався, то падав. Допоміг запуск vtund  не в режимі демона (vtund -n). Як виявилось, клієнт не хотів працювати по udp протоклу, видалив proto udp на сервері, усе пішло

Конфігураційний файл сервера

options {
  port 5005; 
  syslog        daemon;
  ifconfig      /sbin/ifconfig;

}

# Default session options
default {
  compress no;          # Compression is off by default
  speed 0;              # By default maximum speed, NO shaping
}

connection_name {
  passwd  a;
  type  ether;          # Ethernet tunnel
  device tap1;          # Device tap0
  compress no;
  encrypt no;
  #compress  lzo:1;     # LZO compression level 1
  #encrypt  yes;                # Encryption
  stat  no;             # Log connection statistic
  keepalive yes;        # Keep connection alive

  up {
        ifconfig "%% up";
        ifconfig "%% bridge4 addm tap1";
  };

  down {

  };
}

 


Webit.in.ua 2013