[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