Instalar pacotes binários
Primeiro é necessário exportar o caminho (PATH) para que o comando pkg_add encontre os pacotes necessário na Internet. Neste caso está sendo utilizada a versão 9.3 do NetBSD no PATH
nbsd# export PKG_PATH="http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/amd64/9.3/All/"
Atenção nos testes não funcionou URL do repositório com HTTPS, só o HTTP. Neste caso basta trocar
httpsparahttpna URL. Também é possível utilizar outros meios que não a Internet, tal como CD-ROM, etc.
Após configurar o caminho do repositório na Internet, vamos instalar o programa pkgin, que seria o equivalente a um apt-get do NetBSD.
nbsd# pkg_add pkgin
pkg_add: Warning: package `pkgin-22.10.0nb1' was built for a platform:
pkg_add: NetBSD/x86_64 9.0 (pkg) vs. NetBSD/x86_64 9.3 (this host)
pkg_add: Warning: package `pkg_install-20211115' was built for a platform:
pkg_add: NetBSD/x86_64 9.0 (pkg) vs. NetBSD/x86_64 9.3 (this host)
pkgin-22.10.0nb1: copying /usr/pkg/share/examples/pkgin/repositories.conf.example to /usr/pkg/etc/pkgin/repositories.conf
Com o pkgin instalado agora é possível utilizá-lo para por exemplo procurar algum pacote, tal como no exemplo a seguir:
nbsd# pkgin search apache
...
apache-2.4.56        Apache HTTP (Web) server, version 2.4
apache-ant-1.10.13nb1  Apache Project's Java-Based make(1) replacement
apache-ant-1.9.13    Java make(1) replacement
apache-ant-1.5.4nb2  "Apache Project's Java-Based make(1) replacement"
apache-cassandra-3.11.2nb3  Highly scalable, distributed structured key-value store
apache-cassandra-2.2.12nb3  Highly scalable, distributed structured key-value store
apache-ivy-2.5.0     "Apache Project's Java-Based agile dependency manager"
apache-maven-3.8.6   Apache Project's software project management and comprehension tool
apache-roller-5.1.2nb1  Full-featured, multi-user and group-blog server
apache-solr-8.11.1   High performance search server built using Lucene Java
apache-tomcat-9.0.62  Implementation of Java Servlet and JavaServer Pages technologies
apache-tomcat-8.5.61  Implementation of Java Servlet and JavaServer Pages technologies
apache-tomcat-8.0.53nb1  Implementation of Java Servlet and JavaServer Pages technologies
apache-tomcat-7.0.106  Implementation of Java Servlet and JavaServer Pages technologies
apache-tomcat-6.0.45nb1  Implementation of Java Servlet and JavaServer Pages technologies
apache-tomcat-5.5.35  The Apache Project's Java Servlet 2.4 and JSP 2.0 server
...
Partes da saída do comando forma omitidas.
Anterior mente foi pesquisado se há algum pacote com o nome apache, na intenção de instalar o servidor HTTP Apache. Tal busca resulta em vários pacotes. A seguir é utilizado a opção install para instalar um desses pacotes:
nbsd# pkgin install apache-2.4.56
calculating dependencies...done.
12 packages to install:
  apache-2.4.56 readline-8.2nb1 pcre2-10.42 nghttp2-1.52.0 libxml2-2.10.4 brotli-1.0.9 apr-util-1.6.3 apr-1.7.2 xmlcatmgr-2.2nb1 python310-3.10.10
  libuuid-2.32.1nb1 libffi-3.4.4
0 to refresh, 0 to upgrade, 12 to install
25M to download, 147M to install
proceed ? [Y/n]
Redes
Configuração de rede volátil
IP e Máscara de rede
A configuração de IPs e máscaras de rede no NetBSD pode ser realizada através do comando ifconfig, tal como:
nbsd# ifconfig wm3 10.0.0.2/24
Neste caso foi atribuída a placa de rede wm3, o IP/máscara 10.0.0.2/24. A efetividade da configuração pode ser vista com o mesmo comando, tal como:
nbsd# ifconfig wm3
wm3: flags=0x8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        capabilities=2bf80<TSO4,IP4CSUM_Rx,IP4CSUM_Tx,TCP4CSUM_Rx>
        capabilities=2bf80<TCP4CSUM_Tx,UDP4CSUM_Rx,UDP4CSUM_Tx,TCP6CSUM_Tx>
        capabilities=2bf80<UDP6CSUM_Tx>
        enabled=0
        ec_capabilities=7<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU>
        ec_enabled=2<VLAN_HWTAGGING>
        address: 08:00:27:83:88:1e
        media: Ethernet autoselect (none)
        status: no carrier
        inet 10.0.0.2/24 broadcast 10.0.0.255 flags 0x0
        inet6 fe80::a00:27ff:fe83:881e%wm3/64 flags 0x8<DETACHED> scopeid 0x4
É possível ver na saída que o IP/máscara foram atribuídas com sucesso (penúltima linha) na placa de rede wm3.
Rota padrão
Para adicionar a rota padrão:
nbsd# route add default 192.168.122.1
add net default: gateway 192.168.122.1
No exemplo anterior o gateway padrão é o IP 192.168.122.1.
Para remover a rota padrão:
nbsd# route delete default
delete net default
É possível verificar as rotas através dos comandos:
route -n show;netstat -r -f inet- a opção-f inet, apresenta apenas as rotas IPv4, para ver todas é só remover tal opção.
Configurando rede via arquivos
IPs e máscaras de rede
Para configurar a rede via arquivo, de forma que as configurações persistam depois do boot, é possível criar/editar o arquivo /etc/ifconfig.wm0, sendo que wm0 deve ser trocado pelo nome da placa de rede a ser configurada. Então neste exemplo a placa de rede chama-se wm0.
É possível ver as placas de rede através do comando
ifconfig -a.
Um exemplo de configuração seria:
nbsd# cat /etc/ifconfig.wm0
#dhcp
inet 192.168.122.10 netmask 255.255.255.0
Neste exemplo a placa wm0 receberá o IP 192.168.122.10/24. Note que a configuração via DHCP está desabilitada, para habilitá-la seria necessário descomentar a linha do dhcp (removendo o #) e inserindo um #, na linha que inicia com inet.
Rota Padrão
Para configurar a rota padrão é possível criar/editar o arquivo /etc/mygate, tal como:
nbsd# cat /etc/mygate
192.168.122.1
No exemplo anterior, o gateway padrão é o host 192.168.122.1.
Aplicando as configurações de rede
Após alterar IPs, máscaras e gateway padrão utilizando os arquivos dos passos anteriores, é possível reiniciar o host, ou executar o comando /etc/rc.d/network, para que as configurações sejam aplicadas imediatamente. Exemplo:
nbsd# /etc/rc.d/network restart
Stopping network.
Deleting aliases.
Downing network interfaces: wm0 wm1 wm2.
Starting network.
Hostname: nbsd
IPv6 mode: host
Configuring network interfaces: wm0 wm1 wm2.
Adding interface aliases:.
add net default: gateway 192.168.122.1
Waiting for DAD to complete for statically configured addresses...
Servidor de nomes
A configuração do servidor de nomes no NetBSD é a mesma utilizada em outros sistemas Unix-Like, exemplo:
echo "nameserver 8.8.8.8" > /etc/resolv.conf
Neste caso foi adicionado o servidor 8.8.8.8, como servidor de nomes principal do host.
Não é necessário reiniciar nenhum serviço para que a configuração do DNS passe a valer.
Verificando conexões de redes
nbsd# sockstat -4ln
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
root     dhcpcd     181   11 udp    *.68                  *.*
root     sshd       340    4 tcp    *.22                  *.*
_httpd   httpd      3822   5 tcp    *.80                  *.*
nbsd# netstat -f inet
Active Internet connections
Proto Recv-Q Send-Q  Local Address          Foreign Address        State
tcp        0      0  192.168.56.21.ssh      192.168.56.1.52060     ESTABLISHED
nbsd# netstat -f inet -r
Routing tables
Internet:
Destination        Gateway            Flags    Refs      Use    Mtu Interface
default            10.0.2.2           UGS         -        -      -  wm0
10.0.2/24          link#1             UC          -        -      -  wm0
10.0.2.15          link#1             UHl         -        -      -  lo0
127/8              localhost          UGRS        -        -  33624  lo0
localhost          lo0                UHl         -        -  33624  lo0
192.168.56/24      link#2             UC          -        -      -  wm1
192.168.56.21      link#2             UHl         -        -      -  lo0
192.168.56.1       0a:00:27:00:00:00  UHL         -        -      -  wm1
192.168.56.2       08:00:27:1c:1b:63  UHL         -        -      -  wm1
10.0.2.2           52:54:00:12:35:02  UHL         -        -      -  wm0
NAT (mascaramento)
Ative o roteamento:
nbsd# sysctl -w net.inet.ip.forwarding=1
net.inet.ip.forwarding: 0 -> 1
Crie/edite o arquivo /etc/ipnat.conf:
nbsd# vi /etc/ipnat.conf
map wm0 0/0 -> 0/32
Neste caso estamos pedindo para “mapear”/mascarar, tudo (0/0) que for sair pela interface wm0, para o IP que estiver na interface wm0.
Atenção, este exemplo a interface
wm0é a interface de rede conectada à Internet! Então você tem que ver se o nome da interface no seu cenário de rede é o mesmo…
Iniciar e carregar o NAT:
nbsd# /etc/rc.d/ipnat onestart
Enabling ipfilter for NAT.
Installing NAT rules ... 1 entries flushed from NAT table
Quagga
Instalar o Quagga:
nbsd# pkgin install quagga
Configurar o zebra:
nbsd# cat /usr/pkg/etc/zebra/zebra.conf
!
! Zebra configuration saved from vty
!   2023/07/29 12:02:46
!
hostname nbsd-router
password 123mudar
enable password 123mudar
log syslog
!
interface lo0
!
interface wm0
!
interface wm1
 ip address 172.16.0.10/24
!
interface wm2
 ip address 172.16.1.10/24
!
interface wm3
!
ip forwarding
!
!
line vty
!
Configurar o OSPF, ou outro similar:
nbsd# cat /usr/pkg/etc/zebra/ospfd.conf
!
! Zebra configuration saved from vty
!   2023/07/29 12:02:46
!
hostname nbsd-router
password 123mudar
enable password 123mudar
log syslog
!
!
!
interface lo0
!
interface wm0
!
interface wm1
!
interface wm2
!
interface wm3
!
router ospf
 ospf router-id 10.10.10.10
 network 172.16.0.0/24 area 0.0.0.0
 network 172.16.1.0/24 area 0.0.0.0
 default-information originate
!
line vty
!
Iniciar:
nbsd# mkdir /var/run/zebra
nbsd# chown quagga.quagga /var/run/zebra/
nbsd# /usr/pkg/sbin/zebra -d
nbsd# /usr/pkg/sbin/ospfd  -d
Neste caso sempre que reiniciar a máquina vai ter que criar o diretório e dar esse para o usuário/grupo
quagga, então seria bom fazer um script. Isso pode ser feito com o arquivo/usr/pkg/share/examples/rc.d/zebra.
O quagga/zebra também pode ser acessado pelo comando:
nbsd# vtysh
Atenção que quando você executa esse comando não muda nada no terminal, então é bom digitar
helppara ver se você está novtysh, ou no terminal normal. Para sair do terminalvtysh, digite o comandoquit, os outros comandos são bem similares ao terminal CISCO.