Vagrantは仮想サーバーを管理するコマンドになります。
仮想サーバーはハードウェアとしてのOS上に別のOSを起動させるものになります。
このときハードウェア上のOSをホストOSと呼び、仮想サーバー上のOSをゲストOSと呼びます。
ホストOSにネットワークインタフェースがあるようにゲストOSにも仮想ののネットワークインタフェースが作られ、ホスト側のネットワークインタフェースとゲスト側のネットワークインタフェースを繋ぐためのネットワークのブリッジ(仮想のルーターみたいなもの)が作成されます。
通常はゲスト側のIPは仮想に付けられたののなので、ホストPC以外の外部のネットワークからアクセスすることは出来ません。
質問の以下の記述ですが、
config.vm.network "forwarded_port", guest: 3000, host: 3000
ホスト側のIPでポート番号3000でアクセスされたときゲスト側のIPのポート番号3000にアクセスするようにするための設定です。
上記の設定を行った後ゲスト側でポート番号3000でWEBサーバー(http)を立てた場合
ホスト側PCでは http://localhost:3000 にアクセスしたときにはゲスト側のWEBサーバーにアクセスすることが出来ます。
また外部PCからホストPCのIPアドレスを使用して http://ホストPCのIPアドレス:3000 とすれば外部PCからゲストのWEBサーバーにアクセスすることができます。
またホスト側で同じポート(たとえば 3000)のWEBサーバーが既に立てられていた場合
config.vm.network "forwarded_port", guest: 3000, host: 3010
このようにホスト側のポート番号を変えることで
ホスト側PCでは http://localhost:3010 にアクセスしたときにはゲスト側のWEBサーバー(ポート 3000)にアクセスすることが出来ます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。