dadv: (chuck)
[personal profile] dadv

Традиционно FreeBSD IP-трафик, предназначенный для одного из собственных интерфейсов, обрабатывает через loopback-интерфейс (lo0). То есть, если у нас есть два сетевых интерфейса с адресами $ip1 и $ip2 и мы запускаем ping -S $ip1 $ip2, то как запросы, так и ответы не будут выходить в сетевые интерфейсы с этими адресами, а будут "крутиться" внутри самой машины через лупбек. tcpdump -i lo0 это подтвердит.

Иногда всё же нужно сделать так, чтобы пакеты физически покидали машину и возвращались обратно - например, для тестирования какого-нибудь оборудования для организации канала связи. Удобно такое тестирование делать одной машиной с двумя интерфейсами. Вот как это можно сделать на примере FreeBSD 9.1-PRERELEASE с двумя сетевыми igb0 и igb1:

  • в /boot/loader.conf добавляем: net.fibs=4
  • в ядро добавляем: options VIMAGE
  • не делая никаких buildworld/installword, создаём два "пустых" jail, без единого исполняющегося процесса в каждом, зато с собственным сетевым стеком, набором сетевых интерфейсов и таблицей маршрутизации на каждый jail:
    jail -c name=test0 vnet persist exec.fib=1
    jail -c name=test1 vnet persist exec.fib=2

  • перемещаем интерфейс igb0 в jail test0, а igb1 в jail test1, после чего они "исчезают" из хост-системы:
    ifconfig igb0 vnet test0
    ifconfig igb1 vnet test1
    jexec test0 ifconfig igb0 inet 10.0.0.1/24
    jexec test1 ifconfig igb1 inet 10.0.0.2/24
    

  • После этого можно, например, запустить jexec test0 ping 10.0.0.2 и пинг с адреса 10.0.0.1 на 10.0.0.2 уходит через интерфейс igb0 в физическую сеть, которая в моём случае замкнута обратно на igb1. tcpdump подтверждает, что пакеты уходят и приходят через igb0/igb1.

Так можно тестировать коммутаторы/медиаконвертеры/модули SFP/что угодно.

Date: 2012-08-08 16:31 (UTC)
From: [identity profile] dadv.livejournal.com
Ну да, пример предполагает доступ с консоли или с третьего интерфейса (у меня был ещё em0 :-)

Profile

dadv: (Default)
Choose your future

July 2024

M T W T F S S
12 34567
891011121314
15161718192021
22232425262728
293031    

Tags

Style Credit

Powered by Dreamwidth Studios