Перейти до

setfib FreeBSD


Рекомендованные сообщения

Доброго времени суток.

Тем затертая, но не понимаю что не так, прочитал кучу статей, перепробовал много вариантов - не получается.

uname -a
FreeBSD nadejda 9.3-RELEASE FreeBSD 9.3-RELEASE #3: Tue Mar  3 01:21:41 EET 2015     root@nadejda:/usr/obj/usr/src/sys/NADEJDA  i386

options         IPFIREWALL
options         IPFIREWALL_FORWARD
options         IPDIVERT
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=1000
options         DUMMYNET
options         IPFIREWALL_NAT
options         LIBALIAS
options         HZ=1000
options         ROUTETABLES=10
options         QUOTA
options         DEVICE_POLLING


Есть два провайдера Wega и УТ

Есть 2 vlan в локальной сети, 200 - офис, 210 - гостевой

vlan100: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	ether c8:3a:35:d8:f3:24
	media: Ethernet autoselect (100baseTX <full-duplex>)
	status: active
	vlan: 100 parent interface: rl0
vlan101: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	ether c8:3a:35:d8:f3:24
	inet 82.200.31.237 netmask 0xfffffc00 broadcast 82.207.39.255
	media: Ethernet autoselect (100baseTX <full-duplex>)
	status: active
	vlan: 101 parent interface: rl0
vlan200: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=1<RXCSUM>
	ether 00:1f:d0:0f:6b:be
	inet 192.168.10.254 netmask 0xffffff00 broadcast 192.168.10.255
	media: Ethernet autoselect (1000baseT <full-duplex,master>)
	status: active
	vlan: 200 parent interface: re0
vlan210: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=1<RXCSUM>
	ether 00:1f:d0:0f:6b:be
	inet 192.168.20.254 netmask 0xffffff00 broadcast 192.168.20.255
	media: Ethernet autoselect (1000baseT <full-duplex,master>)
	status: active
	vlan: 210 parent interface: re0
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1492
	options=80000<LINKSTATE>
	inet 178.10.0.11 --> 213.211.200.213 netmask 0xffffffff 
	Opened by PID 633

нужно что бы гостевой vlan ходил в инет через УТ офис через Wega.

#!/bin/sh

# firewall command
FwCMD="/sbin/ipfw -q"

${FwCMD} -f flush

# Networks define
${FwCMD} table 2 add 192.168.10.0/24 
${FwCMD} table 3 add 192.168.20.0/24 
${FwCMD} add 100 allow ip from any to any via lo0
${FwCMD} add setfib 1 ip from any to any recv vlan210 
#NAT
${FwCMD} nat 1 config log if tun0 reset same_ports
${FwCMD} add 6000 nat 1 ip from table\(2\) to any  
${FwCMD} add 6001 nat 1 ip from any to 178.10.0.11 via tun0 

${FwCMD} nat 2 config log if vlan101 reset same_ports
${FwCMD} add 6002 nat 2 ip from table\(3\) to any  
${FwCMD} add 6003 nat 2 ip from any to 82.200.31.237 via vlan101 

# default block policy
${FwCMD} add 65535 allow all from any to any

Офис работает, а вот гостевой - нет, пинг ходит, страницы не открываться и инет отваливается через 3-4 минуты.

Может у кого-то есть рабочий вариант поделитесь пож-ста решением.

Ссылка на сообщение
Поделиться на других сайтах

Покажіть маршрути в fib 1.

І бажано задавати правила нат більш специфічно

${FwCMD} add 6000 nat 1 ip from table\(2\) to any via tun0 out

${FwCMD} add 6002 nat 2 ip from table\(3\) to any via vlan101 out

Я колись реалізовував подібне через forward, але fib має бути елегантніше.

Ссылка на сообщение
Поделиться на других сайтах
setfib 1 netstat -rn

Routing tables

 

Internet:

Destination             Gateway           Flags    Refs      Use  Netif Expire

default                  82.207.36.1       UGS         0     2959 vlan10

82.207.36.0/22       link#12               U            0        0 vlan10

127.0.0.1                link#10              UH          0        0    lo0

192.168.10.0/24     link#13               U           0        0 vlan20

192.168.20.0/24     link#14               U           0     1289 vlan21

213.227.192.203    link#15             UH           0        0   tun0
Ссылка на сообщение
Поделиться на других сайтах

Напишіть ще який аплінк де.

 

Ну і перевірка: з гостьової мережі telnet на якусь айпішку до якої трафіку в звичайних умовах немає і далі

tcpdump -n -i <intf> host <ip_addr>

дивитись кудою пакети йдуть.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 weeks later...

Попробуй так в начале фаервола 

${FwCMD} add setfib 1 ip from 192.168.20.х/24 to any in recv ${LanIn210}
пояснение все пакеты которые пришли с подсети LanIn1 (свой влан vlan210 интерфейс) отправлять через таблицу маршрутизации 1 
${FwCMD} add setfib 1 ip from table\(2\) to any in recv ${LanIn210}
Пояснение: Все тоже только через таблицы  
а это правило для офиса
${FwCMD} add setfib 1 ip from 192.168.10.х/24 to any in recv ${LanIn200}
 
А вот правила ната
${FwCMD} add nat 1 ip from ${Vlan200}/24 to any out via ${LanOut}
${FwCMD} add nat 2 ip from ${Vlan210}/24 to any out via ${LanOut1}
 
Ссылка на сообщение
Поделиться на других сайтах
  • 2 months later...
Опубліковано: (відредаговано)

Завелось. Просто как-то все одно на одно наложилось. Траблы УТ устраняли 2 недели + mtu нужно было 1492 вставлять (как-то пропустил)

 
 
${FwCMD} -f flush

# Networks define
${FwCMD} table 2 add 192.168.10.0/24 
${FwCMD} table 3 add 192.168.20.0/24 
${FwCMD} add 100 allow ip from any to any via lo0
${FwCMD} add setfib 1 ip from any to any recv vlan210 
#NAT
${FwCMD} nat 1 config log if tun0 reset same_ports
${FwCMD} add 6000 nat 1 ip from table\(2\) to any out via tun0 
${FwCMD} add 6001 nat 1 ip from any to $ipif_vega in via tun0 

${FwCMD} nat 2 config log if vlan101 reset same_ports
${FwCMD} add 6002 nat 2 ip from table\(3\) to any out via vlan101 
${FwCMD} add 6003 nat 2 ip from any to ipif_ut in via vlan101
 
 
Всем спасибо за помощь.
Відредаговано oberon85
Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від mac
      Глюк в тому, що один (так - тільки один) mac адрес onu існує в білінгу у вигляді строки. Це трохи заважає.
      olt - bdcom gepon.
      Наскільки зрозумів, це виключно проблема реалізації snmpwalk у freebsd, де snmpwalk може на свій розсуд віддати mac адресу не як hex-string, а як звичайний string.
      Можливо snmpwalk тригериться на якомусь символі, мені невідомо.
       
      # tcpdump -vv -i em0 udp port 161 and host olt and host ub | grep "3320.101.10.4.1.1.241 ... olt.snmp > ub.47940: [udp sum ok] { SNMPv2c C="*****" { GetResponse(44) R=93278354 E:3320.101.10.4.1.1.241="8LO"W*" } } ub.47940 > olt.snmp: [udp sum ok] { SNMPv2c C="*****" { GetNextRequest(34) R=93278355 E:3320.101.10.4.1.1.241 } } snmpwalk -c***** -v2c -t5 olt .1.3.6.1.4.1.3320.101.10.4.1.1 SNMPv2-SMI::enterprises.3320.101.10.4.1.1.241 = STRING: "8LO\"W*" snmpwalk -Ox -c***** -v2c -t5 olt .1.3.6.1.4.1.3320.101.10.4.1.1 SNMPv2-SMI::enterprises.3320.101.10.4.1.1.241 = Hex-STRING: 38 4C 4F 22 57 2A  
      Це стосується таких параметрів у snmp конфізі bdcom
       
      [signal] MACINDEX=".1.3.6.1.4.1.3320.101.10.4.1.1" [misc] ONUINDEX=".1.3.6.1.4.1.3320.101.11.1.1.3"  
      За для усунення глюку спробував трошки змінити код і завдати тип snmp параметру явно у ./api/libs/api.ponbdcom.php у function collect()
      Це працює. Мабуть станеться у нагоді:
       
      # diff api.ponbdcom.php{.new,.bak} 37c37 < $onuIndex = $this->snmp->walk('-Ox ' . $oltIp . ':' . self::SNMPPORT, $oltCommunity, $onuIndexOid, self::SNMPCACHE); --- > $onuIndex = $this->snmp->walk($oltIp . ':' . self::SNMPPORT, $oltCommunity, $onuIndexOid, self::SNMPCACHE); 91c91 < $macIndex = $this->snmp->walk('-Ox ' . $oltIp . ':' . self::SNMPPORT, $oltCommunity, $macIndexOID, self::SNMPCACHE); --- > $macIndex = $this->snmp->walk($oltIp . ':' . self::SNMPPORT, $oltCommunity, $macIndexOID, self::SNMPCACHE);  
      P.S. Створив тему, а зараз міркую: а може це глюк у ПЗ olt. Оновлю фірмваре olt та перевірю...
       

    • Від a_n_h
      Всем доброго дня и мирного неба!
        После многочисленных экспериментов выяснил, что на последних версиях freebsd  максимум удавалось прокачать до 14 ГБт суммарно трафика со 100% загрузкой процессора. На том-же железе но с установленной freebsd 11.2 прокачивается до 20-ти ГБт суммарно тестового трафика с загрузкой процессора около 50%. 
        Подскажите, что можно убрать или наоборот добавить в систему с freebsd 13,3 для получения аналогичного результата...
    • Від mac
      Здається, після оновлення PHP 7.4 до PHP 8.2 feesharvester припинив працювати:
       
      /usr/local/bin/curl "http://127.0.0.1/billing/?module=remoteapi&key={SERIAL}&action=feesharvester" <br /> <b>Fatal error</b>: Uncaught TypeError: Unsupported operand types: string - string in {UBPATH}/billing/api/libs/api.fundsflow.php:570 Stack trace: #0 {UBPATH}/billing/modules/remoteapi/feesharvester.php(22): FundsFlow-&gt;harvestFees('2024-01') ...  
      Невеличке розслідування врешті з'ясувало, що це через наявність пробілу у деяких логінах абонентів. Як так сталося? Тому що інколи був неуважно додан трейлінг пробіл до номеру будинка і цей пробіл потрапив до логіну абоненту. Логін абоненту неможливо змінити ніяким чином штатними засобами. Я не розглядаю створення нового абонента для усунення помілки.

      Був обран такий шлях вирішення проблеми. Заміну функції php explode() знайшов у мережі. Мабуть це станеться в нагоді:

       
      diff api.fundsflow.php.bak api.fundsflow.php.new 559c559 < $eachfee = explode(' ', $eachline); --- > $eachfee = preg_split("~(?<!\\\\)(?:\\\\{2})*'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'(*SKIP)(*F)|\s+~s" , $eachline);  
    • Від FantoM_EscapE
      Хочу перенести свій білінг NODENY із фізичного сервера на віртуальний. Шукаю адміна який зможе допомогти у цьому питанні, так як нашого адміна банально призвали до війська. Вся схема на даний момент робоча, маю доступи до всього. Потрібно проінсталити на новішу версію FREEBSD, бо на моїй 10 річній вже не працюють нові SSL сертифікати. Кого зацікавила дана пропозиція - прошу у приватні повідомлення. обсудимо ціну і строки. або пишіть на будь-який месенджер 0677792091
    • Від rusol
      Добрый вечер.
       
      Есть от провайдера блок реальных адресов, к примеру 100.1.1.192/26
       
      Раньше сеть была в одном влане и записи в /etc/rc.conf были такие:

       
      ifconfig_ix0="inet 192.168.0.1 netmask 255.255.255.0" # Шлюз для пользователей с локальным IP ifconfig_ix0_alias0="inet 100.1.1.193 netmask 255.255.255.192" # Шлюз для пользователей с реальными IP  
      После чего стала задача часть пользователей переводить во вланы тоже с разделением на локальные IP и реальные, первый влан создал где-то пару лет назад и все работает:
       
      ifconfig_vlan1="vlan 1 vlandev ix0 192.168.1.1 netmask 255.255.255.0" # Шлюз для пользователей с локальным IP во Влане 1 ifconfig_vlan1_alias0="inet 100.1.1.248 netmask 255.255.255.248" # Шлюз для пользователей с реальными IP  во Влане 1  
      И вот стоит задача создать еще один влан, делаю по аналогии с вланом 1, только маску смещаю назад:
       
      ifconfig_vlan2="vlan 2 vlandev ix0 192.168.1.1 netmask 255.255.255.0" # Шлюз для пользователей с локальным IP во Влане 2 ifconfig_vlan2_alias0="inet 100.1.1.246 netmask 255.255.255.254" # Шлюз для пользователей с реальными IP во Влане 2  
      Когда я внес это в /etc/rc.conf и прописал команду:
       
      ifconfig vlan2 create  
      Все заработало.
       
      Но как только перезагрузился сервер, перестали работать реальные IP без вланов, в первом влане и во втором. Не пойму что не так делаю, возможно я с маской подсети что-то недопонимаю...
×
×
  • Створити нове...