Author Topic: [Решено] Подключение к Cubieboard через сетевую карту с DHCP-сервером  (Read 6835 times)

Stanislav

  • Guest
Идея подключить Cubieboard к компу через сеть, возникла как возможность решить проблему отсутствия HDMI-входа, а подключать к маршрутизатору(роутер) возможности не было так как он находится в неудобном месте, в котором отсутствует возможность подключить usb-питание для Куби, а длинного сетевого кабеля не нашлось, да и работающий Кубиборд хотелось иметь перед глазами. В наличие была старенькая сетевая карта за 200 рублей и 1-метровый сетевой кабель(пачкорд) за 20 рублей, дотянуться которым до роутера находящегося в другой комнате я не мог. На Кубиборд должна быть установлена операционная система Cubian Text Mode. (я использую SD-card Images для Куби2)


Краткое описание:
Подключение к Cubieboard'у через сетевую карту(без роутера), и настройка DHCP-сервера на основном компьютере, с которого Кубидорд получит сетевые настройки и войдёт в сеть и установит соединение. Настройка производится на персональном компьютере с операционной системой Ubuntu.

1. Втыкаем сетевую карту в PCI порт компа.
Проверяем командой ifconfig, что сетевая карта определилась системой, после подключения сетевой карты, должен появится новый сетевой интерфейс eth1

Code: [Select]
$ ifconfig
Code: [Select]
eth0    Link encap:Ethernet  HWaddr 00:3b:dc:71:df:1c 
          inet addr:192.168.0.32  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fd40::32c:cdff:ce26:2d4f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:368146 errors:0 dropped:0 overruns:0 frame:0
          TX packets:265806 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:434686010 (434.6 MB)  TX bytes:35021104 (35.0 MB)
          Interrupt:44 Base address:0x2000

eth1   Link encap:Ethernet  HWaddr 00:2d:d0:9c:5e:1b 
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:82056 errors:0 dropped:0 overruns:0 frame:0
          TX packets:85302 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5609104 (5.6 MB)  TX bytes:6677677 (6.6 MB)
          Interrupt:23
Адреса устройств HWaddr, у вас будут другие
(если сетевой интерфейс eth1 не появился, то проверьте его наличием sudo ifconfig -a , чтобы его активизировать воспользоваться командой sudo ifconfig eth1 up, но такое бывает редко)

Настраиваем сеть на персональном компьютере, который будет сервером и которому будем подключать Кубиборд.

Правим файла сетевых настроек /etc/network/interfaces
Для этого выполним команду:
Code: [Select]
$ sudo gedit /etc/network/interfaces
Файл по умолчанию выглядит так:

Code: [Select]
auto lo
iface lo inet loopback

добавим в него следующий блок, с настройками сети для нашего нового сетевого интерфейса eth1:

Code: [Select]
auto eth1
iface eth1 inet static
name Ethernet alias LAN card
        address 10.0.0.1
        netmask 255.255.255.0
        broadcast 10.0.0.255
        network 10.0.0.0

сохраним изменения в файле /etc/network/interfaces

И перезапустим сеть:
Code: [Select]
$ sudo /etc/init.d/networking restart
теперь настройки для интерфейса eth1 должны выглядеть примерно так:
Code: [Select]
$ ifconfig eth1
Code: [Select]
eth1   Link encap:Ethernet  HWaddr 00:2d:d0:9c:5e:1b 
          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::21c:f0ff:fe9e:641a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:23

Теперь устанавливаем DHCP-сервер , который будет работать на нашем новом сетевом интерфейсе «eth1»:

C помощью DHCP-сервера Кубиборд будет получать сетевые настройки, ip-адрес, при подключение через сетевой кабель.

Устанавливаем DHCP-сервер следующей командой:
Code: [Select]
$ sudo aptitude install isc-dhcp-server
после установки сервера, открываем файл /etc/default/isc-dhcp-server и устанавливаем имя интерфейса на котором дхцп-сервер будет работать:
Code: [Select]
$ sudo gedit /etc/default/isc-dhcp-server
и указываем там сетевой интерфейс на котором сервер будет работать, в нашем случае это eth1, добавляя следующую строку

Code: [Select]
INTERFACES="eth1"
Далее сервер, настраиваем в файле /etc/dhcp/dhcpd.conf
Откроем файл следующей командой:

Code: [Select]
$ sudo gedit /etc/dhcp/dhcpd.conf
и добавляем блок настроек:

Code: [Select]
host router {
    hardware ethernet 00:2D:D0:9C:5E:1B;  # Здесь должен быть HWaddr вашего интерфейса eth1
    fixed-address 10.0.0.1;
    option host-name router;
}

subnet 10.0.0.0 netmask 255.255.255.0 {
  range 10.0.0.10 10.0.0.12; # в этом диапазоне ваш сервер будет отдавать ай-пи адрес Куби
  option routers 10.0.0.1; # это включит на Куби "route add default gw 10.0.0.1"
  option subnet-mask 255.255.255.0;
  option broadcast-address 10.0.0.255;
  option domain-name-servers 10.0.0.1; # по этому адресу на порт 53 Куби будет слать днс-запросы
  option ntp-servers 10.0.0.1;  # сервер-времени, и нет-биос  - не обязательно
  option netbios-name-servers 10.0.0.1;
  option netbios-node-type 8;

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

- в  hardware ethernet прописываете Hwaddr сетевого интерфейса eth1 который находится в выдаче команды ifconfig
- range 10.0.0.10 10.0.0.12; в этом диапазоне ваш ДХЦП-сервер будет выдавать ай-пи адрес для Куби (т.е. или 10.0.0.10 или 10.0.0.11 или 10.0.0.12, но скорей всего он отдаст первый свободный, то есть адрес Куби в сети будет 10.0.0.10)

После того как мы добавили настройки DHCP-серверу
Перезапускаем dhcp-сервер командой:
Code: [Select]
$ sudo service isc-dhcp-server restart
Теперь втыкаем в Куби сетевой кабель идущий от нашей сетевой карты(eth1)
Ждём пару секунд, получаем адрес Куби следующей командой(просматриваем ARP-таблицу на интерфейсе eth1):
Code: [Select]
$ arp  -i eth1 -nКоманда имеет следующий вывод:
Code: [Select]
Адрес         HW-тип    HW-адрес           Флаги Маска           Интерфейс
10.0.0.10     ether     00:2d:d0:9c:5e:1b  C                     eth1

Куби находится по адресу 10.0.0.10

заходим на Кубиборд по SSH на порт 36000
Данные для входа по умолчания для Cubian Text Mode
имя: cubie
пароль: cubie
(подробней см. здесь)

Code: [Select]
$ ssh cubie@10.0.0.10 -p 36000 или
Code: [Select]
$ ssh 10.0.0.10 -p 36000 -l cubie
Code: [Select]
cubie@10.0.0.10's password:
Linux Cubian 3.4.75-sun7i #35 SMP PREEMPT Sat Feb 8 02:10:31 CST 2014 armv7l

      ______  __    __  .______    __       ___      .__   __.
     /      ||  |  |  | |   _  \  |  |     /   \     |  \ |  |
    |  ,----'|  |  |  | |  |_)  | |  |    /  ^  \    |   \|  |
    |  |     |  |  |  | |   _  <  |  |   /  /_\  \   |  . `  |
    |  `----.|  `--'  | |  |_)  | |  |  /  _____  \  |  |\   |
     \______| \______/  |______/  |__| /__/     \__\ |__| \__|
                                                             
                        http://cubian.org
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Jan  1 00:04:33 2010 from 10.0.0.1
cubie@Cubian:~$ ls -la
total 32
drwxr-xr-x 3 cubie cubie 4096 Jan  1  2010 .
drwxr-xr-x 4 root root 4096 Jan  1  2010 ..
-rw------- 1 cubie cubie   56 Jan  1  2010 .bash_history
-rw-r--r-- 1 cubie cubie  220 Jan  1  2010 .bash_logout
-rw-r--r-- 1 cubie cubie 3409 Jan  1  2010 .bashrc
drwx------ 3 cubie cubie 4096 Jan  1  2010 .config
-rw-r--r-- 1 cubie cubie  675 Jan  1  2010 .profile
-rw------- 1 cubie cubie  707 Jan  1  2010 .viminfo
Вуаля, мы в системе  ;)

Добавляем применение новых сетевых настроек в автозагрузку персонального компьютера(НЕ КУБИ), чтобы при следующей загрузке настройки сети для интерфейса eth1 применились и нам не пришлось опять перезапускать сеть и DHCP-сервер:

Code: [Select]
$ sudo update-rc.d networking enableили
Code: [Select]
$ sudo update-rc.d networking defaultsТеперь всё готово, для постоянной работы с Куби через небольшую сеть, не отходя от персонального компьютера.  8)

Да по сети мы можем зайти на Куби, но на Куби нет доступа в интернет, так на интерфейс eth0 по сути является шлюзом(роутером) на нем должна быть настроена пересылка пакетов с eth1 дальше по сети.

Настройка/проброс интернета на Кубиборд
(настройка производится только на Компе с eth0)

создадим скрипт по настройке пересылке пакетов через Комп, c eth1 на eth0:

Code: [Select]
sudo gedit /etc/network/ip_proxy.sh
Code: [Select]
#!/bin/sh

# разрешение пересылки в системных настройках
echo 1 > /proc/sys/net/ipv4/conf/eth0/forwarding
echo 1 > /proc/sys/net/ipv4/conf/eth1/forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# Проброс соединений, с заменой исходящего ip-адреса, на ip-адрес интерфейса eth0 (в моём случае это 192.168.0.32 - адрес компа)
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j SNAT --to-source 192.168.0.32

# проксирование ДНС запросов с Куби на ДНС сервер роутера (192.168.0.1 - адрес домашнего роутера)
iptables -t nat -A PREROUTING -i eth1 -p udp --dport 53 -j DNAT --to 192.168.0.1
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 53 -j DNAT --to 192.168.0.1

# Скрипт будет работать и так,
# Но для динамического определения параметров сети в скрипте, осталось доделать:
# 1. получение ай-пи адреса шлюза eth0 и подстановка его в прокcирование DNS
# 2. получение ай-пи адреса на интерфейсе eth0 и подстановка его в проброс соединений
# 3. выход из скрипта если eth0 не поднялся

Делаем скрипт исполняемым
Code: [Select]
sudo chmod +x /etc/network/ip_proxy.shи выполняем
Code: [Select]
$ sudo sh /etc/network/ip_proxy.sh
Добавляем изменения в файл сетевых настроек /etc/network/interfaces, чтобы при поднятии интерфейса выполнялся скрипт ip_proxy.sh
Code: [Select]
sudo gedit /etc/network/interfaces
вот эту строку добавим в настройку интерфейса eth1 "post-up /etc/network/ip_proxy.sh"
Теперь /etc/network/interfaces  выглядит так:
Code: [Select]
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
name Ethernet alias LAN card
address 10.0.0.1
netmask 255.255.255.0
broadcast 10.0.0.255
network 10.0.0.0
post-up /etc/network/ip_proxy.sh

Теперь у вас есть еще и интернет на Кубиборде  :)
« Last Edit: April 19, 2014, 04:40:53 pm by Станислав »

Offline luminofor

  • Full Member
  • ***
  • Posts: 213
  • Karma: +1/-0
    • View Profile
1. Зачем такие заморочки с dhcp, если подключается только кубик и все?
2. Простой пачкорд не пойдет, нужно зеркало.
3. Не проще найти простенький свич, скажем на пять каналов. ИМХО неудобняк держать комп включенным все время, чтобы иметь доступ к кубику из мира.
Я уже не говорю про реализацию такого доступа

Отправлено с моего Hongmi через Tapatalk
« Last Edit: April 16, 2014, 04:07:29 pm by luminofor »

Offline Alex74

  • Jr. Member
  • **
  • Posts: 68
  • Karma: +1/-0
    • View Profile
Еще неплохо было бы рассказать как интернет перебросить с основного компа на кубиборду.

Stanislav

  • Guest
1. Зачем такие заморочки с dhcp, если подключается только кубик и все?
2. Простой пачкорд не пойдет, нужно зеркало.
3. Не проще найти простенький свич, скажем на пять каналов. ИМХО неудобняк держать комп включенным все время, чтобы иметь доступ к кубику из мира.
Я уже не говорю про реализацию такого доступа

Отправлено с моего Hongmi через Tapatalk
Где я найду свич у меня свича нет, я же делал из того что под рукой.
Это не для того чтобы держать комп включённым, это как получить доступ до куби через сеть без роутера. Для постоянной работы Куби в сети роутер нужен, но это другой случай, я описал случай в начале статьи.

Stanislav

  • Guest
Еще неплохо было бы рассказать как интернет перебросить с основного компа на кубиборду.
Да согласен, про это нужно дописать.

Stanislav

  • Guest
Еще неплохо было бы рассказать как интернет перебросить с основного компа на кубиборду.
Готово, обновил про Интернет на Куби !   8)

Offline Flywood

  • Newbie
  • *
  • Posts: 5
  • Karma: +0/-0
    • View Profile
Code: [Select]

$ nmap -sP 10.0.0.10-12


Code: [Select]

Nmap scan report for 10.0.0.10
Host is up (0.00016s latency).


Вот мы нашли Куби по адресу 10.0.0.10 nterrupt:44 Base address:0x2000


Зачем такие заморочки? гораздо проще использовать
Code: [Select]
# apr -a

Stanislav

  • Guest
Code: [Select]

$ nmap -sP 10.0.0.10-12


Code: [Select]

Nmap scan report for 10.0.0.10
Host is up (0.00016s latency).


Вот мы нашли Куби по адресу 10.0.0.10 nterrupt:44 Base address:0x2000


Зачем такие заморочки? гораздо проще использовать
Code: [Select]
# apr -a

Действительно, можно и посмотреть адрес Куби в ARP-таблице:
Code: [Select]
arp  -i eth1
Code: [Select]
user@user:~$ arp  -i eth1 -n
Адрес HW-тип HW-адрес Флаги Маска Интерфейс
10.0.0.10                ether   00:2d:d0:9c:5e:1b  C                     eth1
Спасибо, да так проще.

Хотя уметь пользоваться nmap'ом полезно, можно найти и порт SSHD если забыли номер порта.
« Last Edit: April 19, 2014, 04:32:25 pm by Станислав »