Version 13 (modified by yuna, 9 years ago) (diff) |
---|
ネットワーク設定メモ
最近のLinuxは、Network Managerなどで自動的に無線LANを探してくれたりして便利になっているのはよいが、特殊な環境だと毎回設定する必要があったり、正直うざいときがある。そこで、手動で設定してみよう。
設定
/etc/network/interfacesファイルに次のように設定を行う。
auto eth1 iface eth1 inet static wireless-essid [SSID] wireless-key [WEPキー] wireless-mode ad-hoc (アクセスポイントを利用する場合はmanagedに) address 192.168.2.11 netmask 255.255.255.0 gateway 192.168.2.1
これで、
# ifup eth1
で無線LANが接続できる。無線LANのインタフェースかどうかは、iwconfigで確認できる。
特定のTCPポートを利用しているプロセスを発見する
Windowsの場合、
$ netstat -oan
Linuxの場合
$ netstat -tanp
オーバレイネットワーク
ネットワークの上にネットワークを作るオーバレイネットワークの作り方です。
ホスト1(192.168.200.1)とホスト2(192.168.200.2)がインタフェースeno1で繋がっている例です。
VXLAN
[192.168.200.1]# ip link add vxlan0 type vxlan id 2 remote 192.168.200.2 local 192.168.200.1 dev eno1 dstport 4789 [192.168.200.2]# ip link add vxlan0 type vxlan id 2 remote 192.168.200.1 local 192.168.200.2 dev eno1 dstport 4789
GRE
[192.168.200.1]# ip tunnel add gre0 mode gre remote 192.168.200.2 local 192.168.200.1 dev eno1 [192.168.200.2]# ip tunnel add gre0 mode gre remote 192.168.200.1 local 192.168.200.2 dev eno1
VLAN
[192.168.200.1]# ip link add link eno1 name eno1.2 type vlan id 2 [192.168.200.2]# ip link add link eno1 name eno1.2 type vlan id 2
動作確認は、次のような感じで実行。
[192.168.200.1]# ip addr add 192.168.128.1/24 broadcast 192.168.128.255 dev vxlan0 id 200 [192.168.200.1]# ip link set dev vxlan0 up [192.168.200.2]# ip addr add 192.168.128.2/24 broadcast 192.168.128.255 dev vxlan0 id 200 [192.168.200.2]# ip link set dev vxlan0 up [192.168.200.2]# ping 192.168.128.1
ただし、上記の設定では、RHEL7.1/CentOS7.1ではパケットのフラグメントが発生し、著しい性能低下が発生する。原因は、カプセル化されたIPヘッダの中にチェックサムが空のため、受け側のNICでGROが効かず細切れになったパケットが直接アプリケーション側まで届くためである。udpcsumオプションを付けると、送信パケットのすべてのヘッダにチェックサムが入るようになり、受信側のNICでGROされるため性能が劇的に向上する。ただし、最新のiprouteを利用する必要がある(RHEL7.1同梱のiprouteではudpcsumに対応していないので注意。CentOS7/RHEL7用の最新パッケージはここ: https://github.com/okamototk/el-repo )。
# ip addr add 192.168.128.1/24 broadcast 192.168.128.255 dev vxlan0 id 200 udpcsum
Open vSwitchを利用する場合は、options:csum=trueを利用する。Open vSwitchのcsumオプションは、CentOS7.2以降で利用できる。
# ovs-vsctl add-port vxlanbr vxlan0 -- set interface vxlan0 type=vxlan options:key=128 options:remote_ip=192.168.100.2 options:csum=true
Open vSwitch
openvswitchパッケージをインストールする。CentOSでは、openvswitchのパッケージはないので、RDOのパッケージ
を利用する。
# rpm -Uvh https://repos.fedorapeople.org/repos/openstack/openstack-kilo/rdo-release-kilo-1.noarch.rpm # yum install openvswitch # systemctl enable openvswitch # systemctl start openvswitch
ホスト1(IP192.168.100.1),2(192.168.100.2)で次のように実行。greのremote_ipには対抗ノードのIPを設定する。
### ホスト1(192.168.100.1)
# ovs-vsctl add-br brgre # ovs-vsctl add-port brgre gre -- set interface gre type=gre options:remote_ip=192.168.100.2 # ip link set brgre up # ip addr add 192.168.200.1/24 dev brgre
ホスト2 (192.168.100.2)
# ovs-vsctl add-br brgre # ovs-vsctl add-port brgre gre -- set interface gre type=gre options:remote_ip=192.168.100.1 # ip link set brgre up # ip addr add 192.168.200.2/24 dev brgre
pingで192.168.200.xを利用して疎通が確認できる。firewalldが動作していると、firewalldにブロックされて通信できないことがある。その場合、firewalldサービスを停止するか、次のようにして、greをfirewalldで許可する。
# firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT # firewall-cmd --direct --add-rule ipv6 filter INPUT 0 -p gre -j ACCEPT # firewall-cmd --reload
TNI
Tenant Network Identifierを割り振って仮想ネットワークを作成する場合は、keyオプションを利用する.例えば、TNIを1100に設定した仮想ネットワークを作成するには、次のようにする。
# ovs-vsctl add-port brgre gre -- set interface gre type=gre options:remote_ip=192.168.100.2 options:key=1100
ブリッジの利用
ip tunnelを利用すると、トンネルのインタフェースを直接作成する例だが、ブリッジを利用する場合は、次のようにtapを作成する.
# ip link add gre-tun type gretap remote 192.168.100.2 key 100 # brctl addbr br-gre # brctl addif br-gre gre-tun