[Comm] Dosemu networking

Grigory Batalov =?iso-8859-1?q?bga-no-spam_=CE=C1_kovgok=2Eru?=
Вт Янв 20 09:11:15 MSK 2004


Здравствуйте!

Предлагаю step-by-step howto для использования сети в
dosemu по новой схеме. Документ также выложен тут:

http://www.ltsp.ru/documentation/faq-dosemu-networking.html

Замечания с радостью приму.

------

  Вот как поднять TCP/IP в dosemu
  согласно новым веяниям. Кстати, недавно вышел релиз
  dosemu-1.2.0 =)


1. Сеть доступна через интерфейс TUN/TAP,
   см. http://dosemu.sourceforge.net/docs/README/1.2/x949.html

   Поэтому в ~/.dosemurc дописываем следующее:

$_pktdriver = (on)
$_netdev = "tap0"
$_vnet = "tap"

   В /etc/modules.conf дописать "alias char-major-10-200 tun",
   иначе модуль не будет автоматически подгружаться.

2. Интерфейс tap0 станет доступен после запуска dosemu
   и пропадёт при выходе. Чтобы этого не происходило,
   можно сделать его перманентным. Для этого требуется
   утилита tunctl из проекта User Mode Linux:

http://prdownloads.sourceforge.net/user-mode-linux/uml_utilities_20040114.tar.bz2

$ gcc -g -Wall -o tunctl tunctl.c
$ strip tunctl
$ sudo install -o root -g root -m 755 tunctl /usr/local/sbin/tunctl

3. Создать перманентное устройство:

$ /usr/local/sbin/tunctl -t tap0
Set 'tap0' persistent and owned by uid 500
$ sudo ifconfig tap0 up

4. Для выхода из dosemu в окружающую сеть нужно создать
   мост между tap0 и основным интерфейсом (eth0):

$ sudo brctl addbr br0
$ sudo brctl addif br0 eth0
$ sudo brctl addbr br0 tap0
$ sudo brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.0004761cbca8       no              eth0
                                                        tap0

5. Все настройки, что были у eth0, теперь предназначены br0.
   Я просто скопировал /etc/sysconfig/network-scripts/ifcfg-eth0
   в /etc/sysconfig/network-scripts/ifcfg-br0 и заменил DEVICE
   на br0.

$ sudo ifup br0
$ /sbin/ifconfig 
br0       Link encap:Ethernet  HWaddr 00:04:76:1C:BC:A8  
          inet addr:172.16.0.57  Bcast:172.16.255.255  Mask:255.255.0.0
          IPX/Ethernet 802.2 addr:00000002:0004761CBCA8
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1260450 errors:0 dropped:0 overruns:0 frame:0
          TX packets:337199 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:165684089 (158.0 Mb)  TX bytes:111624539 (106.4 Mb)

6. Проверить настройки интерфейса можно с помощью "dosemu -D9+P":

$ less ~/.dosemu/boot.log

...
PKT: VNET mode is 2
PKT: trying to bind to device tap0
Assigned DosnetID=9053
PKT: Using device tap0
Assigned Ethernet Address = 64:62:53:90:78:78:
...

7. В качестве сетевых утилит можно использовать любые доступные,
   умеющие работать со встроенным в BIOS Packet Driver.
   Пока я проверил Waterloo TCP и PCTCP (у кого есть другие,
   присылайте, или проверьте сами). Последний требует загрузки
   TSR-модуля и лицензии. Первый бесплатный, можно взять здесь:

http://www.wattcp.com/wat2001b.zip

   Бинарные версии внутри, в /apps/apps.zip. Их нужно извлечь,
   скажем, в папку C:\NET и создать там конфиг. Я сделал
   такие же настройки, как и у Линукс-хоста:

$ cat tcp.cfg 
my_ip=172.16.0.57
netmask=255.255.255.0
gateway=172.16.0.100

   Внимание! TCP/IP стек в Waterloo TCP поднимается при
   вызове команд и опускается при выходе. По этому, если
   вы захотите сделать ping w.x.y.z из Линукс-хоста, а
   w.x.y.z - отличающийся IP dosemu, то ping пройдёт
   только когда в dosemu выполняется, например,

C:\NET>ping 172.16.0.100 8

8. Пример:

C:\NET>ping 172.16.0.100 2
Pinging [172.16.0.100] 2 times once per_second
sent PING # 1 , PING receipt # 1 : response time 0.00 seconds
sent PING # 2 , PING receipt # 2 : response time 0.00 seconds
 
Ping Statistics
Sent        : 2
Received    : 2
Success     : 100 %
Average RTT : 0.00 seconds

-- 
Григорий Баталов,
начальник бюро
системного администрирования
ОАО "Ковдорский ГОК"
+7-(81535)-76036



Подробная информация о списке рассылки community