This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
software:freebsd:ng_vlan [2015/05/16 14:01] – [Тюнинг системы] root | software:freebsd:ng_vlan [2015/05/17 03:39] – [QinQ: ng_vlan patch] root | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== QinQ: ng_vlan patch ====== | + | ====== |
Патч добавляет функционал в нетграф ноду ng_vlan, в том числе становится возможным делать QinQ. | Патч добавляет функционал в нетграф ноду ng_vlan, в том числе становится возможным делать QinQ. | ||
[[http:// | [[http:// | ||
Line 82: | Line 82: | ||
kldload ng_ether | kldload ng_ether | ||
- | ngctl msg re0: setpromisc 1 | + | Включить " |
- | ngctl msg re0: setautosrc 0 | + | < |
+ | ngctl msg re0: setautosrc 0</ | ||
- | ngctl mkpeer re0: vlan lower downstream | + | Подключаем ng_vlan к re0 адаптеру, |
- | ngctl connect re0: re0:lower upper nomatch | + | < |
+ | ngctl connect re0: re0:lower upper nomatch</ | ||
- | ngctl mkpeer re0:lower eiface vlan1001 ether | + | Создаём интерфейсы для вланов и подключаем их к ng_vlan на re0: |
- | ngctl mkpeer re0:lower eiface vlan1002 ether | + | < |
+ | ngctl mkpeer re0:lower eiface vlan1002 ether</ | ||
- | ngctl name re0: | + | Задаём имя интерфейса, |
+ | < | ||
ifconfig ngeth0 link 00: | ifconfig ngeth0 link 00: | ||
- | ifconfig ngeth0 inet 192.168.0.36 netmask 255.255.255.0 | + | ifconfig ngeth0 inet 192.168.0.36 netmask 255.255.255.0</ |
- | ngctl name re0: | + | Задаём имя интерфейса, |
+ | < | ||
ifconfig ngeth1 link 00: | ifconfig ngeth1 link 00: | ||
- | ifconfig ngeth1 inet 192.168.254.36 netmask 255.255.255.0 | + | ifconfig ngeth1 inet 192.168.254.36 netmask 255.255.255.0</ |
- | ngctl msg re0:lower addfilter '{ vid=1001 hook=" | + | Добавляем фильтр в ng_vlan для влана 1001: |
- | ngctl msg re0:lower addfilter '{ vid=1002 pcp=6 cfi=1 hook=" | + | < |
+ | Добавляем фильтр в ng_vlan для влана 1002, так же задаем доп параметры: | ||
+ | < | ||
- | + | Проверяем что фильтры добавились, | |
- | # ngctl msg re0:lower gettable | + | < |
Rec'd response " | Rec'd response " | ||
- | Args: { n=2 filter=[ { hook=" | + | Args: { n=2 filter=[ { hook=" |
- | # ngctl msg re0:lower getencap | + | Проверяем режим инкапсуляции пакетов: |
+ | < | ||
Rec'd response " | Rec'd response " | ||
- | Args: 1 | + | Args: 1</ |
- | # ngctl msg re0:lower getencapproto | + | Проверяем номер протокола для инкапсуляции/ |
+ | < | ||
Rec'd response " | Rec'd response " | ||
- | Args: 0x8100 | + | Args: 0x8100</ |
- | # ngctl msg re0:lower delvidflt 1001 | + | Удаляем фильтр для влан 1001 (интерфейс __ngeth0__ при этом не удаляется из системы!): |
+ | < | ||
- | # ngctl msg re0:lower gettable | + | Проверяем что удалилось: |
+ | < | ||
Rec'd response " | Rec'd response " | ||
- | Args: { n=1 filter=[ { hook=" | + | Args: { n=1 filter=[ { hook=" |
- | # ngctl msg re0:lower delfilter '" | + | Удаляем фильтр для влан 1002 (интерфейс __ngeth1__ при этом не удаляется из системы!): |
+ | < | ||
- | # ngctl msg re0:lower gettable | + | Убеждаемся что все фильтры удалены: |
+ | < | ||
Rec'd response " | Rec'd response " | ||
- | Args: {} | + | Args: {}</ |